From b7eb749eb71ae802f9868e3b099aa362e23d7cc0 Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Sat, 06 Sep 2025 18:33:05 +0800
Subject: [PATCH] 1

---
 src/views/C2C/c2cOrder/appeal/Appeal.vue                             |  241 +
 src/assets/css/init.scss                                             |    1 
 src/views/C2C/withdraw/withdrawalSecurityVerification.vue            |  189 
 src/components/country-list/intl.css                                 | 1598 ++++++
 src/service/withdraw.js                                              |   71 
 src/views/C2C/c2cOrder/components/footer/OrderFooter.vue             |   89 
 src/views/C2C/c2c-trade/index.vue                                    |   27 
 src/components/country-list/README.md                                |    5 
 src/views/C2C/components/buy.vue                                     |  394 +
 src/views/C2C/c2c-trade/page/TradeSuccessDetailSell.vue              |   35 
 src/views/C2C/c2cOrder/components/order-generation/CancelSuccess.vue |  117 
 src/views/C2C/c2c-trade/components/TradeSuccess.vue                  |   50 
 src/views/C2C/c2cOrder/payment/components/TradeSuccessDetail.vue     |  149 
 src/views/C2C/c2cOrder/components/trade-data/TradeData.vue           |  147 
 src/views/C2C/c2c-trade/page/c2cBuy.vue                              |  279 +
 src/views/C2C/c2cOrder/components/order-data/OrderData.vue           |  127 
 src/views/orderList/index.vue                                        |  187 
 src/views/orderList/items.vue                                        |  157 
 src/views/C2C/c2c-order-list/components/Evaluation.vue               |   45 
 src/service/userCenter.js                                            |   10 
 src/views/C2C/quick/index.vue                                        |  408 +
 src/views/advertiserDetail/index.vue                                 |  519 ++
 src/views/C2C/c2cOrder/payment/PaymentBuy.vue                        |  261 +
 src/views/C2C/c2cOrder/cancel-order/cancelOrder.vue                  |  193 
 src/views/C2C/c2cOrder/order-generation/help.vue                     |   28 
 src/views/C2C/withdraw/withdrawPage.vue                              |  442 +
 src/router/index.js                                                  |  188 
 src/views/C2C/selectLegalCurrency/index.vue                          |  321 +
 src/views/C2C/components/BuyInput.vue                                |   60 
 src/views/C2C/quick/EnterTrade.vue                                   |  219 
 src/views/C2C/c2cOrder/appeal/index.vue                              |  102 
 src/views/C2C/c2c-trade/components/C2cTrade.vue                      |  218 
 src/views/C2C/c2cOrder/payment/index.vue                             |  194 
 src/views/C2C/c2c-trade/page/c2cHelp.vue                             |   93 
 src/components/country-list/utils.js                                 |  443 +
 src/views/C2C/c2cOrder/payment/ConfirmedPaid.vue                     |  430 +
 src/views/C2C/wantBuy.vue                                            |  400 +
 src/views/C2C/c2cOrder/payment/Payment.vue                           |  178 
 src/views/cryptos/financialManagement/machineBuy.vue                 |    7 
 src/views/C2C/c2c-trade/page/c2cSell.vue                             |  407 +
 src/views/C2C/c2cOrder/components/appeal/AppealSuccess.vue           |   54 
 src/components/country-list/flags.png                                |    0 
 src/views/C2C/c2cOrder/order-generation/orderGeneration.vue          |  171 
 src/assets/css/copy2.scss                                            | 1191 ++++
 src/components/normal-head/index.vue                                 |   41 
 src/views/C2C/c2c-trade/page/TradeSuccessBuyer.vue                   |   48 
 src/views/cryptos/HelpCenter/index.vue                               |    6 
 src/components/country-list/index.vue                                |  131 
 src/views/C2C/c2cOrder/payment/PaymentDetail.vue                     |  154 
 src/views/C2C/c2c-order-list/SelectItem.vue                          |   38 
 src/views/cryptos/order/MiningMachineOrder/index.vue                 |    3 
 src/views/C2C/c2cOrder/components/appeal/AppealMsg.vue               |   66 
 src/views/C2C/c2cOrder/payment/components/Question.vue               |   73 
 src/views/C2C/withdraw/withdrawDetail.vue                            |   31 
 src/views/C2C/c2c-order-list/Unread.vue                              |   61 
 src/views/C2C/c2c-order-list/tradeOrderDetail.vue                    |   42 
 src/views/C2C/c2c-trade/components/c2cCollectionEmpty.vue            |   13 
 src/views/C2C/c2cOrder/components/appeal/AppealWaiting.vue           |   50 
 src/views/customerService/index.vue                                  |    9 
 src/views/C2C/c2c-order-list/components/OrderData.vue                |  128 
 src/views/cryptos/AboutUs/index.vue                                  |    5 
 postcss.config.cjs                                                   |    9 
 src/service/otc.js                                                   |   32 
 src/components/country-list/countryList.js                           |  322 +
 src/views/C2C/components/adScreening.vue                             |  204 
 src/views/C2C/c2c-trade/components/TradeSuccessDetail.vue            |  213 
 src/components/country-list/flags@2x.png                             |    0 
 src/views/C2C/c2c-trade/page/SellGenerate.vue                        |  281 +
 src/views/chat/index.vue                                             |  369 +
 src/views/C2C/c2c-order-list/components/TradeSuccessDetail.vue       |  215 
 src/views/C2C/c2cOrder/order-generation/index.vue                    |   19 
 src/views/C2C/c2cOrder/payment/components/Evaluation.vue             |   44 
 src/views/C2C/components/C2cInput.vue                                |   74 
 src/views/C2C/withdraw/withdrawSumbit.vue                            |   33 
 src/views/cryptos/order/FinancialOrder/index.vue                     |    3 
 src/components/order-nav/OrderNav.vue                                |   84 
 src/views/C2C/c2c-trade/page/c2cCollection.vue                       |  135 
 src/views/cryptos/promote/SharePoster.vue                            |    6 
 src/views/homePage/index.vue                                         |    2 
 src/utils/list-load-mixins.js                                        |   40 
 src/views/C2C/c2c-trade/page/TradeSuccessDetailBuyer.vue             |   27 
 src/views/C2C/c2c-trade/page/TradeSuccessSell.vue                    |   52 
 src/views/C2C/c2c-order-list/index.vue                               |  234 
 src/views/C2C/c2cOrder/order-generation/OrderBuy.vue                 |   13 
 src/components/otcCircle/index.vue                                   |  159 
 src/assets/css/variable.scss                                         |   22 
 src/components/loading/index.vue                                     |   22 
 src/views/C2C/c2c-trade/page/tradeOrderDetail.vue                    |   41 
 src/views/C2C/c2c-trade/components/CarItem.vue                       |   74 
 src/views/cryptos/loan/index.vue                                     |    6 
 src/views/C2C/components/SelectItem.vue                              |  115 
 src/views/payMentMethod/list.vue                                     |    2 
 src/views/advertiserDetail/detail.vue                                |  119 
 src/views/cryptos/financialManagement/fundBuy.vue                    |    3 
 94 files changed, 14,230 insertions(+), 88 deletions(-)

diff --git a/postcss.config.cjs b/postcss.config.cjs
index 2522198..eb21dee 100644
--- a/postcss.config.cjs
+++ b/postcss.config.cjs
@@ -29,6 +29,15 @@
         if(file.indexOf('src/views/trade')> -1 ){
           return false
         }
+        if(file.indexOf('src/views/C2C')> -1 ){
+          return false
+        }
+        if(file.indexOf('src/views/orderList')> -1 ){
+          return false
+        }
+        if(file.indexOf('src/views/chat')> -1 ){
+          return false
+        }
         return true
       }
     },
diff --git a/src/assets/css/copy2.scss b/src/assets/css/copy2.scss
new file mode 100644
index 0000000..c743531
--- /dev/null
+++ b/src/assets/css/copy2.scss
@@ -0,0 +1,1191 @@
+
+/** ************************* overwrite ****************/
+
+*{
+    margin: 0;
+    padding: 0;
+    font-size: 1.6rem;
+}
+html,body{
+    // width: 8.28rem;
+    max-width: 828px;
+    margin: 0 auto;
+    height: 100%;
+    box-sizing: border-box;
+}
+
+body {
+    width: 100%;
+    height: 100%;
+    // overflow: hidden;
+    font-size:30px;
+    font-family: "微软雅黑";
+    font-weight: 400;
+    padding-bottom: constant(safe-area-inset-bottom);
+    padding-bottom: env(safe-area-inset-bottom);
+        /*兼容 IOS>11.2*/
+    // font-size: .32rem;
+    // background: #9E9FA3;
+}
+@supports (bottom: constant(safe-area-inset-bottom)) {
+    body {
+        padding-bottom: constant(safe-area-inset-bottom);
+        padding-bottom: env(safe-area-inset-bottom);
+    }
+}
+
+input::-webkit-input-placeholder {
+    color: #C0C4CC;
+}
+.doTouch {
+    touch-action: none;
+  }
+
+/* 颜色值 */
+$white:#ffffff;
+$black:#000000;
+$dark-black:#22262F;
+$grey:#868C9A;
+// $grey: #f3f3f3;
+$dark-grey: #868C9A;
+$light-grey:#C8CAD2;
+$border-grey:#E5E7ED;
+$blue:#2C78F8;
+$light-blue:#1199FA;
+$red:#F6465D;
+$green:#2EBD85;
+$purple:#9A4DFD;
+$night:#121212;
+// overwrite vant
+
+.mining-pledge {
+    .van-tabs__wrap {
+        height: 145px!important;
+        .van-tab {
+            &:first-child {
+                border-right: 1px solid $border-grey;
+            }
+        }
+    }
+}
+
+.c2cColor{
+    color: #333;
+}
+
+:root {
+    --theme-color: #2C78F8;
+}
+
+/***************** global use framework *****************/
+
+/* flex */
+.flex { display: flex; }
+.flex-row { flex-direction: row;}
+.flex-col { flex-direction: column; }
+.justify-between { justify-content: space-between; }
+.justify-around { justify-content:space-around; }
+.justify-evenly { justify-content: space-evenly;}
+.justify-start{ justify-content: flex-start;}
+.justify-end { justify-content: flex-end; }
+.justify-center	{justify-content: center;}
+.items-start { align-items:flex-start;}
+.items-end { align-items: flex-end; }
+.items-center { align-items: center; }
+.items-stretch {align-items: stretch;}
+.flex-1 { flex: 1}
+.flex-wrap { flex-wrap: wrap;}
+.flex-nowrap { flex-wrap: nowrap;}
+.align-center{align-content:center;}
+
+/* display */
+.block { display: block;}
+
+/* position */
+.absolute { position: absolute; }
+.relative { position: relative; }
+.fixed { position: fixed; }
+.z-10 { z-index: 10;}
+
+/* font */
+.font-bold { font-weight: bold; }
+.font-normal { font-weight: normal; }
+
+/* text */
+.text-center { text-align: center;}
+.text-left { text-align: left;}
+.text-right { text-align: right;}
+.break-word{word-break: break-word}
+/* padding margin font */
+@for $i from 0 through 50 {
+
+    // font-weight
+    // font-size
+    // margin
+    .ml-#{$i} {
+        margin-left: #{$i}px
+    }
+    .mr-#{$i} {
+        margin-right: #{$i}px
+    }
+    .mt-#{$i} {
+        margin-top: #{$i}px
+    }
+    .mb-#{$i} {
+        margin-bottom: #{$i}px
+    }
+    .mx-#{$i} {
+        margin-left: #{$i}px;
+        margin-right: #{$i}px;
+    }
+    .my-#{$i} {
+        margin-top: #{$i}px;
+        margin-bottom: #{$i}px;
+    }
+    // padding
+    .pl-#{$i} {
+        padding-left: #{$i}px
+    }
+    .pr-#{$i} {
+        padding-right: #{$i}px
+    }
+    .pt-#{$i} {
+        padding-top: #{$i}px
+    }
+    .pb-#{$i} {
+        padding-bottom: #{$i}px
+    }
+    .px-#{$i} {
+        padding-left: #{$i}px;
+        padding-right: #{$i}px;
+    }
+    .py-#{$i} {
+        padding-top: #{$i}px;
+        padding-bottom: #{$i}px;
+    }
+    // width
+    .w-#{$i} {
+        width: #{$i}px
+    }
+    // height
+}
+
+@for $j from 1 through 100 {
+
+    // height
+    .h-#{$j} {
+        height: #{$j}px
+    }
+    //line-height
+    .lh-#{$j} {
+        line-height: #{$j}px
+    }
+}
+.w-half { width: 50%; }
+.w-full { width: 100%; }
+.w-screen { width: 100%;}
+.h-full { height: 100%;}
+.h-screen { height: 100%;}
+.h-1000 { height: 1000px;}
+
+/* background */
+.bg-white { background: $white; }
+.bg-black { background: #121212;}
+.bg-night{
+    background: $night;
+    color: #fff;
+}
+.bg-night1{
+    background: #242424;
+}
+.bg-grey { background: $grey;}
+.bg-dark-grey{ background:$dark-grey};
+.bg-light-grey{ background:$light-grey;}
+.bg-red { background: $red; }
+.bg-green { background: $green;}
+.bg-blue { background: $blue;}
+.bg-dark-blue {background: #6C52E6;}
+.bg-light-blue{background: #7F81FD;}
+.bg-f5 {background: #F5F5F5}
+
+.bg-none { background: none;}
+.bg-grey-f3 { background: $grey;}
+
+
+/* color */
+.text-white { color: $white; }
+.text-black { color: $black; }
+.text-dark-black{ color:$dark-black;}
+.text-grey { color: $dark-grey; }
+.text-blue{ color:$blue;}
+.text-light-blue{ color:$light-blue;}
+.text-red { color: $red; }
+.text-green { color: $green; }
+.text-purple { color: $purple; }
+.text-night{
+    color: $night;
+}
+
+/* border-color */
+.border-white { border-color: $white; }
+.border-black { border-color: $black; }
+.border-grey { border-color: $grey; }
+.border-light-grey{ border-color:$light-grey;}
+.border-red { border-color: $red; }
+.border-green { border-color: $green; }
+.border-blue { border-color: $blue; }
+.border-light-blue { border-color: $light-blue; }
+
+.border-solid { border-style: solid; border-color: $border-grey;}
+
+.border-b-grey { border-bottom: 1px solid $border-grey;}
+.border-r-grey { border-right: 1px solid $border-grey;}
+.border-t-grey { border-top: 1px solid $border-grey;}
+
+.border-solid-blue{ border:1px solid $blue;}
+.border-solid-grey{ border:1px solid $grey;}
+.border-solid-dark-grey{ border:1px solid $dark-grey;}
+.border-solid-light-grey{ border:1px solid $border-grey;}
+.border-b-dashed-black { border-bottom: 1px dashed #000; }
+// .border-b-grey { border-bottom: 1px solid #E5E7ED;}
+// .border-r-grey { border-right: 1px solid #E5E7ED;}
+.border-none { border: none; outline: none;}
+
+/* border radius */
+.rounded-sm { border-radius: 2px;}
+.rounded { border-radius: 4px;}
+.rounded-md { border-radius: 6px;}
+.rounded-lg { border-radius: 8px;}
+.rounded-xl { border-radius: 12px;}
+.rounded-2xl { border-radius: 16px;}
+.rounded-full { border-radius: 9999px; }
+
+/** box-sizing */
+.box-border { box-sizing: border-box; }
+
+/* border */
+.border { border-width: 1px; }
+
+/* 解决重复点击报错的问题 */
+//* { touch-action: pan-y; }
+//left
+.left-0 {
+    left: 0;
+}
+
+.left-22 {
+    left: 22px;
+}
+.left-24 {
+    left: 24px;
+}
+.left-25 {
+    left: 25px;
+}
+.left-28 {
+    left: 28px;
+}
+
+//right
+.right-0 {
+    right: 0;
+}
+
+.right-10 {
+    right: 10px;
+}
+.right-19 {
+    right: 19px;
+}
+.right-20 {
+    right: 20px;
+}
+.right-22 {
+    right: 22px;
+}
+.right-34 {
+    right: 34px;
+}
+
+//top
+.top-0 {
+    top: 0;
+}
+
+.top-97 {
+    top: 97px;
+}
+
+.top-20 {
+    top: 20px;
+}
+
+.top-10 {
+    top: 10px;
+}
+
+.top-46 {
+    top: 46px;
+}
+.top-122 {
+    top: 122px;
+}
+
+//bottom
+.bottom-0 {
+    bottom: 0;
+}
+.bottom-28 {
+    bottom: 28px;
+}
+.bottom-30 {
+    bottom: 30px;
+}
+.bottom-90 {
+    bottom: 30px;
+}
+.bottom-108 {
+    bottom: 108px;
+}
+
+//font-weight
+
+.font-400 {
+    font-weight: 400;
+}
+
+.font-500 {
+    font-weight: 500;
+}
+
+.font-600 {
+    font-weight: 600;
+}
+
+.font-700 {
+    font-weight: 700;
+}
+
+.font-800 {
+    font-weight: 800;
+}
+
+.font-900 {
+    font-weight: 900;
+}
+
+//font-size
+.font-20 {
+    font-size: 20px;
+}
+
+.font-22 {
+    font-size: 22px;
+}
+
+.font-24 {
+    font-size: 24px;
+}
+
+.font-25 {
+    font-size: 25px;
+}
+
+.font-26 {
+    font-size: 26px;
+}
+
+.font-27 {
+    font-size: 27px;
+}
+
+.font-28 {
+    font-size: 28px;
+}
+
+.font-30 {
+    font-size: 30px;
+}
+
+.font-31 {
+    font-size: 31px;
+}
+
+.font-32 {
+    font-size: 32px;
+}
+
+.font-34 {
+    font-size: 34px;
+}
+
+.font-35 {
+    font-size: 35px;
+}
+
+.font-36 {
+    font-size: 36px;
+}
+
+.font-38 {
+    font-size: 38px;
+}
+
+.font-39 {
+    font-size: 39px;
+}
+
+.font-40 {
+    font-size: 40px;
+}
+
+.font-44 {
+    font-size: 44px;
+}
+
+.font-45 {
+    font-size: 45px;
+}
+
+.font-45 {
+    font-size: 45px;
+}
+
+.font-48 {
+    font-size: 48px;
+}
+
+.font-50 {
+    font-size: 50px;
+}
+
+.font-52 {
+    font-size: 52px;
+}
+
+.font-54 {
+    font-size: 54px;
+}
+
+.font-55 {
+    font-size: 55px;
+}
+
+.font-56 {
+    font-size: 56px;
+}
+
+.font-60 {
+    font-size: 60px;
+}
+
+.font-64 {
+    font-size: 64px;
+}
+
+.font-66 {
+    font-size: 66px;
+}
+
+.font-68 {
+    font-size: 68px;
+}
+
+.font-70 {
+    font-size: 70px;
+}
+
+//margin-left
+.ml-60 {
+    margin-left: 60px;
+}
+
+.ml-62 {
+    margin-left: 62px;
+}
+
+.ml-100 {
+    margin-left: 100px;
+}
+
+.ml-110 {
+    margin-left: 110px;
+}
+
+//margin-right
+.mr-55 {
+    margin-right: 55px;
+}
+.mr-80 {
+    margin-right: 80px;
+}
+.mr-89 {
+    margin-right: 89px;
+}
+.mr-100 {
+    margin-right: 100px;
+}
+
+//margin-top
+.mt-50 {
+    margin-top: 50px;
+}
+
+.mt-51 {
+    margin-top: 51px;
+}
+
+.mt-52 {
+    margin-top: 52px;
+}
+
+.mt-53 {
+    margin-top: 53px;
+}
+
+.mt-54 {
+    margin-top: 54px;
+}
+
+.mt-55 {
+    margin-top: 55px;
+}
+
+.mt-56 {
+    margin-top: 56px;
+}
+
+.mt-60 {
+    margin-top: 60px;
+}
+
+.mt-62 {
+    margin-top: 62px;
+}
+
+.mt-64 {
+    margin-top: 64px;
+}
+
+.mt-68 {
+    margin-top: 68px;
+}
+
+.mt-70 {
+    margin-top: 70px;
+}
+
+.mt-71 {
+    margin-top: 71px;
+}
+
+.mt-75 {
+    margin-top: 75px;
+}
+.mt-76 {
+    margin-top: 76px;
+}
+
+.mt-78 {
+    margin-top: 78px;
+}
+
+.mt-71 {
+    margin-top: 71px;
+}
+
+.mt-75 {
+    margin-top: 75px;
+}
+
+.mt-78 {
+    margin-top: 78px;
+}
+.mt-80 {
+    margin-top: 80px;
+}
+.mt-82 {
+    margin-top: 82px;
+}
+
+.mt-83 {
+    margin-top: 83px;
+}
+
+.mt-84 {
+    margin-top: 84px;
+}
+
+.mt-88 {
+    margin-top: 88px;
+}
+
+.mt-90 {
+    margin-top: 90px;
+}
+.mt-92 {
+    margin-top: 92px;
+}
+
+.mt-94 {
+    margin-top: 94px;
+}
+
+.mt-96 {
+    margin-top: 96px;
+}
+
+.mt-109 {
+    margin-top: 109px;
+}
+
+.mt-116 {
+    margin-top: 116px;
+}
+
+.mt-120 {
+    margin-top: 120px;
+}
+
+.mt-142 {
+    margin-top: 142px;
+}
+
+.mt-144 {
+    margin-top: 144px;
+}
+.mt-184 {
+    margin-top: 184px;
+}
+.mt-193 {
+    margin-top: 193px;
+}
+
+.mt-266 {
+    margin-top: 266px;
+}
+.mt-492 {
+    margin-top: 492px;
+}
+
+// margin-bottom
+.mb-54 {
+    margin-bottom: 54px;
+}
+
+.mb-60 {
+    margin-bottom: 60px;
+}
+.mb-62 {
+    margin-bottom: 62px;
+}
+
+.mb-65 {
+    margin-bottom: 65px;
+}
+
+.mb-70 {
+    margin-bottom: 70px;
+}
+
+.mb-80 {
+    margin-bottom: 80px;
+}
+
+.mb-100 {
+    margin-bottom: 100px;
+}
+
+//margin-left margin-right
+.mx-52 {
+    margin-left: 52px;
+    margin-right: 52px;
+}
+
+//margin-top margin-bottom
+
+
+//padding
+.p-10 {
+    padding: 10px;
+}
+.p-32 {
+    padding: 32px;
+}
+.p-40 {
+    padding: 40px;
+}
+.p-50 {
+    padding: 50px;
+}
+
+//padding-left
+.pl-60 {
+    padding-left: 60px;
+}
+
+.pl-72 {
+    padding-left: 72px;
+}
+.pl-80 {
+    padding-left: 80px;
+}
+.pl-94 {
+    padding-left: 94px;
+}
+.pl-96 {
+    padding-left: 96px;
+}
+
+.pl-200 {
+    padding-left: 200px;
+}
+//padding-right
+.pr-62 {
+    padding-right: 62px;
+}
+.pr-140{
+    padding-right: 140px;
+}
+//padding-top
+.pt-54 {
+    padding-top: 54px;
+}
+
+.pt-58 {
+    padding-top: 58px;
+}
+
+.pt-60 {
+    padding-top: 60px;
+}
+.pt-64 {
+    padding-top: 64px;
+}
+.pt-80 {
+    padding-top: 80px;
+}
+
+.pt-82 {
+    padding-top: 82px;
+}
+
+.pt-100 {
+    padding-top: 100px;
+}
+
+.pt-110 {
+    padding-top: 110px;
+}
+
+.pt-124 {
+    padding-top: 124px;
+}
+
+.pt-185 {
+    padding-top: 185px;
+}
+
+//padding-bottom
+.pb-54 {
+    padding-bottom: 54px;
+}
+
+.pb-58 {
+    padding-bottom: 58px;
+}
+
+.pb-60 {
+    padding-bottom: 60px;
+}
+
+.pb-61 {
+    padding-bottom: 61px;
+}
+
+.pb-64 {
+    padding-bottom: 64px;
+}
+
+.pb-68 {
+    padding-bottom: 68px;
+}
+
+.pb-80 {
+    padding-bottom: 80px;
+}
+
+.pb-82 {
+    padding-bottom: 82px;
+}
+
+.pb-90 {
+    padding-bottom: 90px;
+}
+
+.pb-100 {
+    padding-bottom: 100px;
+}
+
+.pb-104 {
+    padding-bottom: 104px;
+}
+
+.pb-108 {
+    padding-bottom: 108px;
+}
+
+.pb-120 {
+    padding-bottom: 120px;
+}
+
+.pb-144 {
+    padding-bottom: 144px;
+}
+
+.pb-144 {
+    padding-bottom: 150px;
+}
+
+.pb-180 {
+    padding-bottom: 180px;
+}
+.pb-200 {
+    padding-bottom: 200px;
+}
+// padding-left padding-right
+.px-52 {
+    padding-left: 52px;
+    padding-right: 52px;
+}
+.px-52{ 
+    padding-left: 52px;
+    padding-right: 52px;
+}
+.px-60 {
+    padding-left: 60px;
+    padding-right: 60px;
+}
+// padding-top padding-bottom
+.py-28 {
+    padding-top: 28px;
+    padding-bottom: 28px
+}
+.py-300 {
+    padding-top: 300px;
+    padding-bottom: 300px
+}
+
+//width
+.w-52 {
+    width: 52px;
+}
+.w-54{
+    width: 54px;
+}
+.w-55 {
+    width: 55px;
+}
+.w-56 {
+    width: 56px;
+}
+.w-60 {
+    width: 60px;
+}
+
+.w-62 {
+    width: 62px;
+}
+
+.w-64 {
+    width: 64px;
+}
+
+.w-65 {
+    width: 65px;
+}
+
+.w-70 {
+    width: 70px;
+}
+
+.w-72 {
+    width: 72px;
+}
+
+.w-75 {
+    width: 75px;
+}
+
+.w-80 {
+    width: 80px;
+}
+
+.w-81 {
+    width: 81px;
+}
+
+.w-90 {
+    width: 90px;
+}
+
+.w-92 {
+    width: 92px;
+}
+
+.w-95 {
+    width: 95px;
+}
+
+.w-96 {
+    width: 96px;
+}
+
+.w-120 {
+    width: 120px;
+}
+
+.w-122 {
+    width: 122px;
+}
+
+.w-125 {
+    width: 125px;
+}
+
+.w-128 {
+    width: 128px;
+}
+
+.w-140 {
+    width: 140px;
+}
+.w-150 {
+    width: 150px;
+}
+.w-153 {
+    width: 153px;
+}
+
+.w-154 {
+    width: 154px;
+}
+
+.w-156 {
+    width: 156px;
+}
+
+.w-160 {
+    width: 160px;
+}
+
+.w-162 {
+    width: 162px;
+}
+
+.w-177 {
+    width: 177px;
+}
+
+.w-180 {
+    width: 180px;
+}
+
+.w-182 {
+    width: 182px;
+}
+
+.w-189 {
+    width: 189px;
+}
+
+.w-200 {
+    width: 200px;
+}
+
+.w-210 {
+    width: 210px;
+}
+.w-232 {
+    width: 232px;
+}
+.w-244 {
+    width: 244px;
+}
+.w-248 {
+    width: 248px;
+}
+
+.w-252 {
+    width: 252px;
+}
+
+.w-255 {
+    width: 255px;
+}
+
+.w-270 {
+    width: 270px;
+}
+
+.w-280 {
+    width: 280px;
+}
+
+.w-290 {
+    width: 290px;
+}
+
+.w-360 {
+    width: 360px;
+}
+
+.w-368 {
+    width: 368px;
+}
+
+.w-370 {
+    width: 370px;
+}
+
+.w-385 {
+    width: 385px;
+}
+
+.w-440 {
+    width: 440px;
+}
+
+.w-460 {
+    width: 460px;
+}
+
+.w-500 {
+    width: 500px;
+}
+
+.w-580 {
+    width: 580px;
+}
+.w-600 {
+    width: 600px;
+}
+.w-616 {
+    width: 616px;
+}
+.w-640 {
+    width: 640px;
+}
+
+.w-700 {
+    width: 700px;
+}
+.w-748 {
+    width: 748px;
+}
+.w-762 {
+    width: 762px;
+}
+
+.w-763 {
+    width: 763px;
+}
+
+.w-768 {
+    width: 768px;
+}
+
+.w-828 {
+    width: 828px;
+}
+
+//hight
+.h-101 {
+    height: 101px;
+}
+
+.h-102 {
+    height: 102px;
+}
+
+.h-110 {
+    height: 110px;
+}
+.h-120 {
+    height: 120px;
+}
+.h-122 {
+    height: 122px;
+}
+
+.h-127 {
+    height: 127px;
+}
+
+.h-128 {
+    height: 128px;
+}
+
+.h-130 {
+    height: 130px;
+}
+
+.h-150 {
+    height: 150px;
+}
+
+.h-152 {
+    height: 152px;
+}
+
+.h-154 {
+    height: 154px;
+}
+
+.h-156 {
+    height: 156px;
+}
+
+.h-158 {
+    height: 158px;
+}
+
+.h-170 {
+    height: 170px;
+}
+
+.h-180 {
+    height: 180px;
+}
+
+.h-200 {
+    height: 200px;
+}
+
+.h-220 {
+    height: 220px;
+}
+
+.h-229 {
+    height: 229px;
+}
+
+.h-240 {
+    height: 240px;
+}
+
+.h-260 {
+    height: 260px;
+}
+.h-304 {
+    height: 304px;
+}
+
+.h-828 {
+    height: 828px;
+}
+
+//line-height
+.lh-152 {
+    line-height: 152px;
+}
diff --git a/src/assets/css/init.scss b/src/assets/css/init.scss
index a2b623e..3e2e769 100644
--- a/src/assets/css/init.scss
+++ b/src/assets/css/init.scss
@@ -131,3 +131,4 @@
 .w-30{
   width: 60px;
 }
+
diff --git a/src/assets/css/variable.scss b/src/assets/css/variable.scss
index b1fe88b..7c029c5 100644
--- a/src/assets/css/variable.scss
+++ b/src/assets/css/variable.scss
@@ -2,10 +2,10 @@
 $mainTextColor: #fff;
 $mainbgWhiteColor: #fff;
 
-$main_background:#131a2e; //主题色
+$main_background:#f7f7f7; //主题色
 $main2_background:#1F233D; //主题浅色背景
-$text_color:#fff;  //文字颜色
-$text_color1:#868D9A;  //文字浅色
+$text_color:#333;  //文字颜色
+$text_color1:#555;  //文字浅色
 $text_color2:#fff;  // 白色文字
 $text_color3:#CFD5EC;  // 
 $text_color4:#333;  //浅色标题背景文字颜色
@@ -25,18 +25,18 @@
 $line_color: #393E49;
 $bg_dark: #474B62;
 $border_color: #212C4E;
-$divi_line: #151726; //分割线
+$divi_line: #ddd; //分割线
 $bg_step: #868D9A;
 $bg_Bottom:#313346;
 $chat_bg: #474B62;
 $upload_bg:#474B62;
-$grey_bg: #474B62;
+$grey_bg: #ccc;
 $input_background1: #131a2e; //质押借币input
-$c2c_color: #fff;
-$c2c_background: #131a2e;
-$c2c_background1: #27293B;
-$c2c_tab_background:#27293B;
-$c2c_tip_background: #131a2e;
+$c2c_color: #333;
+$c2c_background: #aaa;
+$c2c_background1: #ccc;
+$c2c_tab_background:#ccc;
+$c2c_tip_background: #aaa;
 // $selectSymbol_background: #131a2e; //自选与选择币种背景颜色
 $selectSymbol_background: #f7f7f7; //自选与选择币种背景颜色
 $US_tab_background: #1D2439;
@@ -51,7 +51,7 @@
 $log-c: #282828;
 $icon-bg:#dbdbdb;
 $inp-b: #f7f7f7;
-$text_color:$log-c;
+// $text_color:$log-c;
 .yellow-bg{
     background: $bg_yellow;
 }
diff --git a/src/components/country-list/README.md b/src/components/country-list/README.md
new file mode 100644
index 0000000..ae030c1
--- /dev/null
+++ b/src/components/country-list/README.md
@@ -0,0 +1,5 @@
+# IntlTelInput
+
+>  International telephone area code selection component base on Vue.
+
+<img width="434" alt="2018-11-20 11 01 11" src="https://user-images.githubusercontent.com/9512362/48748981-b54fb100-ecb3-11e8-8225-08aca68e8e32.png">
diff --git a/src/components/country-list/countryList.js b/src/components/country-list/countryList.js
new file mode 100644
index 0000000..510d917
--- /dev/null
+++ b/src/components/country-list/countryList.js
@@ -0,0 +1,322 @@
+const countries = {
+  'af': {'code': 'af', 'name': 'Afghanistan (‫افغانستان‬‎)', 'dialCode': 93, 'phoneFormat': '070 123 4567'},
+  'al': {'code': 'al', 'name': 'Albania (Shqipëri)', 'dialCode': 355, 'phoneFormat': '066 123 4567'},
+  'dz': {'code': 'dz', 'name': 'Algeria (‫الجزائر‬‎)', 'dialCode': 213, 'phoneFormat': '0551 23 45 67'},
+  'as': {'code': 'as', 'name': 'American Samoa', 'dialCode': 1684, 'phoneFormat': '(684) 733-1234'},
+  'ad': {'code': 'ad', 'name': 'Andorra', 'dialCode': 376, 'phoneFormat': '312 345'},
+  'ao': {'code': 'ao', 'name': 'Angola', 'dialCode': 244, 'phoneFormat': '923 123 456'},
+  'ai': {'code': 'ai', 'name': 'Anguilla', 'dialCode': 1264, 'phoneFormat': '(264) 235-1234'},
+  'ag': {'code': 'ag', 'name': 'Antigua and Barbuda', 'dialCode': 1268, 'phoneFormat': '(268) 464-1234'},
+  'ar': {'code': 'ar', 'name': 'Argentina', 'dialCode': 54, 'phoneFormat': '011 15-2345-6789'},
+  'am': {'code': 'am', 'name': 'Armenia (Հայաստան)', 'dialCode': 374, 'phoneFormat': '077 123456'},
+  'aw': {'code': 'aw', 'name': 'Aruba', 'dialCode': 297, 'phoneFormat': '560 1234'},
+  'au': {'code': 'au', 'name': 'Australia', 'dialCode': 61, 'phoneFormat': '0412 345 678'},
+  'at': {'code': 'at', 'name': 'Austria (Österreich)', 'dialCode': 43, 'phoneFormat': '0664 123456'},
+  'az': {'code': 'az', 'name': 'Azerbaijan (Azərbaycan)', 'dialCode': 994, 'phoneFormat': '040 123 45 67'},
+  'bs': {'code': 'bs', 'name': 'Bahamas', 'dialCode': 1242, 'phoneFormat': '(242) 359-1234'},
+  'bh': {'code': 'bh', 'name': 'Bahrain (‫البحرين‬‎)', 'dialCode': 973, 'phoneFormat': '3600 1234'},
+  'bd': {'code': 'bd', 'name': 'Bangladesh (বাংলাদেশ)', 'dialCode': 880, 'phoneFormat': '01812-345678'},
+  'bb': {'code': 'bb', 'name': 'Barbados', 'dialCode': 1246, 'phoneFormat': '(246) 250-1234'},
+  'by': {'code': 'by', 'name': 'Belarus (Беларусь)', 'dialCode': 375, 'phoneFormat': '8 029 491-19-11'},
+  'be': {'code': 'be', 'name': 'Belgium (België)', 'dialCode': 32, 'phoneFormat': '0470 12 34 56'},
+  'bz': {'code': 'bz', 'name': 'Belize', 'dialCode': 501, 'phoneFormat': '622-1234'},
+  'bj': {'code': 'bj', 'name': 'Benin (Bénin)', 'dialCode': 229, 'phoneFormat': '90 01 12 34'},
+  'bm': {'code': 'bm', 'name': 'Bermuda', 'dialCode': 1441, 'phoneFormat': '(441) 370-1234'},
+  'bt': {'code': 'bt', 'name': 'Bhutan (འབྲུག)', 'dialCode': 975, 'phoneFormat': '17 12 34 56'},
+  'bo': {'code': 'bo', 'name': 'Bolivia', 'dialCode': 591, 'phoneFormat': '71234567'},
+  'ba': {
+    'code': 'ba',
+    'name': 'Bosnia and Herzegovina (Босна и Херцеговина)',
+    'dialCode': 387,
+    'phoneFormat': '061 123 456'
+  },
+  'bw': {'code': 'bw', 'name': 'Botswana', 'dialCode': 267, 'phoneFormat': '71 123 456'},
+  'br': {'code': 'br', 'name': 'Brazil (Brasil)', 'dialCode': 55, 'phoneFormat': '(11) 96123-4567'},
+  'io': {'code': 'io', 'name': 'British Indian Ocean Territory', 'dialCode': 246, 'phoneFormat': '380 1234'},
+  'vg': {'code': 'vg', 'name': 'British Virgin Islands', 'dialCode': 1284, 'phoneFormat': '(284) 300-1234'},
+  'bn': {'code': 'bn', 'name': 'Brunei', 'dialCode': 673, 'phoneFormat': '712 3456'},
+  'bg': {'code': 'bg', 'name': 'Bulgaria (България)', 'dialCode': 359, 'phoneFormat': '048 123 456'},
+  'bf': {'code': 'bf', 'name': 'Burkina Faso', 'dialCode': 226, 'phoneFormat': '70 12 34 56'},
+  'bi': {'code': 'bi', 'name': 'Burundi (Uburundi)', 'dialCode': 257, 'phoneFormat': '79 56 12 34'},
+  'kh': {'code': 'kh', 'name': 'Cambodia (កម្ពុជា)', 'dialCode': 855, 'phoneFormat': '091 234 567'},
+  'cm': {'code': 'cm', 'name': 'Cameroon (Cameroun)', 'dialCode': 237, 'phoneFormat': '6 71 23 45 67'},
+  'ca': {'code': 'ca', 'name': 'Canada', 'dialCode': 1, 'phoneFormat': '(204) 234-5678'},
+  'cv': {'code': 'cv', 'name': 'Cape Verde (Kabu Verdi)', 'dialCode': 238, 'phoneFormat': '991 12 34'},
+  'bq': {'code': 'bq', 'name': 'Caribbean Netherlands', 'dialCode': 599, 'phoneFormat': '318 1234'},
+  'ky': {'code': 'ky', 'name': 'Cayman Islands', 'dialCode': 1345, 'phoneFormat': '(345) 323-1234'},
+  'cf': {
+    'code': 'cf',
+    'name': 'Central African Republic (République centrafricaine)',
+    'dialCode': 236,
+    'phoneFormat': '70 01 23 45'
+  },
+  'td': {'code': 'td', 'name': 'Chad (Tchad)', 'dialCode': 235, 'phoneFormat': '63 01 23 45'},
+  'cl': {'code': 'cl', 'name': 'Chile', 'dialCode': 56, 'phoneFormat': '09 6123 4567'},
+  'cn': {'code': 'cn', 'name': 'China (中国)', 'dialCode': 86, 'phoneFormat': '131 2345 6789'},
+  'cx': {'code': 'cx', 'name': 'Christmas Island', 'dialCode': 61, 'phoneFormat': '0412 345 678'},
+  'cc': {'code': 'cc', 'name': 'Cocos (Keeling) Islands', 'dialCode': 61, 'phoneFormat': '0412 345 678'},
+  'co': {'code': 'co', 'name': 'Colombia', 'dialCode': 57, 'phoneFormat': '321 1234567'},
+  'km': {'code': 'km', 'name': 'Comoros (‫جزر القمر‬‎)', 'dialCode': 269, 'phoneFormat': '321 23 45'},
+  'cd': {
+    'code': 'cd',
+    'name': 'Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)',
+    'dialCode': 243,
+    'phoneFormat': '0991 234 567'
+  },
+  'cg': {
+    'code': 'cg',
+    'name': 'Congo (Republic) (Congo-Brazzaville)',
+    'dialCode': 242,
+    'phoneFormat': '06 123 4567'
+  },
+  'ck': {'code': 'ck', 'name': 'Cook Islands', 'dialCode': 682, 'phoneFormat': '71 234'},
+  'cr': {'code': 'cr', 'name': 'Costa Rica', 'dialCode': 506, 'phoneFormat': '8312 3456'},
+  'ci': {'code': 'ci', 'name': 'Côte d’Ivoire', 'dialCode': 225, 'phoneFormat': '01 23 45 67'},
+  'hr': {'code': 'hr', 'name': 'Croatia (Hrvatska)', 'dialCode': 385, 'phoneFormat': '091 234 5678'},
+  'cu': {'code': 'cu', 'name': 'Cuba', 'dialCode': 53, 'phoneFormat': '05 1234567'},
+  'cw': {'code': 'cw', 'name': 'Curaçao', 'dialCode': 599, 'phoneFormat': '9 518 1234'},
+  'cy': {'code': 'cy', 'name': 'Cyprus (Κύπρος)', 'dialCode': 357, 'phoneFormat': '96 123456'},
+  'cz': {'code': 'cz', 'name': 'Czech Republic (Česká republika)', 'dialCode': 420, 'phoneFormat': '601 123 456'},
+  'dk': {'code': 'dk', 'name': 'Denmark (Danmark)', 'dialCode': 45, 'phoneFormat': '20 12 34 56'},
+  'dj': {'code': 'dj', 'name': 'Djibouti', 'dialCode': 253, 'phoneFormat': '77 83 10 01'},
+  'dm': {'code': 'dm', 'name': 'Dominica', 'dialCode': 1767, 'phoneFormat': '(767) 225-1234'},
+  'do': {
+    'code': 'do',
+    'name': 'Dominican Republic (República Dominicana)',
+    'dialCode': 1,
+    'phoneFormat': '(809) 234-5678'
+  },
+  'ec': {'code': 'ec', 'name': 'Ecuador', 'dialCode': 593, 'phoneFormat': '099 123 4567'},
+  'eg': {'code': 'eg', 'name': 'Egypt (‫مصر‬‎)', 'dialCode': 20, 'phoneFormat': '0100 123 4567'},
+  'sv': {'code': 'sv', 'name': 'El Salvador', 'dialCode': 503, 'phoneFormat': '7012 3456'},
+  'gq': {
+    'code': 'gq',
+    'name': 'Equatorial Guinea (Guinea Ecuatorial)',
+    'dialCode': 240,
+    'phoneFormat': '222 123 456'
+  },
+  'er': {'code': 'er', 'name': 'Eritrea', 'dialCode': 291, 'phoneFormat': '07 123 456'},
+  'ee': {'code': 'ee', 'name': 'Estonia (Eesti)', 'dialCode': 372, 'phoneFormat': '5123 4567'},
+  'et': {'code': 'et', 'name': 'Ethiopia', 'dialCode': 251, 'phoneFormat': '091 123 4567'},
+  'fk': {'code': 'fk', 'name': 'Falkland Islands (Islas Malvinas)', 'dialCode': 500, 'phoneFormat': '51234'},
+  'fo': {'code': 'fo', 'name': 'Faroe Islands (Føroyar)', 'dialCode': 298, 'phoneFormat': '211234'},
+  'fj': {'code': 'fj', 'name': 'Fiji', 'dialCode': 679, 'phoneFormat': '701 2345'},
+  'fi': {'code': 'fi', 'name': 'Finland (Suomi)', 'dialCode': 358, 'phoneFormat': '041 2345678'},
+  'fr': {'code': 'fr', 'name': 'France', 'dialCode': 33, 'phoneFormat': '06 12 34 56 78'},
+  'gf': {'code': 'gf', 'name': 'French Guiana (Guyane française)', 'dialCode': 594, 'phoneFormat': '0694 20 12 34'},
+  'pf': {
+    'code': 'pf',
+    'name': 'French Polynesia (Polynésie française)',
+    'dialCode': 689,
+    'phoneFormat': '87 12 34 56'
+  },
+  'ga': {'code': 'ga', 'name': 'Gabon', 'dialCode': 241, 'phoneFormat': '06 03 12 34'},
+  'gm': {'code': 'gm', 'name': 'Gambia', 'dialCode': 220, 'phoneFormat': '301 2345'},
+  'ge': {'code': 'ge', 'name': 'Georgia (საქართველო)', 'dialCode': 995, 'phoneFormat': '555 12 34 56'},
+  'de': {'code': 'de', 'name': 'Germany (Deutschland)', 'dialCode': 49, 'phoneFormat': '01512 3456789'},
+  'gh': {'code': 'gh', 'name': 'Ghana (Gaana)', 'dialCode': 233, 'phoneFormat': '023 123 4567'},
+  'gi': {'code': 'gi', 'name': 'Gibraltar', 'dialCode': 350, 'phoneFormat': '57123456'},
+  'gr': {'code': 'gr', 'name': 'Greece (Ελλάδα)', 'dialCode': 30, 'phoneFormat': '691 234 5678'},
+  'gl': {'code': 'gl', 'name': 'Greenland (Kalaallit Nunaat)', 'dialCode': 299, 'phoneFormat': '22 12 34'},
+  'gd': {'code': 'gd', 'name': 'Grenada', 'dialCode': 1473, 'phoneFormat': '(473) 403-1234'},
+  'gp': {'code': 'gp', 'name': 'Guadeloupe', 'dialCode': 590, 'phoneFormat': '0690 30-1234'},
+  'gu': {'code': 'gu', 'name': 'Guam', 'dialCode': 1671, 'phoneFormat': '(671) 300-1234'},
+  'gt': {'code': 'gt', 'name': 'Guatemala', 'dialCode': 502, 'phoneFormat': '5123 4567'},
+  'gg': {'code': 'gg', 'name': 'Guernsey', 'dialCode': 44, 'phoneFormat': '07781 123456'},
+  'gn': {'code': 'gn', 'name': 'Guinea (Guinée)', 'dialCode': 224, 'phoneFormat': '601 12 34 56'},
+  'gw': {'code': 'gw', 'name': 'Guinea-Bissau (Guiné Bissau)', 'dialCode': 245, 'phoneFormat': '955 012 345'},
+  'gy': {'code': 'gy', 'name': 'Guyana', 'dialCode': 592, 'phoneFormat': '609 1234'},
+  'ht': {'code': 'ht', 'name': 'Haiti', 'dialCode': 509, 'phoneFormat': '34 10 1234'},
+  'hn': {'code': 'hn', 'name': 'Honduras', 'dialCode': 504, 'phoneFormat': '9123-4567'},
+  'hk': {'code': 'hk', 'name': 'Hong Kong (香港)', 'dialCode': 852, 'phoneFormat': '5123 4567'},
+  'hu': {'code': 'hu', 'name': 'Hungary (Magyarország)', 'dialCode': 36, 'phoneFormat': '(20) 123 4567'},
+  'is': {'code': 'is', 'name': 'Iceland (Ísland)', 'dialCode': 354, 'phoneFormat': '611 1234'},
+  'in': {'code': 'in', 'name': 'India (भारत)', 'dialCode': 91, 'phoneFormat': '099876 54321'},
+  'id': {'code': 'id', 'name': 'Indonesia', 'dialCode': 62, 'phoneFormat': '0812-345-678'},
+  'ir': {'code': 'ir', 'name': 'Iran (‫ایران‬‎)', 'dialCode': 98, 'phoneFormat': '0912 345 6789'},
+  'iq': {'code': 'iq', 'name': 'Iraq (‫العراق‬‎)', 'dialCode': 964, 'phoneFormat': '0791 234 5678'},
+  'ie': {'code': 'ie', 'name': 'Ireland', 'dialCode': 353, 'phoneFormat': '085 012 3456'},
+  'im': {'code': 'im', 'name': 'Isle of Man', 'dialCode': 44, 'phoneFormat': '07924 123456'},
+  'il': {'code': 'il', 'name': 'Israel (‫ישראל‬‎)', 'dialCode': 972, 'phoneFormat': '050-123-4567'},
+  'it': {'code': 'it', 'name': 'Italy (Italia)', 'dialCode': 39, 'phoneFormat': '312 345 6789'},
+  'jm': {'code': 'jm', 'name': 'Jamaica', 'dialCode': 1876, 'phoneFormat': '(876) 210-1234'},
+  'jp': {'code': 'jp', 'name': 'Japan (日本)', 'dialCode': 81, 'phoneFormat': '090-1234-5678'},
+  'je': {'code': 'je', 'name': 'Jersey', 'dialCode': 44, 'phoneFormat': '07797 123456'},
+  'jo': {'code': 'jo', 'name': 'Jordan (‫الأردن‬‎)', 'dialCode': 962, 'phoneFormat': '07 9012 3456'},
+  'kz': {'code': 'kz', 'name': 'Kazakhstan (Казахстан)', 'dialCode': 7, 'phoneFormat': '8 (771) 000 9998'},
+  'ke': {'code': 'ke', 'name': 'Kenya', 'dialCode': 254, 'phoneFormat': '0712 123456'},
+  'ki': {'code': 'ki', 'name': 'Kiribati', 'dialCode': 686, 'phoneFormat': '72012345'},
+  'xk': {'code': 'xk', 'name': 'Kosovo', 'dialCode': 383, 'phoneFormat': ''},
+  'kw': {'code': 'kw', 'name': 'Kuwait (‫الكويت‬‎)', 'dialCode': 965, 'phoneFormat': '500 12345'},
+  'kg': {'code': 'kg', 'name': 'Kyrgyzstan (Кыргызстан)', 'dialCode': 996, 'phoneFormat': '0700 123 456'},
+  'la': {'code': 'la', 'name': 'Laos (ລາວ)', 'dialCode': 856, 'phoneFormat': '020 23 123 456'},
+  'lv': {'code': 'lv', 'name': 'Latvia (Latvija)', 'dialCode': 371, 'phoneFormat': '21 234 567'},
+  'lb': {'code': 'lb', 'name': 'Lebanon (‫لبنان‬‎)', 'dialCode': 961, 'phoneFormat': '71 123 456'},
+  'ls': {'code': 'ls', 'name': 'Lesotho', 'dialCode': 266, 'phoneFormat': '5012 3456'},
+  'lr': {'code': 'lr', 'name': 'Liberia', 'dialCode': 231, 'phoneFormat': '077 012 3456'},
+  'ly': {'code': 'ly', 'name': 'Libya (‫ليبيا‬‎)', 'dialCode': 218, 'phoneFormat': '091-2345678'},
+  'li': {'code': 'li', 'name': 'Liechtenstein', 'dialCode': 423, 'phoneFormat': '660 234 567'},
+  'lt': {'code': 'lt', 'name': 'Lithuania (Lietuva)', 'dialCode': 370, 'phoneFormat': '(8-612) 34567'},
+  'lu': {'code': 'lu', 'name': 'Luxembourg', 'dialCode': 352, 'phoneFormat': '628 123 456'},
+  'mo': {'code': 'mo', 'name': 'Macau (澳門)', 'dialCode': 853, 'phoneFormat': '6612 3456'},
+  'mk': {'code': 'mk', 'name': 'Macedonia (FYROM) (Македонија)', 'dialCode': 389, 'phoneFormat': '072 345 678'},
+  'mg': {'code': 'mg', 'name': 'Madagascar (Madagasikara)', 'dialCode': 261, 'phoneFormat': '032 12 345 67'},
+  'mw': {'code': 'mw', 'name': 'Malawi', 'dialCode': 265, 'phoneFormat': '0991 23 45 67'},
+  'my': {'code': 'my', 'name': 'Malaysia', 'dialCode': 60, 'phoneFormat': '012-345 6789'},
+  'mv': {'code': 'mv', 'name': 'Maldives', 'dialCode': 960, 'phoneFormat': '771-2345'},
+  'ml': {'code': 'ml', 'name': 'Mali', 'dialCode': 223, 'phoneFormat': '65 01 23 45'},
+  'mt': {'code': 'mt', 'name': 'Malta', 'dialCode': 356, 'phoneFormat': '9696 1234'},
+  'mh': {'code': 'mh', 'name': 'Marshall Islands', 'dialCode': 692, 'phoneFormat': '235-1234'},
+  'mq': {'code': 'mq', 'name': 'Martinique', 'dialCode': 596, 'phoneFormat': '0696 20 12 34'},
+  'mr': {'code': 'mr', 'name': 'Mauritania (‫موريتانيا‬‎)', 'dialCode': 222, 'phoneFormat': '22 12 34 56'},
+  'mu': {'code': 'mu', 'name': 'Mauritius (Moris)', 'dialCode': 230, 'phoneFormat': '5251 2345'},
+  'yt': {'code': 'yt', 'name': 'Mayotte', 'dialCode': 262, 'phoneFormat': '0639 12 34 56'},
+  'mx': {'code': 'mx', 'name': 'Mexico (México)', 'dialCode': 52, 'phoneFormat': '044 222 123 4567'},
+  'fm': {'code': 'fm', 'name': 'Micronesia', 'dialCode': 691, 'phoneFormat': '350 1234'},
+  'md': {'code': 'md', 'name': 'Moldova (Republica Moldova)', 'dialCode': 373, 'phoneFormat': '0621 12 345'},
+  'mc': {'code': 'mc', 'name': 'Monaco', 'dialCode': 377, 'phoneFormat': '06 12 34 56 78'},
+  'mn': {'code': 'mn', 'name': 'Mongolia (Монгол)', 'dialCode': 976, 'phoneFormat': '8812 3456'},
+  'me': {'code': 'me', 'name': 'Montenegro (Crna Gora)', 'dialCode': 382, 'phoneFormat': '067 622 901'},
+  'ms': {'code': 'ms', 'name': 'Montserrat', 'dialCode': 1664, 'phoneFormat': '(664) 492-3456'},
+  'ma': {'code': 'ma', 'name': 'Morocco (‫المغرب‬‎)', 'dialCode': 212, 'phoneFormat': '0650-123456'},
+  'mz': {'code': 'mz', 'name': 'Mozambique (Moçambique)', 'dialCode': 258, 'phoneFormat': '82 123 4567'},
+  'mm': {'code': 'mm', 'name': 'Myanmar (Burma) (မြန်မာ)', 'dialCode': 95, 'phoneFormat': '09 212 3456'},
+  'na': {'code': 'na', 'name': 'Namibia (Namibië)', 'dialCode': 264, 'phoneFormat': '081 123 4567'},
+  'nr': {'code': 'nr', 'name': 'Nauru', 'dialCode': 674, 'phoneFormat': '555 1234'},
+  'np': {'code': 'np', 'name': 'Nepal (नेपाल)', 'dialCode': 977, 'phoneFormat': '984-1234567'},
+  'nl': {'code': 'nl', 'name': 'Netherlands (Nederland)', 'dialCode': 31, 'phoneFormat': '06 12345678'},
+  'nc': {'code': 'nc', 'name': 'New Caledonia (Nouvelle-Calédonie)', 'dialCode': 687, 'phoneFormat': '75.12.34'},
+  'nz': {'code': 'nz', 'name': 'New Zealand', 'dialCode': 64, 'phoneFormat': '021 123 4567'},
+  'ni': {'code': 'ni', 'name': 'Nicaragua', 'dialCode': 505, 'phoneFormat': '8123 4567'},
+  'ne': {'code': 'ne', 'name': 'Niger (Nijar)', 'dialCode': 227, 'phoneFormat': '93 12 34 56'},
+  'ng': {'code': 'ng', 'name': 'Nigeria', 'dialCode': 234, 'phoneFormat': '0802 123 4567'},
+  'nu': {'code': 'nu', 'name': 'Niue', 'dialCode': 683, 'phoneFormat': '1234'},
+  'nf': {'code': 'nf', 'name': 'Norfolk Island', 'dialCode': 672, 'phoneFormat': '3 81234'},
+  'kp': {'code': 'kp', 'name': 'North Korea (조선 민주주의 인민 공화국)', 'dialCode': 850, 'phoneFormat': '0192 123 4567'},
+  'mp': {'code': 'mp', 'name': 'Northern Mariana Islands', 'dialCode': 1670, 'phoneFormat': '(670) 234-5678'},
+  'no': {'code': 'no', 'name': 'Norway (Norge)', 'dialCode': 47, 'phoneFormat': '406 12 345'},
+  'om': {'code': 'om', 'name': 'Oman (‫عُمان‬‎)', 'dialCode': 968, 'phoneFormat': '9212 3456'},
+  'pk': {'code': 'pk', 'name': 'Pakistan (‫پاکستان‬‎)', 'dialCode': 92, 'phoneFormat': '0301 2345678'},
+  'pw': {'code': 'pw', 'name': 'Palau', 'dialCode': 680, 'phoneFormat': '620 1234'},
+  'ps': {'code': 'ps', 'name': 'Palestine (‫فلسطين‬‎)', 'dialCode': 970, 'phoneFormat': '0599 123 456'},
+  'pa': {'code': 'pa', 'name': 'Panama (Panamá)', 'dialCode': 507, 'phoneFormat': '6001-2345'},
+  'pg': {'code': 'pg', 'name': 'Papua New Guinea', 'dialCode': 675, 'phoneFormat': '681 2345'},
+  'py': {'code': 'py', 'name': 'Paraguay', 'dialCode': 595, 'phoneFormat': '0961 456789'},
+  'pe': {'code': 'pe', 'name': 'Peru (Perú)', 'dialCode': 51, 'phoneFormat': '912 345 678'},
+  'ph': {'code': 'ph', 'name': 'Philippines', 'dialCode': 63, 'phoneFormat': '0905 123 4567'},
+  'pl': {'code': 'pl', 'name': 'Poland (Polska)', 'dialCode': 48, 'phoneFormat': '512 345 678'},
+  'pt': {'code': 'pt', 'name': 'Portugal', 'dialCode': 351, 'phoneFormat': '912 345 678'},
+  'pr': {'code': 'pr', 'name': 'Puerto Rico', 'dialCode': 1, 'phoneFormat': '(787) 234-5678'},
+  'qa': {'code': 'qa', 'name': 'Qatar (‫قطر‬‎)', 'dialCode': 974, 'phoneFormat': '3312 3456'},
+  're': {'code': 're', 'name': 'Réunion (La Réunion)', 'dialCode': 262, 'phoneFormat': '0692 12 34 56'},
+  'ro': {'code': 'ro', 'name': 'Romania (România)', 'dialCode': 40, 'phoneFormat': '0712 345 678'},
+  'ru': {'code': 'ru', 'name': 'Russia (Россия)', 'dialCode': 7, 'phoneFormat': '8 (912) 345-67-89'},
+  'rw': {'code': 'rw', 'name': 'Rwanda', 'dialCode': 250, 'phoneFormat': '0720 123 456'},
+  'bl': {
+    'code': 'bl',
+    'name': 'Saint Barthélemy (Saint-Barthélemy)',
+    'dialCode': 590,
+    'phoneFormat': '0690 30-1234'
+  },
+  'sh': {'code': 'sh', 'name': 'Saint Helena', 'dialCode': 290, 'phoneFormat': '51234'},
+  'kn': {'code': 'kn', 'name': 'Saint Kitts and Nevis', 'dialCode': 1869, 'phoneFormat': '(869) 765-2917'},
+  'lc': {'code': 'lc', 'name': 'Saint Lucia', 'dialCode': 1758, 'phoneFormat': '(758) 284-5678'},
+  'mf': {
+    'code': 'mf',
+    'name': 'Saint Martin (Saint-Martin (partie française))',
+    'dialCode': 590,
+    'phoneFormat': '0690 30-1234'
+  },
+  'pm': {
+    'code': 'pm',
+    'name': 'Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)',
+    'dialCode': 508,
+    'phoneFormat': '055 12 34'
+  },
+  'vc': {
+    'code': 'vc',
+    'name': 'Saint Vincent and the Grenadines',
+    'dialCode': 1784,
+    'phoneFormat': '(784) 430-1234'
+  },
+  'ws': {'code': 'ws', 'name': 'Samoa', 'dialCode': 685, 'phoneFormat': '601234'},
+  'sm': {'code': 'sm', 'name': 'San Marino', 'dialCode': 378, 'phoneFormat': '66 66 12 12'},
+  'st': {
+    'code': 'st',
+    'name': 'São Tomé and Príncipe (São Tomé e Príncipe)',
+    'dialCode': 239,
+    'phoneFormat': '981 2345'
+  },
+  'sa': {
+    'code': 'sa',
+    'name': 'Saudi Arabia (‫المملكة العربية السعودية‬‎)',
+    'dialCode': 966,
+    'phoneFormat': '051 234 5678'
+  },
+  'sn': {'code': 'sn', 'name': 'Senegal (Sénégal)', 'dialCode': 221, 'phoneFormat': '70 123 45 67'},
+  'rs': {'code': 'rs', 'name': 'Serbia (Србија)', 'dialCode': 381, 'phoneFormat': '060 1234567'},
+  'sc': {'code': 'sc', 'name': 'Seychelles', 'dialCode': 248, 'phoneFormat': '2 510 123'},
+  'sl': {'code': 'sl', 'name': 'Sierra Leone', 'dialCode': 232, 'phoneFormat': '(025) 123456'},
+  'sg': {'code': 'sg', 'name': 'Singapore', 'dialCode': 65, 'phoneFormat': '8123 4567'},
+  'sx': {'code': 'sx', 'name': 'Sint Maarten', 'dialCode': 1721, 'phoneFormat': '(721) 520-5678'},
+  'sk': {'code': 'sk', 'name': 'Slovakia (Slovensko)', 'dialCode': 421, 'phoneFormat': '0912 123 456'},
+  'si': {'code': 'si', 'name': 'Slovenia (Slovenija)', 'dialCode': 386, 'phoneFormat': '031 234 567'},
+  'sb': {'code': 'sb', 'name': 'Solomon Islands', 'dialCode': 677, 'phoneFormat': '74 21234'},
+  'so': {'code': 'so', 'name': 'Somalia (Soomaaliya)', 'dialCode': 252, 'phoneFormat': '7 1123456'},
+  'za': {'code': 'za', 'name': 'South Africa', 'dialCode': 27, 'phoneFormat': '071 123 4567'},
+  'kr': {'code': 'kr', 'name': 'South Korea (대한민국)', 'dialCode': 82, 'phoneFormat': '010-0000-0000'},
+  'ss': {'code': 'ss', 'name': 'South Sudan (‫جنوب السودان‬‎)', 'dialCode': 211, 'phoneFormat': '0977 123 456'},
+  'es': {'code': 'es', 'name': 'Spain (España)', 'dialCode': 34, 'phoneFormat': '612 34 56 78'},
+  'lk': {'code': 'lk', 'name': 'Sri Lanka (ශ්‍රී ලංකාව)', 'dialCode': 94, 'phoneFormat': '071 234 5678'},
+  'sd': {'code': 'sd', 'name': 'Sudan (‫السودان‬‎)', 'dialCode': 249, 'phoneFormat': '091 123 1234'},
+  'sr': {'code': 'sr', 'name': 'Suriname', 'dialCode': 597, 'phoneFormat': '741-2345'},
+  'sj': {'code': 'sj', 'name': 'Svalbard and Jan Mayen', 'dialCode': 47, 'phoneFormat': '412 34 567'},
+  'sz': {'code': 'sz', 'name': 'Swaziland', 'dialCode': 268, 'phoneFormat': '7612 3456'},
+  'se': {'code': 'se', 'name': 'Sweden (Sverige)', 'dialCode': 46, 'phoneFormat': '070-123 45 67'},
+  'ch': {'code': 'ch', 'name': 'Switzerland (Schweiz)', 'dialCode': 41, 'phoneFormat': '078 123 45 67'},
+  'sy': {'code': 'sy', 'name': 'Syria (‫سوريا‬‎)', 'dialCode': 963, 'phoneFormat': '0944 567 890'},
+  'tw': {'code': 'tw', 'name': 'Taiwan (台灣)', 'dialCode': 886, 'phoneFormat': '0912 345 678'},
+  'tj': {'code': 'tj', 'name': 'Tajikistan', 'dialCode': 992, 'phoneFormat': '(8) 917 12 3456'},
+  'tz': {'code': 'tz', 'name': 'Tanzania', 'dialCode': 255, 'phoneFormat': '0621 234 567'},
+  'th': {'code': 'th', 'name': 'Thailand (ไทย)', 'dialCode': 66, 'phoneFormat': '081 234 5678'},
+  'tl': {'code': 'tl', 'name': 'Timor-Leste', 'dialCode': 670, 'phoneFormat': '7721 2345'},
+  'tg': {'code': 'tg', 'name': 'Togo', 'dialCode': 228, 'phoneFormat': '90 11 23 45'},
+  'tk': {'code': 'tk', 'name': 'Tokelau', 'dialCode': 690, 'phoneFormat': '7290'},
+  'to': {'code': 'to', 'name': 'Tonga', 'dialCode': 676, 'phoneFormat': '771 5123'},
+  'tt': {'code': 'tt', 'name': 'Trinidad and Tobago', 'dialCode': 1868, 'phoneFormat': '(868) 291-1234'},
+  'tn': {'code': 'tn', 'name': 'Tunisia (‫تونس‬‎)', 'dialCode': 216, 'phoneFormat': '20 123 456'},
+  'tr': {'code': 'tr', 'name': 'Turkey (Türkiye)', 'dialCode': 90, 'phoneFormat': '0501 234 56 78'},
+  'tm': {'code': 'tm', 'name': 'Turkmenistan', 'dialCode': 993, 'phoneFormat': '8 66 123456'},
+  'tc': {'code': 'tc', 'name': 'Turks and Caicos Islands', 'dialCode': 1649, 'phoneFormat': '(649) 231-1234'},
+  'tv': {'code': 'tv', 'name': 'Tuvalu', 'dialCode': 688, 'phoneFormat': '901234'},
+  'us': {'code': 'us', 'name': 'United States', 'dialCode': 1, 'phoneFormat': '(201) 555-0123'},
+  'gb': {'code': 'gb', 'name': 'United Kingdom', 'dialCode': 44, 'phoneFormat': '07400 123456'},
+  'vi': {'code': 'vi', 'name': 'U.S. Virgin Islands', 'dialCode': 1340, 'phoneFormat': '(340) 642-1234'},
+  'ug': {'code': 'ug', 'name': 'Uganda', 'dialCode': 256, 'phoneFormat': '0712 345678'},
+  'ua': {'code': 'ua', 'name': 'Ukraine (Україна)', 'dialCode': 380, 'phoneFormat': '039 123 4567'},
+  'ae': {
+    'code': 'ae',
+    'name': 'United Arab Emirates (‫الإمارات العربية المتحدة‬‎)',
+    'dialCode': 971,
+    'phoneFormat': '050 123 4567'
+  },
+  'uy': {'code': 'uy', 'name': 'Uruguay', 'dialCode': 598, 'phoneFormat': '094 231 234'},
+  'uz': {'code': 'uz', 'name': 'Uzbekistan (Oʻzbekiston)', 'dialCode': 998, 'phoneFormat': '8 91 234 56 78'},
+  'vu': {'code': 'vu', 'name': 'Vanuatu', 'dialCode': 678, 'phoneFormat': '591 2345'},
+  'va': {'code': 'va', 'name': 'Vatican City (Città del Vaticano)', 'dialCode': 39, 'phoneFormat': '312 345 6789'},
+  've': {'code': 've', 'name': 'Venezuela', 'dialCode': 58, 'phoneFormat': '0412-1234567'},
+  'vn': {'code': 'vn', 'name': 'Vietnam (Việt Nam)', 'dialCode': 84, 'phoneFormat': '091 234 56 78'},
+  'wf': {'code': 'wf', 'name': 'Wallis and Futuna', 'dialCode': 681, 'phoneFormat': '50 12 34'},
+  'eh': {
+    'code': 'eh',
+    'name': 'Western Sahara (‫الصحراء الغربية‬‎)',
+    'dialCode': 212,
+    'phoneFormat': '0650-123456'
+  },
+  'ye': {'code': 'ye', 'name': 'Yemen (‫اليمن‬‎)', 'dialCode': 967, 'phoneFormat': '0712 345 678'},
+  'zm': {'code': 'zm', 'name': 'Zambia', 'dialCode': 260, 'phoneFormat': '095 5123456'},
+  'zw': {'code': 'zw', 'name': 'Zimbabwe', 'dialCode': 263, 'phoneFormat': '071 123 4567'},
+  'ax': {'code': 'ax', 'name': 'Åland Islands', 'dialCode': 358, 'phoneFormat': '041 2345678'}
+}
+
+export default countries
diff --git a/src/components/country-list/flags.png b/src/components/country-list/flags.png
new file mode 100644
index 0000000..0ffa81a
--- /dev/null
+++ b/src/components/country-list/flags.png
Binary files differ
diff --git a/src/components/country-list/flags@2x.png b/src/components/country-list/flags@2x.png
new file mode 100644
index 0000000..3624e63
--- /dev/null
+++ b/src/components/country-list/flags@2x.png
Binary files differ
diff --git a/src/components/country-list/index.vue b/src/components/country-list/index.vue
new file mode 100644
index 0000000..88288b5
--- /dev/null
+++ b/src/components/country-list/index.vue
@@ -0,0 +1,131 @@
+<template>
+  <div class="intl-tel-input allow-dropdown">
+    <div class="flag-container">
+      <div
+        class="selected-flag"
+        :title="currentData.name + ': +' + currentData.dialCode"
+        @click="hideSubMenu = !hideSubMenu"
+      >
+        <div :class="'iti-flag ' + currentData.code"></div>
+        <div class="iti-arrow"></div>
+      </div>
+      <ul class="country-list" v-show="!hideSubMenu">
+        <li
+          v-for="item in frontCountriesArray"
+          :key="item.id"
+          :class="'country ' + (item.code == currentCode ? 'highlight' : '')"
+          @click="currentCode = item.code; hideSubMenu = true; setCountry(item);"
+        >
+          <div class="flag-box">
+            <div :class="'iti-flag ' + item.code"></div>
+          </div>
+          <span class="country-name">{{ item.name }}</span>
+          <span class="dial-code">+{{ item.dialCode }}</span>
+        </li>
+        <li class="divider"></li>
+        <li
+          v-for="item in countriesArray"
+          :key="item.id"
+          :class="'country ' + (item.code == currentCode ? 'highlight' : '')"
+          @click="currentCode = item.code; hideSubMenu = true; setCountry(item);"
+        >
+          <div class="flag-box">
+            <div :class="'iti-flag ' + item.code"></div>
+          </div>
+          <span class="country-name">{{ item.name }}</span>
+          <span class="dial-code">+{{ item.dialCode }}</span>
+        </li>
+      </ul>
+    </div>
+  </div>
+</template>
+
+
+<script>
+  import countries from './countryList'
+
+  export default {
+    props: {
+      toFront: {
+        type: Array,
+        default: () => {
+          return []
+        }
+      },
+      countryCode: {
+        type: String,
+        default: Object.keys(countries)[0],
+        validator(code) {
+          var clearCode = String(code).toLowerCase()
+          return !!countries[clearCode]
+        }
+      }
+    },
+
+    data() {
+      return {
+        currentCode: this.countryCode,
+        hideSubMenu: true
+      }
+    },
+
+    computed: {
+      currentData() {
+        return countries[this.currentCode]
+      },
+      frontCountriesArray() {
+        const toFrontCodes = {}
+        this.toFront.forEach((code) => {
+          const stringCode = String(code)
+          const needObj = countries[stringCode]
+
+          if(needObj) {
+            toFrontCodes[stringCode] = needObj
+          }
+        })
+        return toFrontCodes
+      },
+      countriesArray() {
+        const countryCopie = { ...countries }
+        this.toFront.forEach((code) => {
+          delete countryCopie[code]
+        })
+        return countryCopie
+      }
+    },
+
+    watch: {
+      countryCode(newCode) {
+        this.setCountry(countries[newCode])
+      }
+    },
+
+    methods: {
+      setCountry(item) {
+        this.currentCode = item.code
+        this.toFront.push(String(item.code))
+        this.$emit('excountry', item)
+      }
+    },
+
+    mounted() {
+      this.$emit('excountry', countries[this.countryCode])
+    }
+  }
+</script>
+
+
+<style lang="scss" scoped>
+  @import "intl.css";
+
+  .intl-tel-input {
+    height: 40px;
+    color: #666;
+    font-size: 14px;
+    .country-list {
+      width: 335px;
+      height: 400px;
+      margin-top: 2px;
+    }
+  }
+</style>
diff --git a/src/components/country-list/intl.css b/src/components/country-list/intl.css
new file mode 100644
index 0000000..93aada1
--- /dev/null
+++ b/src/components/country-list/intl.css
@@ -0,0 +1,1598 @@
+.intl-tel-input {
+  position: relative;
+  display: inline-block;
+}
+
+.intl-tel-input * {
+  box-sizing: border-box;
+  -moz-box-sizing: border-box;
+}
+
+.intl-tel-input .hide {
+  display: none;
+}
+
+.intl-tel-input .v-hide {
+  visibility: hidden;
+}
+
+.intl-tel-input input, .intl-tel-input input[type=text], .intl-tel-input input[type=tel] {
+  position: relative;
+  z-index: 0;
+  margin-top: 0 !important;
+  margin-bottom: 0 !important;
+  padding-right: 36px;
+  margin-right: 0;
+}
+
+.intl-tel-input .flag-container {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  right: 0;
+  padding: 1px;
+}
+
+.intl-tel-input .selected-flag {
+  z-index: 1;
+  position: relative;
+  width: 36px;
+  height: 100%;
+  padding: 0 0 0 2px;
+}
+
+.intl-tel-input .selected-flag .iti-flag {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  margin: auto;
+}
+
+.intl-tel-input .selected-flag .iti-arrow {
+  position: absolute;
+  top: 50%;
+  margin-top: -2px;
+  right: 10px;
+  width: 0;
+  height: 0;
+  border-left: 3px solid transparent;
+  border-right: 3px solid transparent;
+  border-top: 4px solid #555;
+}
+
+.intl-tel-input .selected-flag .iti-arrow.up {
+  border-top: none;
+  border-bottom: 4px solid #555;
+}
+
+.intl-tel-input .country-list {
+  position: absolute;
+  z-index: 2;
+  list-style: none;
+  text-align: left;
+  padding: 0;
+  margin: 0 0 0 -1px;
+  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
+  background-color: white;
+  border: 1px solid #CCC;
+  white-space: nowrap;
+  max-height: 500px;
+  overflow-y: scroll;
+}
+
+.intl-tel-input .country-list.dropup {
+  bottom: 100%;
+  margin-bottom: -1px;
+}
+
+.intl-tel-input .country-list .flag-box {
+  display: inline-block;
+  width: 20px;
+}
+
+@media (max-width: 500px) {
+  .intl-tel-input .country-list {
+    white-space: normal;
+  }
+}
+
+.intl-tel-input .country-list .divider {
+  padding-bottom: 5px;
+  margin-bottom: 5px;
+  border-bottom: 1px solid #CCC;
+}
+
+.intl-tel-input .country-list .country {
+  padding: 5px 10px;
+}
+
+.intl-tel-input .country-list .country .dial-code {
+  color: #999;
+}
+
+.intl-tel-input .country-list .country.highlight {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+.intl-tel-input .country-list .flag-box, .intl-tel-input .country-list .country-name, .intl-tel-input .country-list .dial-code {
+  vertical-align: middle;
+}
+
+.intl-tel-input .country-list .flag-box, .intl-tel-input .country-list .country-name {
+  margin-right: 6px;
+}
+
+.intl-tel-input.allow-dropdown input, .intl-tel-input.allow-dropdown input[type=text], .intl-tel-input.allow-dropdown input[type=tel], .intl-tel-input.separate-dial-code input, .intl-tel-input.separate-dial-code input[type=text], .intl-tel-input.separate-dial-code input[type=tel] {
+  padding-right: 6px;
+  padding-left: 52px;
+  margin-left: 0;
+}
+
+.intl-tel-input.allow-dropdown .flag-container, .intl-tel-input.separate-dial-code .flag-container {
+  right: auto;
+  left: 0;
+}
+
+.intl-tel-input.allow-dropdown .selected-flag, .intl-tel-input.separate-dial-code .selected-flag {
+  width: 45px;
+}
+
+.intl-tel-input.allow-dropdown .flag-container:hover {
+  cursor: pointer;
+}
+
+.intl-tel-input.allow-dropdown .flag-container:hover .selected-flag {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+.intl-tel-input.allow-dropdown input[disabled] + .flag-container:hover, .intl-tel-input.allow-dropdown input[readonly] + .flag-container:hover {
+  cursor: default;
+}
+
+.intl-tel-input.allow-dropdown input[disabled] + .flag-container:hover .selected-flag, .intl-tel-input.allow-dropdown input[readonly] + .flag-container:hover .selected-flag {
+  background-color: transparent;
+}
+
+.intl-tel-input.separate-dial-code .selected-flag {
+  background-color: rgba(0, 0, 0, 0.05);
+  display: table;
+}
+
+.intl-tel-input.separate-dial-code .selected-dial-code {
+  display: table-cell;
+  vertical-align: middle;
+  padding-left: 28px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-2 input, .intl-tel-input.separate-dial-code.iti-sdc-2 input[type=text], .intl-tel-input.separate-dial-code.iti-sdc-2 input[type=tel] {
+  padding-left: 66px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-2 .selected-flag {
+  width: 60px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 input, .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 input[type=text], .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 input[type=tel] {
+  padding-left: 76px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 .selected-flag {
+  width: 70px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-3 input, .intl-tel-input.separate-dial-code.iti-sdc-3 input[type=text], .intl-tel-input.separate-dial-code.iti-sdc-3 input[type=tel] {
+  padding-left: 74px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-3 .selected-flag {
+  width: 68px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 input, .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 input[type=text], .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 input[type=tel] {
+  padding-left: 84px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 .selected-flag {
+  width: 78px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-4 input, .intl-tel-input.separate-dial-code.iti-sdc-4 input[type=text], .intl-tel-input.separate-dial-code.iti-sdc-4 input[type=tel] {
+  padding-left: 82px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-4 .selected-flag {
+  width: 76px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 input, .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 input[type=text], .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 input[type=tel] {
+  padding-left: 92px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 .selected-flag {
+  width: 86px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-5 input, .intl-tel-input.separate-dial-code.iti-sdc-5 input[type=text], .intl-tel-input.separate-dial-code.iti-sdc-5 input[type=tel] {
+  padding-left: 90px;
+}
+
+.intl-tel-input.separate-dial-code.iti-sdc-5 .selected-flag {
+  width: 84px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-5 input, .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-5 input[type=text], .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-5 input[type=tel] {
+  padding-left: 100px;
+}
+
+.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-5 .selected-flag {
+  width: 94px;
+}
+
+.intl-tel-input.iti-container {
+  position: absolute;
+  top: -1000px;
+  left: -1000px;
+  z-index: 1060;
+  padding: 1px;
+}
+
+.intl-tel-input.iti-container:hover {
+  cursor: pointer;
+}
+
+.iti-mobile .intl-tel-input.iti-container {
+  top: 30px;
+  bottom: 30px;
+  left: 30px;
+  right: 30px;
+  position: fixed;
+}
+
+.iti-mobile .intl-tel-input .country-list {
+  max-height: 100%;
+  width: 100%;
+}
+
+.iti-mobile .intl-tel-input .country-list .country {
+  padding: 10px 10px;
+  line-height: 1.5em;
+}
+
+.iti-flag {
+  width: 20px;
+}
+
+.iti-flag.be {
+  width: 18px;
+}
+
+.iti-flag.ch {
+  width: 15px;
+}
+
+.iti-flag.mc {
+  width: 19px;
+}
+
+.iti-flag.ne {
+  width: 18px;
+}
+
+.iti-flag.np {
+  width: 13px;
+}
+
+.iti-flag.va {
+  width: 15px;
+}
+
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  .iti-flag {
+    background-size: 5630px 15px;
+  }
+}
+
+.iti-flag.ac {
+  height: 10px;
+  background-position: 0px 0px;
+}
+
+.iti-flag.ad {
+  height: 14px;
+  background-position: -22px 0px;
+}
+
+.iti-flag.ae {
+  height: 10px;
+  background-position: -44px 0px;
+}
+
+.iti-flag.af {
+  height: 14px;
+  background-position: -66px 0px;
+}
+
+.iti-flag.ag {
+  height: 14px;
+  background-position: -88px 0px;
+}
+
+.iti-flag.ai {
+  height: 10px;
+  background-position: -110px 0px;
+}
+
+.iti-flag.al {
+  height: 15px;
+  background-position: -132px 0px;
+}
+
+.iti-flag.am {
+  height: 10px;
+  background-position: -154px 0px;
+}
+
+.iti-flag.ao {
+  height: 14px;
+  background-position: -176px 0px;
+}
+
+.iti-flag.aq {
+  height: 14px;
+  background-position: -198px 0px;
+}
+
+.iti-flag.ar {
+  height: 13px;
+  background-position: -220px 0px;
+}
+
+.iti-flag.as {
+  height: 10px;
+  background-position: -242px 0px;
+}
+
+.iti-flag.at {
+  height: 14px;
+  background-position: -264px 0px;
+}
+
+.iti-flag.au {
+  height: 10px;
+  background-position: -286px 0px;
+}
+
+.iti-flag.aw {
+  height: 14px;
+  background-position: -308px 0px;
+}
+
+.iti-flag.ax {
+  height: 13px;
+  background-position: -330px 0px;
+}
+
+.iti-flag.az {
+  height: 10px;
+  background-position: -352px 0px;
+}
+
+.iti-flag.ba {
+  height: 10px;
+  background-position: -374px 0px;
+}
+
+.iti-flag.bb {
+  height: 14px;
+  background-position: -396px 0px;
+}
+
+.iti-flag.bd {
+  height: 12px;
+  background-position: -418px 0px;
+}
+
+.iti-flag.be {
+  height: 15px;
+  background-position: -440px 0px;
+}
+
+.iti-flag.bf {
+  height: 14px;
+  background-position: -460px 0px;
+}
+
+.iti-flag.bg {
+  height: 12px;
+  background-position: -482px 0px;
+}
+
+.iti-flag.bh {
+  height: 12px;
+  background-position: -504px 0px;
+}
+
+.iti-flag.bi {
+  height: 12px;
+  background-position: -526px 0px;
+}
+
+.iti-flag.bj {
+  height: 14px;
+  background-position: -548px 0px;
+}
+
+.iti-flag.bl {
+  height: 14px;
+  background-position: -570px 0px;
+}
+
+.iti-flag.bm {
+  height: 10px;
+  background-position: -592px 0px;
+}
+
+.iti-flag.bn {
+  height: 10px;
+  background-position: -614px 0px;
+}
+
+.iti-flag.bo {
+  height: 14px;
+  background-position: -636px 0px;
+}
+
+.iti-flag.bq {
+  height: 14px;
+  background-position: -658px 0px;
+}
+
+.iti-flag.br {
+  height: 14px;
+  background-position: -680px 0px;
+}
+
+.iti-flag.bs {
+  height: 10px;
+  background-position: -702px 0px;
+}
+
+.iti-flag.bt {
+  height: 14px;
+  background-position: -724px 0px;
+}
+
+.iti-flag.bv {
+  height: 15px;
+  background-position: -746px 0px;
+}
+
+.iti-flag.bw {
+  height: 14px;
+  background-position: -768px 0px;
+}
+
+.iti-flag.by {
+  height: 10px;
+  background-position: -790px 0px;
+}
+
+.iti-flag.bz {
+  height: 14px;
+  background-position: -812px 0px;
+}
+
+.iti-flag.ca {
+  height: 10px;
+  background-position: -834px 0px;
+}
+
+.iti-flag.cc {
+  height: 10px;
+  background-position: -856px 0px;
+}
+
+.iti-flag.cd {
+  height: 15px;
+  background-position: -878px 0px;
+}
+
+.iti-flag.cf {
+  height: 14px;
+  background-position: -900px 0px;
+}
+
+.iti-flag.cg {
+  height: 14px;
+  background-position: -922px 0px;
+}
+
+.iti-flag.ch {
+  height: 15px;
+  background-position: -944px 0px;
+}
+
+.iti-flag.ci {
+  height: 14px;
+  background-position: -961px 0px;
+}
+
+.iti-flag.ck {
+  height: 10px;
+  background-position: -983px 0px;
+}
+
+.iti-flag.cl {
+  height: 14px;
+  background-position: -1005px 0px;
+}
+
+.iti-flag.cm {
+  height: 14px;
+  background-position: -1027px 0px;
+}
+
+.iti-flag.cn {
+  height: 14px;
+  background-position: -1049px 0px;
+}
+
+.iti-flag.co {
+  height: 14px;
+  background-position: -1071px 0px;
+}
+
+.iti-flag.cp {
+  height: 14px;
+  background-position: -1093px 0px;
+}
+
+.iti-flag.cr {
+  height: 12px;
+  background-position: -1115px 0px;
+}
+
+.iti-flag.cu {
+  height: 10px;
+  background-position: -1137px 0px;
+}
+
+.iti-flag.cv {
+  height: 12px;
+  background-position: -1159px 0px;
+}
+
+.iti-flag.cw {
+  height: 14px;
+  background-position: -1181px 0px;
+}
+
+.iti-flag.cx {
+  height: 10px;
+  background-position: -1203px 0px;
+}
+
+.iti-flag.cy {
+  height: 13px;
+  background-position: -1225px 0px;
+}
+
+.iti-flag.cz {
+  height: 14px;
+  background-position: -1247px 0px;
+}
+
+.iti-flag.de {
+  height: 12px;
+  background-position: -1269px 0px;
+}
+
+.iti-flag.dg {
+  height: 10px;
+  background-position: -1291px 0px;
+}
+
+.iti-flag.dj {
+  height: 14px;
+  background-position: -1313px 0px;
+}
+
+.iti-flag.dk {
+  height: 15px;
+  background-position: -1335px 0px;
+}
+
+.iti-flag.dm {
+  height: 10px;
+  background-position: -1357px 0px;
+}
+
+.iti-flag.do {
+  height: 13px;
+  background-position: -1379px 0px;
+}
+
+.iti-flag.dz {
+  height: 14px;
+  background-position: -1401px 0px;
+}
+
+.iti-flag.ea {
+  height: 14px;
+  background-position: -1423px 0px;
+}
+
+.iti-flag.ec {
+  height: 14px;
+  background-position: -1445px 0px;
+}
+
+.iti-flag.ee {
+  height: 13px;
+  background-position: -1467px 0px;
+}
+
+.iti-flag.eg {
+  height: 14px;
+  background-position: -1489px 0px;
+}
+
+.iti-flag.eh {
+  height: 10px;
+  background-position: -1511px 0px;
+}
+
+.iti-flag.er {
+  height: 10px;
+  background-position: -1533px 0px;
+}
+
+.iti-flag.es {
+  height: 14px;
+  background-position: -1555px 0px;
+}
+
+.iti-flag.et {
+  height: 10px;
+  background-position: -1577px 0px;
+}
+
+.iti-flag.eu {
+  height: 14px;
+  background-position: -1599px 0px;
+}
+
+.iti-flag.fi {
+  height: 12px;
+  background-position: -1621px 0px;
+}
+
+.iti-flag.fj {
+  height: 10px;
+  background-position: -1643px 0px;
+}
+
+.iti-flag.fk {
+  height: 10px;
+  background-position: -1665px 0px;
+}
+
+.iti-flag.fm {
+  height: 11px;
+  background-position: -1687px 0px;
+}
+
+.iti-flag.fo {
+  height: 15px;
+  background-position: -1709px 0px;
+}
+
+.iti-flag.fr {
+  height: 14px;
+  background-position: -1731px 0px;
+}
+
+.iti-flag.ga {
+  height: 15px;
+  background-position: -1753px 0px;
+}
+
+.iti-flag.gb {
+  height: 10px;
+  background-position: -1775px 0px;
+}
+
+.iti-flag.gd {
+  height: 12px;
+  background-position: -1797px 0px;
+}
+
+.iti-flag.ge {
+  height: 14px;
+  background-position: -1819px 0px;
+}
+
+.iti-flag.gf {
+  height: 14px;
+  background-position: -1841px 0px;
+}
+
+.iti-flag.gg {
+  height: 14px;
+  background-position: -1863px 0px;
+}
+
+.iti-flag.gh {
+  height: 14px;
+  background-position: -1885px 0px;
+}
+
+.iti-flag.gi {
+  height: 10px;
+  background-position: -1907px 0px;
+}
+
+.iti-flag.gl {
+  height: 14px;
+  background-position: -1929px 0px;
+}
+
+.iti-flag.gm {
+  height: 14px;
+  background-position: -1951px 0px;
+}
+
+.iti-flag.gn {
+  height: 14px;
+  background-position: -1973px 0px;
+}
+
+.iti-flag.gp {
+  height: 14px;
+  background-position: -1995px 0px;
+}
+
+.iti-flag.gq {
+  height: 14px;
+  background-position: -2017px 0px;
+}
+
+.iti-flag.gr {
+  height: 14px;
+  background-position: -2039px 0px;
+}
+
+.iti-flag.gs {
+  height: 10px;
+  background-position: -2061px 0px;
+}
+
+.iti-flag.gt {
+  height: 13px;
+  background-position: -2083px 0px;
+}
+
+.iti-flag.gu {
+  height: 11px;
+  background-position: -2105px 0px;
+}
+
+.iti-flag.gw {
+  height: 10px;
+  background-position: -2127px 0px;
+}
+
+.iti-flag.gy {
+  height: 12px;
+  background-position: -2149px 0px;
+}
+
+.iti-flag.hk {
+  height: 14px;
+  background-position: -2171px 0px;
+}
+
+.iti-flag.hm {
+  height: 10px;
+  background-position: -2193px 0px;
+}
+
+.iti-flag.hn {
+  height: 10px;
+  background-position: -2215px 0px;
+}
+
+.iti-flag.hr {
+  height: 10px;
+  background-position: -2237px 0px;
+}
+
+.iti-flag.ht {
+  height: 12px;
+  background-position: -2259px 0px;
+}
+
+.iti-flag.hu {
+  height: 10px;
+  background-position: -2281px 0px;
+}
+
+.iti-flag.ic {
+  height: 14px;
+  background-position: -2303px 0px;
+}
+
+.iti-flag.id {
+  height: 14px;
+  background-position: -2325px 0px;
+}
+
+.iti-flag.ie {
+  height: 10px;
+  background-position: -2347px 0px;
+}
+
+.iti-flag.il {
+  height: 15px;
+  background-position: -2369px 0px;
+}
+
+.iti-flag.im {
+  height: 10px;
+  background-position: -2391px 0px;
+}
+
+.iti-flag.in {
+  height: 14px;
+  background-position: -2413px 0px;
+}
+
+.iti-flag.io {
+  height: 10px;
+  background-position: -2435px 0px;
+}
+
+.iti-flag.iq {
+  height: 14px;
+  background-position: -2457px 0px;
+}
+
+.iti-flag.ir {
+  height: 12px;
+  background-position: -2479px 0px;
+}
+
+.iti-flag.is {
+  height: 15px;
+  background-position: -2501px 0px;
+}
+
+.iti-flag.it {
+  height: 14px;
+  background-position: -2523px 0px;
+}
+
+.iti-flag.je {
+  height: 12px;
+  background-position: -2545px 0px;
+}
+
+.iti-flag.jm {
+  height: 10px;
+  background-position: -2567px 0px;
+}
+
+.iti-flag.jo {
+  height: 10px;
+  background-position: -2589px 0px;
+}
+
+.iti-flag.jp {
+  height: 14px;
+  background-position: -2611px 0px;
+}
+
+.iti-flag.ke {
+  height: 14px;
+  background-position: -2633px 0px;
+}
+
+.iti-flag.kg {
+  height: 12px;
+  background-position: -2655px 0px;
+}
+
+.iti-flag.kh {
+  height: 13px;
+  background-position: -2677px 0px;
+}
+
+.iti-flag.ki {
+  height: 10px;
+  background-position: -2699px 0px;
+}
+
+.iti-flag.km {
+  height: 12px;
+  background-position: -2721px 0px;
+}
+
+.iti-flag.kn {
+  height: 14px;
+  background-position: -2743px 0px;
+}
+
+.iti-flag.kp {
+  height: 10px;
+  background-position: -2765px 0px;
+}
+
+.iti-flag.kr {
+  height: 14px;
+  background-position: -2787px 0px;
+}
+
+.iti-flag.kw {
+  height: 10px;
+  background-position: -2809px 0px;
+}
+
+.iti-flag.ky {
+  height: 10px;
+  background-position: -2831px 0px;
+}
+
+.iti-flag.kz {
+  height: 10px;
+  background-position: -2853px 0px;
+}
+
+.iti-flag.la {
+  height: 14px;
+  background-position: -2875px 0px;
+}
+
+.iti-flag.lb {
+  height: 14px;
+  background-position: -2897px 0px;
+}
+
+.iti-flag.lc {
+  height: 10px;
+  background-position: -2919px 0px;
+}
+
+.iti-flag.li {
+  height: 12px;
+  background-position: -2941px 0px;
+}
+
+.iti-flag.lk {
+  height: 10px;
+  background-position: -2963px 0px;
+}
+
+.iti-flag.lr {
+  height: 11px;
+  background-position: -2985px 0px;
+}
+
+.iti-flag.ls {
+  height: 14px;
+  background-position: -3007px 0px;
+}
+
+.iti-flag.lt {
+  height: 12px;
+  background-position: -3029px 0px;
+}
+
+.iti-flag.lu {
+  height: 12px;
+  background-position: -3051px 0px;
+}
+
+.iti-flag.lv {
+  height: 10px;
+  background-position: -3073px 0px;
+}
+
+.iti-flag.ly {
+  height: 10px;
+  background-position: -3095px 0px;
+}
+
+.iti-flag.ma {
+  height: 14px;
+  background-position: -3117px 0px;
+}
+
+.iti-flag.mc {
+  height: 15px;
+  background-position: -3139px 0px;
+}
+
+.iti-flag.md {
+  height: 10px;
+  background-position: -3160px 0px;
+}
+
+.iti-flag.me {
+  height: 10px;
+  background-position: -3182px 0px;
+}
+
+.iti-flag.mf {
+  height: 14px;
+  background-position: -3204px 0px;
+}
+
+.iti-flag.mg {
+  height: 14px;
+  background-position: -3226px 0px;
+}
+
+.iti-flag.mh {
+  height: 11px;
+  background-position: -3248px 0px;
+}
+
+.iti-flag.mk {
+  height: 10px;
+  background-position: -3270px 0px;
+}
+
+.iti-flag.ml {
+  height: 14px;
+  background-position: -3292px 0px;
+}
+
+.iti-flag.mm {
+  height: 14px;
+  background-position: -3314px 0px;
+}
+
+.iti-flag.mn {
+  height: 10px;
+  background-position: -3336px 0px;
+}
+
+.iti-flag.mo {
+  height: 14px;
+  background-position: -3358px 0px;
+}
+
+.iti-flag.mp {
+  height: 10px;
+  background-position: -3380px 0px;
+}
+
+.iti-flag.mq {
+  height: 14px;
+  background-position: -3402px 0px;
+}
+
+.iti-flag.mr {
+  height: 14px;
+  background-position: -3424px 0px;
+}
+
+.iti-flag.ms {
+  height: 10px;
+  background-position: -3446px 0px;
+}
+
+.iti-flag.mt {
+  height: 14px;
+  background-position: -3468px 0px;
+}
+
+.iti-flag.mu {
+  height: 14px;
+  background-position: -3490px 0px;
+}
+
+.iti-flag.mv {
+  height: 14px;
+  background-position: -3512px 0px;
+}
+
+.iti-flag.mw {
+  height: 14px;
+  background-position: -3534px 0px;
+}
+
+.iti-flag.mx {
+  height: 12px;
+  background-position: -3556px 0px;
+}
+
+.iti-flag.my {
+  height: 10px;
+  background-position: -3578px 0px;
+}
+
+.iti-flag.mz {
+  height: 14px;
+  background-position: -3600px 0px;
+}
+
+.iti-flag.na {
+  height: 14px;
+  background-position: -3622px 0px;
+}
+
+.iti-flag.nc {
+  height: 10px;
+  background-position: -3644px 0px;
+}
+
+.iti-flag.ne {
+  height: 15px;
+  background-position: -3666px 0px;
+}
+
+.iti-flag.nf {
+  height: 10px;
+  background-position: -3686px 0px;
+}
+
+.iti-flag.ng {
+  height: 10px;
+  background-position: -3708px 0px;
+}
+
+.iti-flag.ni {
+  height: 12px;
+  background-position: -3730px 0px;
+}
+
+.iti-flag.nl {
+  height: 14px;
+  background-position: -3752px 0px;
+}
+
+.iti-flag.no {
+  height: 15px;
+  background-position: -3774px 0px;
+}
+
+.iti-flag.np {
+  height: 15px;
+  background-position: -3796px 0px;
+}
+
+.iti-flag.nr {
+  height: 10px;
+  background-position: -3811px 0px;
+}
+
+.iti-flag.nu {
+  height: 10px;
+  background-position: -3833px 0px;
+}
+
+.iti-flag.nz {
+  height: 10px;
+  background-position: -3855px 0px;
+}
+
+.iti-flag.om {
+  height: 10px;
+  background-position: -3877px 0px;
+}
+
+.iti-flag.pa {
+  height: 14px;
+  background-position: -3899px 0px;
+}
+
+.iti-flag.pe {
+  height: 14px;
+  background-position: -3921px 0px;
+}
+
+.iti-flag.pf {
+  height: 14px;
+  background-position: -3943px 0px;
+}
+
+.iti-flag.pg {
+  height: 15px;
+  background-position: -3965px 0px;
+}
+
+.iti-flag.ph {
+  height: 10px;
+  background-position: -3987px 0px;
+}
+
+.iti-flag.pk {
+  height: 14px;
+  background-position: -4009px 0px;
+}
+
+.iti-flag.pl {
+  height: 13px;
+  background-position: -4031px 0px;
+}
+
+.iti-flag.pm {
+  height: 14px;
+  background-position: -4053px 0px;
+}
+
+.iti-flag.pn {
+  height: 10px;
+  background-position: -4075px 0px;
+}
+
+.iti-flag.pr {
+  height: 14px;
+  background-position: -4097px 0px;
+}
+
+.iti-flag.ps {
+  height: 10px;
+  background-position: -4119px 0px;
+}
+
+.iti-flag.pt {
+  height: 14px;
+  background-position: -4141px 0px;
+}
+
+.iti-flag.pw {
+  height: 13px;
+  background-position: -4163px 0px;
+}
+
+.iti-flag.py {
+  height: 11px;
+  background-position: -4185px 0px;
+}
+
+.iti-flag.qa {
+  height: 8px;
+  background-position: -4207px 0px;
+}
+
+.iti-flag.re {
+  height: 14px;
+  background-position: -4229px 0px;
+}
+
+.iti-flag.ro {
+  height: 14px;
+  background-position: -4251px 0px;
+}
+
+.iti-flag.rs {
+  height: 14px;
+  background-position: -4273px 0px;
+}
+
+.iti-flag.ru {
+  height: 14px;
+  background-position: -4295px 0px;
+}
+
+.iti-flag.rw {
+  height: 14px;
+  background-position: -4317px 0px;
+}
+
+.iti-flag.sa {
+  height: 14px;
+  background-position: -4339px 0px;
+}
+
+.iti-flag.sb {
+  height: 10px;
+  background-position: -4361px 0px;
+}
+
+.iti-flag.sc {
+  height: 10px;
+  background-position: -4383px 0px;
+}
+
+.iti-flag.sd {
+  height: 10px;
+  background-position: -4405px 0px;
+}
+
+.iti-flag.se {
+  height: 13px;
+  background-position: -4427px 0px;
+}
+
+.iti-flag.sg {
+  height: 14px;
+  background-position: -4449px 0px;
+}
+
+.iti-flag.sh {
+  height: 10px;
+  background-position: -4471px 0px;
+}
+
+.iti-flag.si {
+  height: 10px;
+  background-position: -4493px 0px;
+}
+
+.iti-flag.sj {
+  height: 15px;
+  background-position: -4515px 0px;
+}
+
+.iti-flag.sk {
+  height: 14px;
+  background-position: -4537px 0px;
+}
+
+.iti-flag.sl {
+  height: 14px;
+  background-position: -4559px 0px;
+}
+
+.iti-flag.sm {
+  height: 15px;
+  background-position: -4581px 0px;
+}
+
+.iti-flag.sn {
+  height: 14px;
+  background-position: -4603px 0px;
+}
+
+.iti-flag.so {
+  height: 14px;
+  background-position: -4625px 0px;
+}
+
+.iti-flag.sr {
+  height: 14px;
+  background-position: -4647px 0px;
+}
+
+.iti-flag.ss {
+  height: 10px;
+  background-position: -4669px 0px;
+}
+
+.iti-flag.st {
+  height: 10px;
+  background-position: -4691px 0px;
+}
+
+.iti-flag.sv {
+  height: 12px;
+  background-position: -4713px 0px;
+}
+
+.iti-flag.sx {
+  height: 14px;
+  background-position: -4735px 0px;
+}
+
+.iti-flag.sy {
+  height: 14px;
+  background-position: -4757px 0px;
+}
+
+.iti-flag.sz {
+  height: 14px;
+  background-position: -4779px 0px;
+}
+
+.iti-flag.ta {
+  height: 10px;
+  background-position: -4801px 0px;
+}
+
+.iti-flag.tc {
+  height: 10px;
+  background-position: -4823px 0px;
+}
+
+.iti-flag.td {
+  height: 14px;
+  background-position: -4845px 0px;
+}
+
+.iti-flag.tf {
+  height: 14px;
+  background-position: -4867px 0px;
+}
+
+.iti-flag.tg {
+  height: 13px;
+  background-position: -4889px 0px;
+}
+
+.iti-flag.th {
+  height: 14px;
+  background-position: -4911px 0px;
+}
+
+.iti-flag.tj {
+  height: 10px;
+  background-position: -4933px 0px;
+}
+
+.iti-flag.tk {
+  height: 10px;
+  background-position: -4955px 0px;
+}
+
+.iti-flag.tl {
+  height: 10px;
+  background-position: -4977px 0px;
+}
+
+.iti-flag.tm {
+  height: 14px;
+  background-position: -4999px 0px;
+}
+
+.iti-flag.tn {
+  height: 14px;
+  background-position: -5021px 0px;
+}
+
+.iti-flag.to {
+  height: 10px;
+  background-position: -5043px 0px;
+}
+
+.iti-flag.tr {
+  height: 14px;
+  background-position: -5065px 0px;
+}
+
+.iti-flag.tt {
+  height: 12px;
+  background-position: -5087px 0px;
+}
+
+.iti-flag.tv {
+  height: 10px;
+  background-position: -5109px 0px;
+}
+
+.iti-flag.tw {
+  height: 14px;
+  background-position: -5131px 0px;
+}
+
+.iti-flag.tz {
+  height: 14px;
+  background-position: -5153px 0px;
+}
+
+.iti-flag.ua {
+  height: 14px;
+  background-position: -5175px 0px;
+}
+
+.iti-flag.ug {
+  height: 14px;
+  background-position: -5197px 0px;
+}
+
+.iti-flag.um {
+  height: 11px;
+  background-position: -5219px 0px;
+}
+
+.iti-flag.us {
+  height: 11px;
+  background-position: -5241px 0px;
+}
+
+.iti-flag.uy {
+  height: 14px;
+  background-position: -5263px 0px;
+}
+
+.iti-flag.uz {
+  height: 10px;
+  background-position: -5285px 0px;
+}
+
+.iti-flag.va {
+  height: 15px;
+  background-position: -5307px 0px;
+}
+
+.iti-flag.vc {
+  height: 14px;
+  background-position: -5324px 0px;
+}
+
+.iti-flag.ve {
+  height: 14px;
+  background-position: -5346px 0px;
+}
+
+.iti-flag.vg {
+  height: 10px;
+  background-position: -5368px 0px;
+}
+
+.iti-flag.vi {
+  height: 14px;
+  background-position: -5390px 0px;
+}
+
+.iti-flag.vn {
+  height: 14px;
+  background-position: -5412px 0px;
+}
+
+.iti-flag.vu {
+  height: 12px;
+  background-position: -5434px 0px;
+}
+
+.iti-flag.wf {
+  height: 14px;
+  background-position: -5456px 0px;
+}
+
+.iti-flag.ws {
+  height: 10px;
+  background-position: -5478px 0px;
+}
+
+.iti-flag.xk {
+  height: 15px;
+  background-position: -5500px 0px;
+}
+
+.iti-flag.ye {
+  height: 14px;
+  background-position: -5522px 0px;
+}
+
+.iti-flag.yt {
+  height: 14px;
+  background-position: -5544px 0px;
+}
+
+.iti-flag.za {
+  height: 14px;
+  background-position: -5566px 0px;
+}
+
+.iti-flag.zm {
+  height: 14px;
+  background-position: -5588px 0px;
+}
+
+.iti-flag.zw {
+  height: 10px;
+  background-position: -5610px 0px;
+}
+
+.iti-flag {
+  width: 20px;
+  height: 15px;
+  box-shadow: 0px 0px 1px 0px #888;
+  background-image: url("flags.png");
+  background-repeat: no-repeat;
+  background-color: #DBDBDB;
+  background-position: 20px 0;
+}
+
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  .iti-flag {
+    background-image: url("flags@2x.png");
+  }
+}
+
+.iti-flag.np {
+  background-color: transparent;
+}
diff --git a/src/components/country-list/utils.js b/src/components/country-list/utils.js
new file mode 100644
index 0000000..ef723d2
--- /dev/null
+++ b/src/components/country-list/utils.js
@@ -0,0 +1,443 @@
+(function(){for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},l="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,m=["String","prototype","repeat"],n=0;n<m.length-1;n++){var p=m[n];p in l||(l[p]={});l=l[p]}
+var ba=m[m.length-1],r=l[ba],t=r?r:function(a){var b;if(null==this)throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined");b=this+"";if(0>a||1342177279<a)throw new RangeError("Invalid count value");a|=0;for(var c="";a;)if(a&1&&(c+=b),a>>>=1)b+=b;return c};t!=r&&null!=t&&aa(l,ba,{configurable:!0,writable:!0,value:t});var ca=this;function u(a){return"string"==typeof a}
+function v(a,b){var c=a.split("."),d=ca;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b}function w(a,b){function c(){}c.prototype=b.prototype;a.aa=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.$=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};var x=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(u(a))return u(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function y(a,b){a.sort(b||da)}function da(a,b){return a>b?1:a<b?-1:0};function ea(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};function fa(a,b){this.a=a;this.h=!!b.i;this.b=b.c;this.m=b.type;this.l=!1;switch(this.b){case ga:case ha:case ia:case ja:case ka:case la:case ma:this.l=!0}this.g=b.defaultValue}var ma=1,la=2,ga=3,ha=4,ia=6,ja=16,ka=18;function na(a,b){this.b=a;this.a={};for(var c=0;c<b.length;c++){var d=b[c];this.a[d.a]=d}}function oa(a){a=ea(a.a);y(a,function(a,c){return a.a-c.a});return a};function A(){this.a={};this.g=this.f().a;this.b=this.h=null}A.prototype.has=function(a){return null!=this.a[a.a]};A.prototype.get=function(a,b){return B(this,a.a,b)};A.prototype.set=function(a,b){C(this,a.a,b)};
+function pa(a,b){for(var c=oa(a.f()),d=0;d<c.length;d++){var e=c[d],f=e.a;if(null!=b.a[f]){a.b&&delete a.b[e.a];var g=11==e.b||10==e.b;if(e.h)for(var e=D(b,f),h=0;h<e.length;h++){var k=a,q=f,z=g?e[h].clone():e[h];k.a[q]||(k.a[q]=[]);k.a[q].push(z);k.b&&delete k.b[q]}else e=E(b,f),g?(g=E(a,f))?pa(g,e):C(a,f,e.clone()):C(a,f,e)}}}A.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.a={},a.b&&(a.b={}),pa(a,this));return a};
+function E(a,b){var c=a.a[b];if(null==c)return null;if(a.h){if(!(b in a.b)){var d=a.h,e=a.g[b];if(null!=c)if(e.h){for(var f=[],g=0;g<c.length;g++)f[g]=d.a(e,c[g]);c=f}else c=d.a(e,c);return a.b[b]=c}return a.b[b]}return c}function B(a,b,c){var d=E(a,b);return a.g[b].h?d[c||0]:d}function F(a,b){var c;if(null!=a.a[b])c=B(a,b,void 0);else a:{c=a.g[b];if(void 0===c.g){var d=c.m;if(d===Boolean)c.g=!1;else if(d===Number)c.g=0;else if(d===String)c.g=c.l?"0":"";else{c=new d;break a}}c=c.g}return c}
+function D(a,b){return E(a,b)||[]}function G(a,b){return a.g[b].h?null!=a.a[b]?a.a[b].length:0:null!=a.a[b]?1:0}function C(a,b,c){a.a[b]=c;a.b&&(a.b[b]=c)}function H(a,b){var c=[],d;for(d in b)0!=d&&c.push(new fa(d,b[d]));return new na(a,c)};function I(){}I.prototype.b=function(a){new a.b;throw Error("Unimplemented");};I.prototype.a=function(a,b){if(11==a.b||10==a.b)return b instanceof A?b:this.b(a.m.prototype.f(),b);if(14==a.b){if(u(b)&&qa.test(b)){var c=Number(b);if(0<c)return c}return b}if(!a.l)return b;c=a.m;if(c===String){if("number"==typeof b)return String(b)}else if(c===Number&&u(b)&&("Infinity"===b||"-Infinity"===b||"NaN"===b||qa.test(b)))return Number(b);return b};var qa=/^-?[0-9]+$/;function J(){}w(J,I);J.prototype.b=function(a,b){var c=new a.b;c.h=this;c.a=b;c.b={};return c};function ra(){}w(ra,J);ra.prototype.a=function(a,b){return 8==a.b?!!b:I.prototype.a.apply(this,arguments)};function K(a,b){null!=a&&this.a.apply(this,arguments)}K.prototype.b="";K.prototype.set=function(a){this.b=""+a};K.prototype.a=function(a,b,c){this.b+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.b+=arguments[d];return this};K.prototype.toString=function(){return this.b};/*
+
+ Protocol Buffer 2 Copyright 2008 Google Inc.
+ All other code copyright its respective owners.
+ Copyright (C) 2010 The Libphonenumber Authors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+function L(){A.call(this)}w(L,A);var sa=null;function M(){A.call(this)}w(M,A);var ta=null;function N(){A.call(this)}w(N,A);var ua=null;
+L.prototype.f=function(){var a=sa;a||(sa=a=H(L,{0:{name:"NumberFormat",j:"i18n.phonenumbers.NumberFormat"},1:{name:"pattern",required:!0,c:9,type:String},2:{name:"format",required:!0,c:9,type:String},3:{name:"leading_digits_pattern",i:!0,c:9,type:String},4:{name:"national_prefix_formatting_rule",c:9,type:String},6:{name:"national_prefix_optional_when_formatting",c:8,defaultValue:!1,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",c:9,type:String}}));return a};L.f=L.prototype.f;
+M.prototype.f=function(){var a=ta;a||(ta=a=H(M,{0:{name:"PhoneNumberDesc",j:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",c:9,type:String},9:{name:"possible_length",i:!0,c:5,type:Number},10:{name:"possible_length_local_only",i:!0,c:5,type:Number},6:{name:"example_number",c:9,type:String}}));return a};M.f=M.prototype.f;
+N.prototype.f=function(){var a=ua;a||(ua=a=H(N,{0:{name:"PhoneMetadata",j:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",c:11,type:M},2:{name:"fixed_line",c:11,type:M},3:{name:"mobile",c:11,type:M},4:{name:"toll_free",c:11,type:M},5:{name:"premium_rate",c:11,type:M},6:{name:"shared_cost",c:11,type:M},7:{name:"personal_number",c:11,type:M},8:{name:"voip",c:11,type:M},21:{name:"pager",c:11,type:M},25:{name:"uan",c:11,type:M},27:{name:"emergency",c:11,type:M},28:{name:"voicemail",c:11,type:M},
+24:{name:"no_international_dialling",c:11,type:M},9:{name:"id",required:!0,c:9,type:String},10:{name:"country_code",c:5,type:Number},11:{name:"international_prefix",c:9,type:String},17:{name:"preferred_international_prefix",c:9,type:String},12:{name:"national_prefix",c:9,type:String},13:{name:"preferred_extn_prefix",c:9,type:String},15:{name:"national_prefix_for_parsing",c:9,type:String},16:{name:"national_prefix_transform_rule",c:9,type:String},18:{name:"same_mobile_and_fixed_line_pattern",c:8,defaultValue:!1,
+type:Boolean},19:{name:"number_format",i:!0,c:11,type:L},20:{name:"intl_number_format",i:!0,c:11,type:L},22:{name:"main_country_for_code",c:8,defaultValue:!1,type:Boolean},23:{name:"leading_digits",c:9,type:String},26:{name:"leading_zero_possible",c:8,defaultValue:!1,type:Boolean}}));return a};N.f=N.prototype.f;function O(){A.call(this)}w(O,A);var va=null,wa={w:0,v:1,u:5,s:10,o:20};
+O.prototype.f=function(){var a=va;a||(va=a=H(O,{0:{name:"PhoneNumber",j:"i18n.phonenumbers.PhoneNumber"},1:{name:"country_code",required:!0,c:5,type:Number},2:{name:"national_number",required:!0,c:4,type:Number},3:{name:"extension",c:9,type:String},4:{name:"italian_leading_zero",c:8,type:Boolean},8:{name:"number_of_leading_zeros",c:5,defaultValue:1,type:Number},5:{name:"raw_input",c:9,type:String},6:{name:"country_code_source",c:14,defaultValue:0,type:wa},7:{name:"preferred_domestic_carrier_code",
+c:9,type:String}}));return a};O.ctor=O;O.ctor.f=O.prototype.f;/*
+
+ Copyright (C) 2010 The Libphonenumber Authors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+var P={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".split(" "),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"],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"],800:["001"],808:["001"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],870:["001"],878:["001"],880:["BD"],881:["001"],882:["001"],883:["001"],886:["TW"],888:["001"],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"],979:["001"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},xa={AC:[,[,,"[46]\\d{4}|[01589]\\d{5}",,,,,,,[5,6]],
+[,,"6[2-467]\\d{3}",,,,"62889",,,[5]],[,,"4\\d{4}",,,,"40123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AC",247,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"[01589]\\d{5}",,,,"542011",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,"[16]\\d{5,8}|[37-9]\\d{5}",,,,,,,[6,8,9]],[,,"[78]\\d{5}",,,,"712345",,,[6]],[,,"(?:3\\d|6(?:[0-8]|90\\d{2}))\\d{4}",,,,"312345",,,[6,9]],[,,"180[02]\\d{4}",,,,"18001234",,,[8]],[,,"[19]\\d{5}",,,,"912345",,,[6]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AD",376,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[137-9]|6[0-8]"]],[,"(\\d{4})(\\d{4})","$1 $2",["180","180[02]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["690"]]],,[,,,,,,,,,[-1]],,,[,,"1800\\d{4}",,,,"18000000",,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,"[2-79]\\d{7,8}|800\\d{2,9}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"[2-4679][2-8]\\d{6}",,,,"22345678",,,[8],[7]],[,,"5[024-68]\\d{7}",,,,"501234567",,,[9]],[,,"400\\d{6}|800\\d{2,9}",,,,"800123456"],[,,"900[02]\\d{5}",
+,,,"900234567",,,[9]],[,,"700[05]\\d{5}",,,,"700012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AE",971,"00","0",,,"0",,,,[[,"([2-4679])(\\d{3})(\\d{4})","$1 $2 $3",["[2-4679][2-8]"],"0$1"],[,"(5\\d)(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],[,"([479]00)(\\d)(\\d{5})","$1 $2 $3",["[479]0"],"$1"],[,"([68]00)(\\d{2,9})","$1 $2",["60|8"],"$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"600[25]\\d{5}",,,,"600212345",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,"[2-7]\\d{8}",,,,,,,[9],[7]],[,,"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}",
+,,,"234567890",,,,[7]],[,,"7(?:[014-9]\\d|2[89]|30)\\d{6}",,,,"701234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AF",93,"00","0",,,"0",,,,[[,"([2-7]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AG:[,[,,"[2589]\\d{9}",,,,,,,[10],[7]],[,,"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}",,,,"2684601234",,,,[7]],[,,"268(?:464|7(?:2\\d|3[246]|64|7[0-689]|8[02-68]))\\d{4}",,,,"2684641234",,,,[7]],
+[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"26848[01]\\d{4}",,,,"2684801234",,,,[7]],"AG",1,"011","1",,,"1",,,,,,[,,"26840[69]\\d{4}",,,,"2684061234",,,,[7]],,"268",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AI:[,[,,"[2589]\\d{9}",,,,,,,[10],[7]],[,,"2644(?:6[12]|9[78])\\d{4}",,,,"2644612345",,,,[7]],[,,"264(?:235|476|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}",,,,"2642351234",
+,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"AI",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"264",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AL:[,[,,"[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}",,,,,,,[6,7,8,9],[5]],[,,"(?:2(?:1(?:0[2-9]|[1-9]\\d)|[247]\\d{2}|[35][2-9]\\d|[68](?:0[2-9]|[1-9]\\d)|9(?:[089][2-9]|[1-7]\\d))|3(?:1(?:[04-9][2-9]|[1-3]\\d)|[2-6]\\d{2}|[79](?:[09][2-9]|[1-8]\\d)|8(?:0[2-9]|[1-9]\\d))|4\\d{3}|5(?:1(?:[05-9][2-9]|[1-4]\\d)|[2-578]\\d{2}|6(?:[06-9][2-9]|[1-5]\\d)|9(?:[089][2-9]|[1-7]\\d))|8(?:[19](?:[06-9][2-9]|[1-5]\\d)|[2-6]\\d{2}|[78](?:[089][2-9]|[1-7]\\d)))\\d{4}",
+,,,"22345678",,,[8],[5,6,7]],[,,"6(?:[689][2-9]|7[2-6])\\d{6}",,,,"662123456",,,[9]],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,"900[1-9]\\d{2}",,,,"900123",,,[6]],[,,"808[1-9]\\d{2}",,,,"808123",,,[6]],[,,"700[2-9]\\d{4}",,,,"70021234",,,[8]],[,,,,,,,,,[-1]],"AL",355,"00","0",,,"0",,,,[[,"(4)(\\d{3})(\\d{4})","$1 $2 $3",["4[0-6]"],"0$1"],[,"(6\\d)(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4[7-9]"],"0$1"],[,"(\\d{3})(\\d{3,5})","$1 $2",["[235][16-9]|8[016-9]|[79]"],
+"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AM:[,[,,"[1-9]\\d{7}",,,,,,,[8],[5,6]],[,,"(?:1[0-2]\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2|47\\d)\\d{5}",,,,"10123456",,,,[5,6]],[,,"(?:4[1349]|55|77|9[1-9])\\d{6}",,,,"77123456"],[,,"800\\d{5}",,,,"80012345"],[,,"90[016]\\d{5}",,,,"90012345"],[,,"80[1-4]\\d{5}",,,,"80112345"],[,,,,,,,,,[-1]],[,,"60(?:2[078]|[3-7]\\d|8[0-5])\\d{4}",,,,"60271234"],"AM",374,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",
+["1|47"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["4[1349]|[5-7]|9[1-9]"],"0$1"],[,"(\\d{3})(\\d{5})","$1 $2",["[23]"],"(0$1)"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["8|90"],"0 $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AO:[,[,,"[29]\\d{8}",,,,,,,[9]],[,,"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}",,,,"222123456"],[,,"9[1-49]\\d{7}",,,,"923123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AO",244,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})",
+"$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AR:[,[,,"11\\d{8}|[2368]\\d{9}|9\\d{10}",,,,,,,[10,11],[6,7,8]],[,,"11\\d{8}|(?:2(?:2(?:[013]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|4(?:7[3-8]|9\\d)|6(?:[01346]\\d|2[24-6]|5[15-8])|80\\d|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-46]))|3(?:3(?:2[79]|6\\d|8[2578])|4(?:[78]\\d|0[0124-9]|[1-35]\\d|4[24-7]|6[02-9]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|6[24]\\d|7(?:[0469]\\d|1[1568]|2[013-9]|3[145]|5[14-8]|7[2-57]|8[0-24-9])|8(?:[013578]\\d|2[15-7]|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}",
+,,,"1123456789",,,[10],[6,7,8]],[,,"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})",,,,"91123456789",,,,[6,7,8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"60[04579]\\d{7}",,,,"6001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AR",54,"00","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",,,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],[,"(\\d{2})(\\d{4})","$1-$2",["[2-9]"],"$1"],[,"(\\d{3})(\\d{4})","$1-$2",["[2-9]"],"$1"],[,"(\\d{4})(\\d{4})","$1-$2",["[2-9]"],"$1"],[,"(9)(11)(\\d{4})(\\d{4})","$2 15-$3-$4",["911"],"0$1"],[,"(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9(?:2[234689]|3[3-8])","9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[1-358]|5[138]|6[24]|7[069]|8[013578]))","9(?:2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3[456]|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45])))",
+"9(?:2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3(?:4|5[014]|6[1239])|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45])))"],"0$1"],[,"(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9[23]"],"0$1"],[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[1-358]|5[138]|6[24]|7[069]|8[013578])","2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3[456]|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45]))",
+"2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3(?:4|5[014]|6[1239])|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45]))"],"0$1",,1],[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"],"0$1",,1],[,"(\\d{3})","$1",["1[012]|911"],"$1"]],[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],[,"(9)(11)(\\d{4})(\\d{4})","$1 $2 $3-$4",["911"]],[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[234689]|3[3-8])","9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[1-358]|5[138]|6[24]|7[069]|8[013578]))",
+"9(?:2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3[456]|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45])))","9(?:2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3(?:4|5[014]|6[1239])|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45])))"]],[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9[23]"]],[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",
+,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[1-358]|5[138]|6[24]|7[069]|8[013578])","2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3[456]|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45]))","2(?:2(?:0[013-9]|[13])|3(?:0[013-9]|[67])|49|6(?:[0136]|4[0-59])|8|9(?:[19]|44|7[013-9]|8[14]))|3(?:36|4(?:[12]|3(?:4|5[014]|6[1239])|[58]4)|5(?:1|3[0-24-689]|8[46])|6|7[069]|8(?:[01]|34|[578][45]))"],
+"0$1",,1],[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"],"0$1",,1]],[,,,,,,,,,[-1]],,,[,,"810\\d{7}",,,,"8101234567",,,[10]],[,,"810\\d{7}",,,,"8101234567",,,[10]],,,[,,,,,,,,,[-1]]],AS:[,[,,"[5689]\\d{9}",,,,,,,[10],[7]],[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}",,,,"6846221234",,,,[7]],[,,"684(?:2(?:5[2468]|72)|7(?:3[13]|70))\\d{4}",,,,"6847331234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",
+,,,"5002345678"],[,,,,,,,,,[-1]],"AS",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"684",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AT:[,[,,"[1-9]\\d{3,12}",,,,,,,[4,5,6,7,8,9,10,11,12,13],[3]],[,,"1\\d{3,12}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-8]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|63|7[1368]|8[2457])|5(?:12|2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[1-35-8]|5[468]|62)|7(?:2[1-8]|3[25]|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{3,10}",
+,,,"1234567890",,,,[3]],[,,"6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}",,,,"664123456",,,[7,8,9,10,11,12,13]],[,,"800\\d{6,10}",,,,"800123456",,,[9,10,11,12,13]],[,,"9(?:0[01]|3[019])\\d{6,10}",,,,"900123456",,,[9,10,11,12,13]],[,,"8(?:10\\d|2(?:[01]\\d|8\\d?))\\d{5,9}",,,,"810123456",,,[8,9,10,11,12,13]],[,,,,,,,,,[-1]],[,,"780\\d{6,10}",,,,"780123456",,,[9,10,11,12,13]],"AT",43,"00","0",,,"0",,,,[[,"(116\\d{3})","$1",["116"],"$1"],[,"(1)(\\d{3,12})","$1 $2",["1"],"0$1"],[,"(5\\d)(\\d{3,5})","$1 $2",
+["5[079]"],"0$1"],[,"(5\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["5[079]"],"0$1"],[,"(5\\d)(\\d{4})(\\d{4,7})","$1 $2 $3",["5[079]"],"0$1"],[,"(\\d{3})(\\d{3,10})","$1 $2",["316|46|51|732|6(?:5[0-3579]|[6-9])|7(?:[28]0)|[89]"],"0$1"],[,"(\\d{4})(\\d{3,9})","$1 $2",["2|3(?:1[1-578]|[3-8])|4[2378]|5[2-6]|6(?:[12]|4[1-9]|5[468])|7(?:2[1-8]|35|4[1-8]|[5-79])"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}",,,,"50123",,,[5,6,7,8,9,10,11,12,13]],,,[,,,,
+,,,,,[-1]]],AU:[,[,,"1\\d{4,9}|[2-578]\\d{8}",,,,,,,[5,6,7,8,9,10]],[,,"[237]\\d{8}|8(?:[6-8]\\d{3}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}",,,,"212345678",,,[9],[8]],[,,"14(?:5\\d|71)\\d{5}|4(?:[0-3]\\d|4[47-9]|5[0-25-9]|6[6-9]|7[02-9]|8[147-9]|9[017-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"19(?:0[0126]\\d|[679])\\d{5}",,,,"1900123456",,,[8,10]],[,,"13(?:00\\d{3}|45[0-4]|\\d)\\d{3}",,,,"1300123456",,,[6,8,10]],[,,"500\\d{6}",,,,"500123456",
+,,[9]],[,,"550\\d{6}",,,,"550123456",,,[9]],"AU",61,"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011)|001[14-689]","0",,,"0",,"0011",,[[,"([2378])(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[45]|14"],"0$1"],[,"(16)(\\d{3,4})","$1 $2",["16"],"0$1"],[,"(16)(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],[,"(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[38]0|90)","1(?:[38]00|90)"],"$1"],[,"(180)(2\\d{3})","$1 $2",["180","1802"],"$1"],[,"(19\\d)(\\d{3})","$1 $2",
+["19[13]"],"$1"],[,"(19\\d{2})(\\d{4})","$1 $2",["19[679]"],"$1"],[,"(13)(\\d{2})(\\d{2})","$1 $2 $3",["13[1-9]"],"$1"]],,[,,"16\\d{3,7}",,,,"1612345",,,[5,6,7,8,9]],1,,[,,"1(?:3(?:00\\d{3}|45[0-4]|\\d)\\d{3}|80(?:0\\d{6}|2\\d{3}))",,,,"1300123456",,,[6,7,8,10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AW:[,[,,"[25-9]\\d{6}",,,,,,,[7]],[,,"5(?:2\\d|8[1-9])\\d{4}",,,,"5212345"],[,,"(?:5(?:6\\d|9[2-478])|6(?:[039]0|22|4[01]|6[0-2])|7[34]\\d|9(?:6[45]|9[4-8]))\\d{4}",,,,"5601234"],[,,"800\\d{4}",,,,"8001234"],
+[,,"900\\d{4}",,,,"9001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"28\\d{5}|501\\d{4}",,,,"5011234"],"AW",297,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AX:[,[,,"[15]\\d{6,9}|2\\d{4,9}|3\\d{5,9}|4\\d{7,10}|[67]\\d{7,9}|8\\d{7,8}",,,,,,,[5,6,7,8,9,10,11]],[,,"18[1-8]\\d{4,6}",,,,"181234567",,,[7,8,9]],[,,"4(?:[0-8]\\d{6,8}|9\\d{9})|50\\d{6,8}",,,,"412345678",,,[8,9,10,11]],[,,"800\\d{5,6}",,,,"800123456",,,[8,9]],[,,"[67]00\\d{5,6}",
+,,,"600123456",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AX",358,"00|99(?:[02469]|5(?:11|33|5[59]|88|9[09]))","0",,,"0",,"00",,,,[,,,,,,,,,[-1]],,,[,,"100\\d{4,6}|20(?:0\\d{4,6}|2[023]\\d{4,5}|9[89]\\d{1,6})|300\\d{3,7}|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{5,6})",,,,"1001234",,,[5,6,7,8,9,10]],[,,"10(?:0\\d{4,6}|[1-9]\\d{5,7})|2(?:0(?:0\\d{4,6}|[13-8]\\d{5,7}|2(?:[023]\\d{4,5}|[14-9]\\d{4,6})|9(?:[0-7]\\d{4,6}|[89]\\d{1,6}))|9\\d{6,8})|3(?:0(?:0\\d{3,7}|[1-57-9]\\d{5,7}|6(?:\\d{3}|\\d{5,7}))|93\\d{5,7})|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{5,6})",
+,,,"10112345",,,[5,6,7,8,9,10]],,,[,,,,,,,,,[-1]]],AZ:[,[,,"[1-9]\\d{8}",,,,,,,[9],[7]],[,,"(?:1[28]\\d{3}|2(?:02|1[24]|2[2-4]|33|[45]2|6[23])\\d{2}|365(?:[0-46-9]\\d|5[0-35-9]))\\d{4}",,,,"123123456",,,,[7]],[,,"(?:36554|(?:4[04]|5[015]|60|7[07])\\d{3})\\d{4}",,,,"401234567"],[,,"88\\d{7}",,,,"881234567"],[,,"900200\\d{3}",,,,"900200123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AZ",994,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["(?:1[28]|2(?:[45]2|[0-36])|365)"],
+"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[4-8]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BA:[,[,,"[3-9]\\d{7,8}",,,,,,,[8,9],[6]],[,,"(?:[35]\\d|49)\\d{6}",,,,"30123456",,,[8],[6]],[,,"6(?:0(?:3\\d|40)|[1-356]\\d|44[0-6]|71[137])\\d{5}",,,,"61123456"],[,,"8[08]\\d{6}",,,,"80123456",,,[8]],[,,"9[0246]\\d{6}",,,,"90123456",,,[8]],[,,"8[12]\\d{6}",,,,"82123456",,,[8]],[,,,,,,,,,
+[-1]],[,,,,,,,,,[-1]],"BA",387,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-356]|[7-9]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6[047]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"70[23]\\d{5}",,,,"70223456",,,[8]],,,[,,,,,,,,,[-1]]],BB:[,[,,"[2589]\\d{9}",,,,,,,[10],[7]],[,,"246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7(?:37|57)|9(?:1[89]|63))\\d{4}",
+,,,"2464123456",,,,[7]],[,,"246(?:2(?:[356]\\d|4[0-57-9]|8[0-79])|45\\d|8(?:[2-5]\\d|83))\\d{4}",,,,"2462501234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900\\d{7}|246976\\d{4}",,,,"9002123456",,,,[7]],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"24631\\d{5}",,,,"2463101234",,,,[7]],"BB",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"246",[,,,,,,,,,[-1]],[,,"246(?:292|367|4(?:1[7-9]|3[01]|44|67)|736)\\d{4}",,,,"2464301234",,,,[7]],,,[,,,,,
+,,,,[-1]]],BD:[,[,,"[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}",,,,,,,[6,7,8,9,10]],[,,"2(?:[45]\\d{3}|7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|[139][1-6]|2[0157-9]|41|6[1-35]|7[1-5]|8[1-8]|90)|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0167]|7[15]|8[0146-9]))\\d{4}|3(?:12?[5-7]\\d{2}|0(?:2(?:[025-79]\\d|[348]\\d{1,2})|3(?:[2-4]\\d|[56]\\d?))|2(?:1\\d{2}|2(?:[12]\\d|[35]\\d{1,2}|4\\d?))|3(?:1\\d{2}|2(?:[2356]\\d|4\\d{1,2}))|4(?:1\\d{2}|2(?:2\\d{1,2}|[47]|5\\d{2}))|5(?:1\\d{2}|29)|[67]1\\d{2}|8(?:1\\d{2}|2(?:2\\d{2}|3|4\\d)))\\d{3}|4(?:0(?:2(?:[09]\\d|7)|33\\d{2})|1\\d{3}|2(?:1\\d{2}|2(?:[25]\\d?|[348]\\d|[67]\\d{1,2}))|3(?:1\\d{2}(?:\\d{2})?|2(?:[045]\\d|[236-9]\\d{1,2})|32\\d{2})|4(?:[18]\\d{2}|2(?:[2-46]\\d{2}|3)|5[25]\\d{2})|5(?:1\\d{2}|2(?:3\\d|5))|6(?:[18]\\d{2}|2(?:3(?:\\d{2})?|[46]\\d{1,2}|5\\d{2}|7\\d)|5(?:3\\d?|4\\d|[57]\\d{1,2}|6\\d{2}|8))|71\\d{2}|8(?:[18]\\d{2}|23\\d{2}|54\\d{2})|9(?:[18]\\d{2}|2[2-5]\\d{2}|53\\d{1,2}))\\d{3}|5(?:02[03489]\\d{2}|1\\d{2}|2(?:1\\d{2}|2(?:2(?:\\d{2})?|[457]\\d{2}))|3(?:1\\d{2}|2(?:[37](?:\\d{2})?|[569]\\d{2}))|4(?:1\\d{2}|2[46]\\d{2})|5(?:1\\d{2}|26\\d{1,2})|6(?:[18]\\d{2}|2|53\\d{2})|7(?:1|24)\\d{2}|8(?:1|26)\\d{2}|91\\d{2})\\d{3}|6(?:0(?:1\\d{2}|2(?:3\\d{2}|4\\d{1,2}))|2(?:2[2-5]\\d{2}|5(?:[3-5]\\d{2}|7)|8\\d{2})|3(?:1|2[3478])\\d{2}|4(?:1|2[34])\\d{2}|5(?:1|2[47])\\d{2}|6(?:[18]\\d{2}|6(?:2(?:2\\d|[34]\\d{2})|5(?:[24]\\d{2}|3\\d|5\\d{1,2})))|72[2-5]\\d{2}|8(?:1\\d{2}|2[2-5]\\d{2})|9(?:1\\d{2}|2[2-6]\\d{2}))\\d{3}|7(?:(?:02|[3-589]1|6[12]|72[24])\\d{2}|21\\d{3}|32)\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}",
+,,,"27111234",,,[6,7,8,9]],[,,"(?:1[13-9]\\d|(?:3[78]|44)[02-9]|6(?:44|6[02-9]))\\d{7}",,,,"1812345678",,,[10]],[,,"80[03]\\d{7}",,,,"8001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"96(?:0[49]|1[0-4]|6[69])\\d{6}",,,,"9604123456",,,[10]],"BD",880,"00","0",,,"0",,,,[[,"(2)(\\d{7,8})","$1-$2",["2"],"0$1"],[,"(\\d{2})(\\d{4,6})","$1-$2",["[3-79]1"],"0$1"],[,"(\\d{4})(\\d{3,6})","$1-$2",["1|3(?:0|[2-58]2)|4(?:0|[25]2|3[23]|[4689][25])|5(?:[02-578]2|6[25])|6(?:[0347-9]2|[26][25])|7[02-9]2|8(?:[023][23]|[4-7]2)|9(?:[02][23]|[458]2|6[016])"],
+"0$1"],[,"(\\d{3})(\\d{3,7})","$1-$2",["[3-79][2-9]|8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BE:[,[,,"[1-9]\\d{7,8}",,,,,,,[8,9]],[,,"(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}|80[2-8]\\d{5}",,,,"12345678",,,[8]],[,,"4(?:6[0135-8]|[79]\\d|8[3-9])\\d{6}",,,,"470123456",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"(?:70[2-467]|90[0-79])\\d{5}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BE",32,"00","0",,,
+"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4[6-9]"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[23]|4[23]|9[2-4]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[156]|7[018]|8(?:0[1-9]|[1-79])"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"78\\d{6}",,,,"78123456",,,[8]],,,[,,,,,,,,,[-1]]],BF:[,[,,"[25-7]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:49|5[23]|6[56]|9[016-9])|4(?:4[569]|5[4-6]|6[56]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}",
+,,,"20491234"],[,,"(?:5[1568]\\d|[67]\\d{2})\\d{5}",,,,"70123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BF",226,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BG:[,[,,"[23567]\\d{5,7}|[489]\\d{6,8}",,,,,,,[6,7,8,9],[4,5]],[,,"2\\d{5,7}|(?:[36]\\d|5[1-9]|8[1-6]|9[1-7])\\d{5,6}|(?:4(?:[124-7]\\d|3[1-6])|7(?:0[1-9]|[1-9]\\d))\\d{4,5}",,,,"2123456",,,[6,7,8],[4,5]],[,,"(?:8[7-9]\\d|9(?:8\\d|99))\\d{6}|4(?:3[0789]|8\\d)\\d{5}",
+,,,"48123456",,,[8,9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"90\\d{6}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,"700\\d{5}",,,,"70012345",,,[8]],[,,,,,,,,,[-1]],"BG",359,"00","0",,,"0",,,,[[,"(2)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],[,"(2)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["43[124-7]|70[1-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[124-7]|70[1-9]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[78]00"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})",
+"$1 $2 $3",["999"],"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{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["48|8[7-9]|9[08]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BH:[,[,,"[136-9]\\d{7}",,,,,,,[8]],[,,"(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|7[7-9])|9[69][69])|7(?:1(?:11|78)|7\\d{2}))\\d{4}",,,,"17001234"],[,,"(?:3(?:[1-4679]\\d|5[013-69]|8[0-47-9])\\d|6(?:3(?:00|33|6[16])|6(?:[69]\\d|3[03-9]|7[0-6])))\\d{4}",
+,,,"36001234"],[,,"80\\d{6}",,,,"80123456"],[,,"(?:87|9[014578])\\d{6}",,,,"90123456"],[,,"84\\d{6}",,,,"84123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BH",973,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BI:[,[,,"[267]\\d{7}",,,,,,,[8]],[,,"22\\d{6}",,,,"22201234"],[,,"(?:29|6[189]|7[124-9])\\d{6}",,,,"79561234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BI",257,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
+"$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BJ:[,[,,"[2689]\\d{7}|7\\d{3}",,,,,,,[4,8]],[,,"2(?:02|1[037]|2[45]|3[68])\\d{5}",,,,"20211234",,,[8]],[,,"(?:6[1-8]|9[03-9])\\d{6}",,,,"90011234",,,[8]],[,,"7[3-5]\\d{2}",,,,"7312",,,[4]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"857[58]\\d{4}",,,,"85751234",,,[8]],"BJ",229,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"81\\d{6}",,,,"81123456",
+,,[8]],,,[,,,,,,,,,[-1]]],BL:[,[,,"[56]\\d{8}",,,,,,,[9]],[,,"590(?:2[7-9]|5[12]|87)\\d{4}",,,,"590271234"],[,,"690(?:0[05-9]|[1-9]\\d)\\d{4}",,,,"690001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BL",590,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BM:[,[,,"[4589]\\d{9}",,,,,,,[10],[7]],[,,"441(?:2(?:02|23|61|[3479]\\d)|[46]\\d{2}|5(?:4\\d|60|89)|824)\\d{4}",,,,"4412345678",,,,[7]],[,,"441(?:[37]\\d|5[0-39])\\d{5}",
+,,,"4413701234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"BM",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"441",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BN:[,[,,"[2-578]\\d{6}",,,,,,,[7]],[,,"2(?:[013-9]\\d|2[0-7])\\d{4}|[3-5]\\d{6}",,,,"2345678"],[,,"22[89]\\d{4}|[78]\\d{6}",,,,"7123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,
+,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BN",673,"00",,,,,,,,[[,"([2-578]\\d{2})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BO:[,[,,"[23467]\\d{7}",,,,,,,[8],[7]],[,,"(?:2(?:2\\d{2}|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d{2}|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:2\\d|3[234]|4[248]|5[24]|6[2-6]|7\\d))|4(?:4\\d{2}|6(?:11|[24689]\\d|72)))\\d{4}",,,,"22123456",,,,[7]],[,,"[67]\\d{7}",,,,"71234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BO",591,"00(1\\d)?","0",,,"0(1\\d)?",,,,[[,"([234])(\\d{7})","$1 $2",["[234]"],,"0$CC $1"],[,"([67]\\d{7})","$1",["[67]"],,"0$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BQ:[,[,,"[347]\\d{6}",,,,,,,[7]],[,,"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|50)\\d)\\d{3}",,,,"7151234"],[,,"(?:31(?:8[14-8]|9[14578])|416[145-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}",,,,"3181234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BQ",599,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BR:[,[,,"[1-46-9]\\d{7,10}|5(?:[0-4]\\d{7,9}|5(?:[2-8]\\d{7}|9\\d{7,8}))",,,,,,,[8,9,10,11]],[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}",,,,"1123456789",,,[10],[8]],[,,"(?:[189][1-9]|2[12478])(?:7|9\\d)\\d{7}|(?:3[1-578]|[46][1-9]|5[13-5]|7[13-579])(?:[6-8]|9\\d?)\\d{7}",,,,"11961234567",,,[10,11],[8]],[,,"800\\d{6,7}",,,,"800123456",,,[9,10]],[,,"(?:300|[59]00\\d?)\\d{6}",
+,,,"300123456",,,[9,10]],[,,"(?:300\\d(?:\\d{2})?|40(?:0\\d|20))\\d{4}",,,,"40041234",,,[8,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BR",55,"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","0",,,"0(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2",,,[[,"(\\d{4})(\\d{4})","$1-$2",["(?:300|40[02])","(?:300|40(?:0|20))"]],[,"([3589]00)(\\d{2,3})(\\d{4})","$1 $2 $3",["[3589]00"],"0$1"],[,"(\\d{3,5})","$1",["1[125689]"],"$1"],[,"(\\d{4})(\\d{4})","$1-$2",["[2-9](?:[1-9]|0[1-9])"],"$1"],[,"(\\d{5})(\\d{4})",
+"$1-$2",["9(?:[1-9]|0[1-9])"],"$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["[1-9][1-9]"],"($1)","0 $CC ($1)"],[,"(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[1-9][1-9]9"],"($1)","0 $CC ($1)"]],[[,"(\\d{4})(\\d{4})","$1-$2",["(?:300|40[02])","(?:300|40(?:0|20))"]],[,"([3589]00)(\\d{2,3})(\\d{4})","$1 $2 $3",["[3589]00"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["[1-9][1-9]"],"($1)","0 $CC ($1)"],[,"(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[1-9][1-9]9"],"($1)","0 $CC ($1)"]],[,,,,,,,,,[-1]],,,[,,"(?:300\\d|40(?:0\\d|20))\\d{4}",
+,,,"40041234",,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BS:[,[,,"[2589]\\d{9}",,,,,,,[10],[7]],[,,"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3467]|8[0-4]|9[2-467])|461|502|6(?:0[1-3]|12|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}",,,,"2423456789",,,,[7]],[,,"242(?:3(?:5[79]|[79]5)|4(?:[2-4][1-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|99))\\d{4}",,,,"2423591234",,,,[7]],[,,"242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456",,,,[7]],
+[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"BS",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"242",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BT:[,[,,"[1-8]\\d{6,7}",,,,,,,[7,8],[6]],[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}",,,,"2345678",,,[7],[6]],[,,"(?:1[67]|77)\\d{6}",,,,"17123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BT",975,"00",,,,,,,
+,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1|77"]],[,"([2-8])(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BW:[,[,,"[2-79]\\d{6,7}",,,,,,,[7,8]],[,,"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[01])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}",,,,"2401234",,,[7]],[,,"7(?:[1-6]\\d|7[014-8])\\d{5}",,,,"71123456",,,[8]],[,,,,,,,,,[-1]],[,,"90\\d{5}",
+,,,"9012345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"79[12][01]\\d{4}",,,,"79101234",,,[8]],"BW",267,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-6]"]],[,"(7\\d)(\\d{3})(\\d{3})","$1 $2 $3",["7"]],[,"(90)(\\d{5})","$1 $2",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BY:[,[,,"[1-4]\\d{8}|800\\d{3,7}|[89]\\d{9,10}",,,,,,,[6,7,8,9,10,11],[5]],[,,"(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d{2})|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}",
+,,,"152450911",,,[9],[5,6,7]],[,,"(?:2(?:5[5679]|9[1-9])|33\\d|44\\d)\\d{6}",,,,"294911911",,,[9]],[,,"8(?:0[13]|20\\d)\\d{7}|800\\d{3,7}",,,,"8011234567"],[,,"(?:810|902)\\d{7}",,,,"9021234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"249\\d{6}",,,,"249123456",,,[9]],"BY",375,"810","8",,,"8?0?",,"8~10",,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["17[0-3589]|2[4-9]|[34]","17(?:[02358]|1[0-2]|9[0189])|2[4-9]|[34]"],"8 0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:5[24]|6[235]|7[467])|2(?:1[246]|2[25]|3[26])",
+"1(?:5[24]|6(?:2|3[04-9]|5[0346-9])|7(?:[46]|7[37-9]))|2(?:1[246]|2[25]|3[26])"],"8 0$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"],[,"([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8[01]|9"],"8 $1"],[,"(82\\d)(\\d{4})(\\d{4})","$1 $2 $3",["82"],"8 $1"],[,"(800)(\\d{3})","$1 $2",["800"],"8 $1"],[,"(800)(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"]],,[,,
+,,,,,,,[-1]],,,[,,"8(?:0[13]|10|20\\d)\\d{7}|800\\d{3,7}|902\\d{7}",,,,"82012345678"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BZ:[,[,,"[2-8]\\d{6}|0\\d{10}",,,,,,,[7,11]],[,,"(?:2(?:[02]\\d|36)|[3-58][02]\\d|7(?:[02]\\d|32))\\d{4}",,,,"2221234",,,[7]],[,,"6[0-35-7]\\d{5}",,,,"6221234",,,[7]],[,,"0800\\d{7}",,,,"08001234123",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BZ",501,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],[,"(0)(800)(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]],
+,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CA:[,[,,"[2-9]\\d{9}|3\\d{6}",,,,,,,[7,10]],[,,"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|65)|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:0[04]|13|22|39|47)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}|310\\d{4}",,,,"2042345678",,,[10],[7]],[,,"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|65)|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:0[04]|13|22|39|47)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}",
+,,,"2042345678",,,[10],[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}|310\\d{4}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456",,,[10]],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678",,,[10]],[,,,,,,,,,[-1]],"CA",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CC:[,[,,"[1458]\\d{5,9}",,,,,,,[6,7,9,10],[8]],[,,"89162\\d{4}",,,,"891621234",,,[9],[8]],[,,"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[02-9]|8[147-9]|9[017-9])\\d{6}",
+,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0126]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{2})?\\d{4}",,,,"1300123456",,,[6,10]],[,,"500\\d{6}",,,,"500123456",,,[9]],[,,"550\\d{6}",,,,"550123456",,,[9]],"CC",61,"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,"0",,"0011",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CD:[,[,,"[2-6]\\d{6}|[18]\\d{6,8}|9\\d{8}",,,,,,,[7,9]],[,,"1(?:2\\d{7}|\\d{6})|[2-6]\\d{6}",,,,"1234567"],
+[,,"8(?:[0-2459]\\d{2}|8)\\d{5}|9[017-9]\\d{7}",,,,"991234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CD",243,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["12"],"0$1"],[,"([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8[0-2459]|9"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],[,"(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CF:[,[,,"[278]\\d{7}",,,,,,,[8]],[,,"2[12]\\d{6}",
+,,,"21612345"],[,,"7[0257]\\d{6}",,,,"70012345"],[,,,,,,,,,[-1]],[,,"8776\\d{4}",,,,"87761234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CF",236,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CG:[,[,,"[028]\\d{8}",,,,,,,[9]],[,,"222[1-589]\\d{5}",,,,"222123456"],[,,"0[14-6]\\d{7}",,,,"061234567"],[,,,,,,,,,[-1]],[,,"80(?:0\\d{2}|11[01])\\d{4}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,
+[-1]],"CG",242,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["801"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["800"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CH:[,[,,"[2-9]\\d{8}|860\\d{9}",,,,,,,[9,12]],[,,"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}",,,,"212345678",,,[9]],[,,"7[5-9]\\d{7}",,,,"781234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"90[016]\\d{6}",,,,"900123456",,,[9]],[,
+,"84[0248]\\d{6}",,,,"840123456",,,[9]],[,,"878\\d{6}",,,,"878123456",,,[9]],[,,,,,,,,,[-1]],"CH",41,"00","0",,,"0",,,,[[,"([2-9]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]|[89]1"],"0$1"],[,"([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["860"],"0$1"]],,[,,"74[0248]\\d{6}",,,,"740123456",,,[9]],,,[,,,,,,,,,[-1]],[,,"5[18]\\d{7}",,,,"581234567",,,[9]],,,[,,"860\\d{9}",,,,"860123456789",,,[12]]],CI:[,[,,"[02-8]\\d{7}",
+,,,,,,[8]],[,,"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}",,,,"21234567"],[,,"(?:0[1-9]|4\\d|5[14-9]|6[015-79]|[78][4-9])\\d{6}",,,,"01234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CI",225,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CK:[,[,,"[2-8]\\d{4}",,,,,,,[5]],[,,"(?:2\\d|3[13-7]|4[1-5])\\d{3}",,,,"21234"],[,,"[5-8]\\d{4}",
+,,,"71234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CK",682,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CL:[,[,,"(?:[2-9]|600|123)\\d{7,8}",,,,,,,[9,10,11],[7,8]],[,,"2(?:1962\\d{4}|2\\d{7}|32[0-2467]\\d{5})|(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|9[3-9])\\d{7}",,,,"221234567",,,[9],[7,8]],[,,"2(?:1962\\d{4}|2\\d{7}|32[0-2467]\\d{5})|(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|9[3-9])\\d{7}",
+,,,"961234567",,,[9],[8]],[,,"800\\d{6}|1230\\d{7}",,,,"800123456",,,[9,11]],[,,,,,,,,,[-1]],[,,"600\\d{7,8}",,,,"6001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,"44\\d{7}",,,,"441234567",,,[9]],"CL",56,"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0","0",,,"0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))",,,1,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[23]"],"($1)","$CC ($1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[357]|4[1-35]|6[13-57]"],"($1)","$CC ($1)"],[,"(9)(\\d{4})(\\d{4})","$1 $2 $3",
+["9"],"0$1"],[,"(44)(\\d{3})(\\d{4})","$1 $2 $3",["44"],"0$1"],[,"([68]00)(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"],"$1"],[,"(600)(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"],"$1"],[,"(1230)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"$1"],[,"(\\d{5})(\\d{4})","$1 $2",["219"],"($1)","$CC ($1)"],[,"(\\d{4,5})","$1",["[1-9]"],"$1"]],[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[23]"],"($1)","$CC ($1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[357]|4[1-35]|6[13-57]"],"($1)","$CC ($1)"],[,"(9)(\\d{4})(\\d{4})",
+"$1 $2 $3",["9"],"0$1"],[,"(44)(\\d{3})(\\d{4})","$1 $2 $3",["44"],"0$1"],[,"([68]00)(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"],"$1"],[,"(600)(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"],"$1"],[,"(1230)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"$1"],[,"(\\d{5})(\\d{4})","$1 $2",["219"],"($1)","$CC ($1)"]],[,,,,,,,,,[-1]],,,[,,"600\\d{7,8}",,,,"6001234567",,,[10,11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CM:[,[,,"[2368]\\d{7,8}",,,,,,,[8,9]],[,,"2(?:22|33|4[23])\\d{6}",,,,"222123456",,,[9]],[,,"6[5-9]\\d{7}",
+,,,"671234567",,,[9]],[,,"88\\d{6}",,,,"88012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CM",237,"00",,,,,,,,[[,"([26])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[23]|88"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CN:[,[,,"[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,10}",,,,,,,[7,8,9,10,11,12],[5,6]],[,,"21(?:100\\d{2}|95\\d{3,4}|\\d{8,10})|(?:10|2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[1-35])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:[57]1|98))(?:100\\d{2}|95\\d{3,4}|\\d{8})|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[3-9]|5[2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-4689]|6[2368]|9[02-9])|8(?:078|1[236-8]|2[5-7]|3\\d|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100\\d{2}|95\\d{3,4}|\\d{7})|80(?:29|6[03578]|7[018]|81)\\d{4}",
+,,,"1012345678",,,,[5,6]],[,,"1(?:[38]\\d|4[57]|5[0-35-9]|7[0-35-8])\\d{8}",,,,"13123456789",,,[11]],[,,"(?:10)?800\\d{7}",,,,"8001234567",,,[10,12]],[,,"16[08]\\d{5}",,,,"16812345",,,[8]],[,,"400\\d{7}|950\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[4789]|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[3678]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}",
+,,,"4001234567",,,[7,8,9,10,11],[5,6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CN",86,"(1(?:[129]\\d{3}|79\\d{2}))?00","0",,,"(1(?:[129]\\d{3}|79\\d{2}))|0",,"00",,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]"],"0$1","$CC $1",1],[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00"]],[,"(\\d{5,6})","$1",["100|95"]],[,"(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2\\d)[19]","(?:10|2\\d)(?:10|9[56])","(?:10|2\\d)(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{3})(\\d{5,6})","$1 $2",["[3-9]","[3-9]\\d{2}[19]","[3-9]\\d{2}(?:10|9[56])"],
+"0$1","$CC $1"],[,"(\\d{3,4})(\\d{4})","$1 $2",["[2-9]"]],[,"(21)(\\d{4})(\\d{4,6})","$1 $2 $3",["21"],"0$1","$CC $1",1],[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"],
+"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[1-35])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:[57]1|98)"],"0$1","$CC $1",1],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["807","8078"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-578]"],,"$CC $1"],[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800"]],[,"(\\d{3})(\\d{7,8})","$1 $2",["950"]]],[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]"],"0$1","$CC $1",1],[,"([48]00)(\\d{3})(\\d{4})",
+"$1 $2 $3",["[48]00"]],[,"(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2\\d)[19]","(?:10|2\\d)(?:10|9[56])","(?:10|2\\d)(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{3})(\\d{5,6})","$1 $2",["[3-9]","[3-9]\\d{2}[19]","[3-9]\\d{2}(?:10|9[56])"],"0$1","$CC $1"],[,"(21)(\\d{4})(\\d{4,6})","$1 $2 $3",["21"],"0$1","$CC $1",1],[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"],
+"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[1-35])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:[57]1|98)"],"0$1","$CC $1",1],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["807","8078"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-578]"],,"$CC $1"],[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800"]],[,"(\\d{3})(\\d{7,8})","$1 $2",["950"]]],[,,,,,,,,,[-1]],,,[,,"(?:4|(?:10)?8)00\\d{7}|950\\d{7,8}",,,,"4001234567",
+,,[10,11,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CO:[,[,,"(?:[13]\\d{0,3}|[24-8])\\d{7}",,,,,,,[8,10,11],[7]],[,,"[124-8][2-9]\\d{6}",,,,"12345678",,,[8],[7]],[,,"3(?:0[0-5]|1\\d|2[0-3]|5[01])\\d{7}",,,,"3211234567",,,[10]],[,,"1800\\d{7}",,,,"18001234567",,,[11]],[,,"19(?:0[01]|4[78])\\d{7}",,,,"19001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CO",57,"00(?:4(?:[14]4|56)|[579])","0",,,"0([3579]|4(?:44|56))?",,,,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"],
+"($1)","0$CC $1"],[,"(\\d{3})(\\d{7})","$1 $2",["3"],,"0$CC $1"],[,"(1)(\\d{3})(\\d{7})","$1-$2-$3",["1(?:80|9[04])","1(?:800|9(?:0[01]|4[78]))"],"0$1"]],[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"],"($1)","0$CC $1"],[,"(\\d{3})(\\d{7})","$1 $2",["3"],,"0$CC $1"],[,"(1)(\\d{3})(\\d{7})","$1 $2 $3",["1(?:80|9[04])","1(?:800|9(?:0[01]|4[78]))"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CR:[,[,,"[24-9]\\d{7,9}",,
+,,,,,[8,10]],[,,"2[0-24-7]\\d{6}",,,,"22123456",,,[8]],[,,"5(?:0[01]|7[0-3])\\d{5}|6(?:[0-4]\\d{3}|500[01])\\d{3}|(?:7[0-3]|8[3-9])\\d{6}",,,,"83123456",,,[8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"90[059]\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"210[0-6]\\d{4}|4\\d{7}|5100\\d{4}",,,,"40001234",,,[8]],"CR",506,"00",,,,"(19(?:0[012468]|1[09]|20|66|77|99))",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24-7]|8[3-9]"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"],
+,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CU:[,[,,"[2-57]\\d{5,7}",,,,,,,[6,7,8],[4,5]],[,,"2[1-4]\\d{5,6}|3(?:1\\d{6}|[23]\\d{4,6})|4(?:[125]\\d{5,6}|[36]\\d{6}|[78]\\d{4,6})|7\\d{6,7}",,,,"71234567",,,,[4,5]],[,,"5\\d{7}",,,,"51234567",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CU",53,"119","0",,,"0",,,,[[,"(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],[,"(\\d{2})(\\d{4,6})","$1 $2",["[2-4]"],"(0$1)"],[,"(\\d)(\\d{7})",
+"$1 $2",["5"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CV:[,[,,"[259]\\d{6}",,,,,,,[7]],[,,"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}",,,,"2211234"],[,,"(?:9\\d|59)\\d{5}",,,,"9911234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CV",238,"0",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CW:[,[,,"[169]\\d{6,7}",,,,,,,[7,8]],[,,"9(?:[48]\\d{2}|50\\d|7(?:2[0-24]|[34]\\d|6[35-7]|77|8[7-9]))\\d{4}",
+,,,"94151234",,,[8]],[,,"9(?:5(?:[12467]\\d|3[01])|6(?:[15-9]\\d|3[01]))\\d{4}",,,,"95181234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"60[0-2]\\d{4}",,,,"6001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CW",599,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[13-7]"]],[,"(9)(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],,[,,"955\\d{5}",,,,"95581234",,,[8]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CX:[,[,,"[1458]\\d{5,9}",,,,,,,[6,7,8,9,10]],[,,"89164\\d{4}",,,,"891641234",,,[9],[8]],[,,"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[02-9]|8[147-9]|9[017-9])\\d{6}",
+,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0126]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{2})?\\d{4}",,,,"1300123456",,,[6,8,10]],[,,"500\\d{6}",,,,"500123456",,,[9]],[,,"550\\d{6}",,,,"550123456",,,[9]],"CX",61,"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,"0",,"0011",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CY:[,[,,"[257-9]\\d{7}",,,,,,,[8]],[,,"2[2-6]\\d{6}",,,,"22345678"],[,,"9[4-79]\\d{6}",,,,"96123456"],
+[,,"800\\d{5}",,,,"80001234"],[,,"90[09]\\d{5}",,,,"90012345"],[,,"80[1-9]\\d{5}",,,,"80112345"],[,,"700\\d{5}",,,,"70012345"],[,,,,,,,,,[-1]],"CY",357,"00",,,,,,,,[[,"(\\d{2})(\\d{6})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:50|77)\\d{6}",,,,"77123456"],,,[,,,,,,,,,[-1]]],CZ:[,[,,"[2-8]\\d{8}|9\\d{8,11}",,,,,,,[9,10,11,12]],[,,"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}",,,,"212345678",,,[9]],[,,"(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}",,,,"601123456",,,[9]],[,,"800\\d{6}",,,,"800123456",
+,,[9]],[,,"9(?:0[05689]|76)\\d{6}",,,,"900123456",,,[9]],[,,"8[134]\\d{7}",,,,"811234567",,,[9]],[,,"70[01]\\d{6}",,,,"700123456",,,[9]],[,,"9[17]0\\d{6}",,,,"910123456",,,[9]],"CZ",420,"00",,,,,,,,[[,"([2-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],[,"(96\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["96"]],[,"(9\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9[36]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"9(?:5\\d|7[234])\\d{6}",,,,"972123456",,,[9]],,,[,,"9(?:3\\d{9}|6\\d{7,10})",,,
+,"93123456789"]],DE:[,[,,"[1-35-9]\\d{3,14}|4(?:[0-8]\\d{3,12}|9(?:[0-37]\\d|4(?:[1-35-8]|4\\d?)|5\\d{1,2}|6[1-8]\\d?)\\d{2,8})",,,,,,,[4,5,6,7,8,9,10,11,12,13,14,15],[3]],[,,"2\\d{5,13}|3(?:0\\d{3,13}|2\\d{9}|[3-9]\\d{4,13})|4(?:0\\d{3,12}|\\d{5,13})|5(?:0[2-8]|[1256]\\d|[38][0-8]|4\\d{0,2}|[79][0-7])\\d{3,11}|6(?:\\d{5,13}|9\\d{3,12})|7(?:0[2-8]|[1-9]\\d)\\d{3,10}|8(?:0[2-9]|[1-8]\\d|9\\d?)\\d{3,10}|9(?:0[6-9]\\d{3,10}|1\\d{4,12}|[2-9]\\d{4,11})",,,,"30123456",,,[5,6,7,8,9,10,11,12,13,14,15],[3,
+4]],[,,"1(?:5[0-25-9]\\d{8}|6[023]\\d{7,8}|7\\d{8,9})",,,,"15123456789",,,[10,11]],[,,"800\\d{7,12}",,,,"8001234567890",,,[10,11,12,13,14,15]],[,,"137[7-9]\\d{6}|900(?:[135]\\d{6}|9\\d{7})",,,,"9001234567",,,[10,11]],[,,"1(?:3(?:7[1-6]\\d{6}|8\\d{4})|80\\d{5,11})",,,,"18012345",,,[7,8,9,10,11,12,13,14]],[,,"700\\d{8}",,,,"70012345678",,,[11]],[,,,,,,,,,[-1]],"DE",49,"00","0",,,"0",,,,[[,"(1\\d{2})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],[,"(15\\d{3})(\\d{6})","$1 $2",["15[0568]"],"0$1"],[,"(1\\d{3})(\\d{7})",
+"$1 $2",["15"],"0$1"],[,"(\\d{2})(\\d{3,11})","$1 $2",["3[02]|40|[68]9"],"0$1"],[,"(\\d{3})(\\d{3,11})","$1 $2",["2(?:\\d1|0[2389]|1[24]|28|34)|3(?:[3-9][15]|40)|[4-8][1-9]1|9(?:06|[1-9]1)"],"0$1"],[,"(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])","[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:3(?:0[1-467]|2[127-9]|3[124578]|[46][1246]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|3[1357]|4[13578]|6[1246]|7[1356]|9[1346])|5(?:0[14]|2[1-3589]|3[1357]|4[1246]|6[1-4]|7[1346]|8[13568]|9[1246])|6(?:0[356]|2[1-489]|3[124-6]|4[1347]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|3[1357]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|4[1347]|6[0135-9]|7[1467]|8[136])|9(?:0[12479]|2[1358]|3[1357]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))"],
+"0$1"],[,"(3\\d{4})(\\d{1,10})","$1 $2",["3"],"0$1"],[,"(800)(\\d{7,12})","$1 $2",["800"],"0$1"],[,"(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["(?:18|90)0|137","1(?:37|80)|900[1359]"],"0$1"],[,"(1\\d{2})(\\d{5,11})","$1 $2",["181"],"0$1"],[,"(18\\d{3})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],[,"(18\\d{2})(\\d{7})","$1 $2",["18[68]"],"0$1"],[,"(18\\d)(\\d{8})","$1 $2",["18[2-579]"],"0$1"],[,"(700)(\\d{4})(\\d{4})","$1 $2 $3",["700"],"0$1"],[,"(138)(\\d{4})","$1 $2",["138"],"0$1"],[,"(15[013-68])(\\d{2})(\\d{8})",
+"$1 $2 $3",["15[013-68]"],"0$1"],[,"(15[279]\\d)(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],[,"(1[67]\\d)(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"]],,[,,"16(?:4\\d{1,10}|[89]\\d{1,11})",,,,"16412345",,,[4,5,6,7,8,9,10,11,12,13,14]],,,[,,,,,,,,,[-1]],[,,"18(?:1\\d{5,11}|[2-9]\\d{8})",,,,"18500123456",,,[8,9,10,11,12,13,14]],,,[,,"1(?:5(?:(?:2\\d55|7\\d99|9\\d33)\\d{7}|(?:[034568]00|113)\\d{8})|6(?:013|255|399)\\d{7,8}|7(?:[015]13|[234]55|[69]33|[78]99)\\d{7,8})",,,,"177991234567",
+,,[12,13]]],DJ:[,[,,"[27]\\d{7}",,,,,,,[8]],[,,"2(?:1[2-5]|7[45])\\d{5}",,,,"21360003"],[,,"77\\d{6}",,,,"77831001"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"DJ",253,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DK:[,[,,"[2-9]\\d{7}",,,,,,,[8]],[,,"(?:[2-7]\\d|8[126-9]|9[1-36-9])\\d{6}",,,,"32123456"],[,,"(?:[2-7]\\d|8[126-9]|9[1-36-9])\\d{6}",,,,"20123456"],[,,"80\\d{6}",
+,,,"80123456"],[,,"90\\d{6}",,,,"90123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"DK",45,"00",,,,,,,1,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DM:[,[,,"[57-9]\\d{9}",,,,,,,[10],[7]],[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4]|70[1-3])\\d{4}",,,,"7674201234",,,,[7]],[,,"767(?:2(?:[234689]5|7[5-7])|31[5-7]|61[2-7])\\d{4}",,,,"7672251234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],
+[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"DM",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"767",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DO:[,[,,"[589]\\d{9}",,,,,,,[10],[7]],[,,"8(?:[04]9[2-9]\\d{6}|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d{2}|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9]))\\d{4})",
+,,,"8092345678",,,,[7]],[,,"8[024]9[2-9]\\d{6}",,,,"8092345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"DO",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"8[024]9",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DZ:[,[,,"(?:[1-4]|[5-9]\\d)\\d{7}",,,,,,,[8,9]],[,,"(?:1\\d|2[013-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}",,,,"12345678"],[,,"(?:5[4-6]|7[7-9])\\d{7}|6(?:[569]\\d|7[0-6])\\d{6}",
+,,,"551234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"80[3-689]1\\d{5}",,,,"808123456",,,[9]],[,,"80[12]1\\d{5}",,,,"801123456",,,[9]],[,,,,,,,,,[-1]],[,,"98[23]\\d{6}",,,,"983123456",,,[9]],"DZ",213,"00","0",,,"0",,,,[[,"([1-4]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],[,"([5-8]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"],[,"(9\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],
+EC:[,[,,"1\\d{9,10}|[2-8]\\d{7}|9\\d{8}",,,,,,,[8,9,10,11],[7]],[,,"[2-7][2-7]\\d{6}",,,,"22123456",,,[8],[7]],[,,"9(?:(?:39|[45][89]|7[7-9]|[89]\\d)\\d|6(?:[017-9]\\d|2[0-4]))\\d{5}",,,,"991234567",,,[9]],[,,"1800\\d{6,7}",,,,"18001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"[2-7]890\\d{4}",,,,"28901234",,,[8]],"EC",593,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[247]|[356][2-8]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],[,"(1800)(\\d{3})(\\d{3,4})",
+"$1 $2 $3",["1"],"$1"]],[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[247]|[356][2-8]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"],"$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EE:[,[,,"1\\d{3,4}|[3-9]\\d{6,7}|800\\d{6,7}",,,,,,,[4,5,7,8,10]],[,,"(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}",,,,"3212345",,,[7]],[,,"(?:5\\d|8[1-5])\\d{6}|5(?:[02]\\d{2}|1(?:[0-8]\\d|95)|5[0-478]\\d|64[0-4]|65[1-589])\\d{3}",,,,"51234567",
+,,[7,8]],[,,"800(?:0\\d{3}|1\\d|[2-9])\\d{3}",,,,"80012345",,,[7,8,10]],[,,"(?:40\\d{2}|900)\\d{4}",,,,"9001234",,,[7,8]],[,,,,,,,,,[-1]],[,,"70[0-2]\\d{5}",,,,"70012345",,,[8]],[,,,,,,,,,[-1]],"EE",372,"00",,,,,,,,[[,"([3-79]\\d{2})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]"]],[,"(70)(\\d{2})(\\d{4})","$1 $2 $3",["70"]],[,"(8000)(\\d{3})(\\d{3})","$1 $2 $3",["800","8000"]],[,"([458]\\d{3})(\\d{3,4})",
+"$1 $2",["40|5|8(?:00|[1-5])","40|5|8(?:00[1-9]|[1-5])"]]],,[,,,,,,,,,[-1]],,,[,,"1\\d{3,4}|800[2-9]\\d{3}",,,,"8002123",,,[4,5,7]],[,,"1(?:2[01245]|3[0-6]|4[1-489]|5[0-59]|6[1-46-9]|7[0-27-9]|8[189]|9[012])\\d{1,2}",,,,"12123",,,[4,5]],,,[,,,,,,,,,[-1]]],EG:[,[,,"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}",,,,,,,[5,8,9,10],[7]],[,,"(?:1(?:3[23]\\d|5(?:[23]|9\\d))|2[2-4]\\d{2}|3\\d{2}|4(?:0[2-5]|[578][23]|64)\\d|5(?:0[2-7]|[57][23])\\d|6[24-689]3\\d|8(?:2[2-57]|4[26]|6[237]|8[2-4])\\d|9(?:2[27]|3[24]|52|6[2356]|7[2-4])\\d)\\d{5}|1[69]\\d{3}",
+,,,"234567890",,,[5,8,9],[7]],[,,"1(?:0[0-269]|1[0-245]|2[0-278])\\d{7}",,,,"1001234567",,,[10]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"EG",20,"00","0",,,"0",,,,[[,"(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1[012]|[89]00"],"0$1"],[,"(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|[89][2-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EH:[,[,
+,"[5-9]\\d{8}",,,,,,,[9]],[,,"528[89]\\d{5}",,,,"528812345"],[,,"(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[07][07]|6[12]))\\d{6}",,,,"650123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89\\d{7}",,,,"891234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5924[01]\\d{4}",,,,"592401234"],"EH",212,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,"528[89]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ER:[,[,,"[178]\\d{6}",,,,,,,[7],[6]],[,,"1(?:1[12568]|20|40|55|6[146])\\d{4}|8\\d{6}",,,,"8370362",,,,[6]],[,,"17[1-3]\\d{4}|7\\d{6}",
+,,,"7123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ER",291,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ES:[,[,,"[5-9]\\d{8}",,,,,,,[9]],[,,"8(?:[1356]\\d|[28][0-8]|[47][1-9])\\d{6}|9(?:[135]\\d{7}|[28][0-8]\\d{6}|4[1-9]\\d{6}|6(?:[0-8]\\d{6}|9(?:0(?:[0-57-9]\\d{4}|6(?:0[0-8]|1[1-9]|[2-9]\\d)\\d{2})|[1-9]\\d{5}))|7(?:[124-9]\\d{2}|3(?:[0-8]\\d|9[1-9]))\\d{4})",,,,"810123456"],
+[,,"(?:6\\d{6}|7[1-48]\\d{5}|9(?:6906(?:09|10)|7390\\d{2}))\\d{2}",,,,"612345678"],[,,"[89]00\\d{6}",,,,"800123456"],[,,"80[367]\\d{6}",,,,"803123456"],[,,"90[12]\\d{6}",,,,"901123456"],[,,"70\\d{7}",,,,"701234567"],[,,,,,,,,,[-1]],"ES",34,"00",,,,,,,,[[,"([89]00)(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],[,"([5-9]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[568]|[79][0-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"51\\d{7}",,,,"511234567"],,,[,,,,,,,,,[-1]]],ET:[,[,,"[1-59]\\d{8}",,,,,,,[9],[7]],
+[,,"(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:18|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|22[0-6]|33[0134689]|44[04]|55[0-6]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:11[1-9]|22[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}",
+,,,"111112345",,,,[7]],[,,"9(?:[1-46-8]\\d|5[89])\\d{6}",,,,"911234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ET",251,"00","0",,,"0",,,,[[,"([1-59]\\d)(\\d{3})(\\d{4})","$1 $2 $3",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FI:[,[,,"[16]\\d{6,9}|2\\d{4,9}|[35]\\d{5,9}|4\\d{7,10}|7\\d{7,9}|[89]\\d{6,8}",,,,,,,[5,6,7,8,9,10,11]],[,,"1[3-79][1-8]\\d{4,6}|[235689][1-8]\\d{5,7}",,,,"131234567",,,[7,8,9]],[,,"4(?:[0-8]\\d{6,8}|9\\d{9})|50\\d{4,8}",
+,,,"412345678",,,[6,7,8,9,10,11]],[,,"800\\d{5,6}",,,,"800123456",,,[8,9]],[,,"[67]00\\d{5,6}",,,,"600123456",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FI",358,"00|99(?:[02469]|5(?:11|33|5[59]|88|9[09]))","0",,,"0",,"00",,[[,"(\\d{3})(\\d{3,7})","$1 $2",["(?:[1-3]00|[6-8]0)"],"0$1"],[,"(116\\d{3})","$1",["116"],"$1"],[,"(\\d{2})(\\d{3,9})","$1 $2",["1(?:0[1-9]|[3-9])|2(?:0[1-9]|9)|30[1-9]|4|50|7(?:[13]|5[03-9])"],"0$1"],[,"(75\\d{3})","$1",["75[12]"],"0$1"],[,"(\\d)(\\d{5,9})","$1 $2",
+["[235689][1-8]"],"0$1"],[,"(39\\d)(\\d{3})(\\d{3})","$1 $2 $3",["39"],"0$1"]],[[,"(\\d{3})(\\d{3,7})","$1 $2",["(?:[1-3]00|[6-8]0)"],"0$1"],[,"(116\\d{3})","$1",["116"],"$1"],[,"(\\d{2})(\\d{3,9})","$1 $2",["1(?:0[1-9]|[3-9])|2(?:0[1-9]|9)|30[1-9]|4|50|7(?:[13]|5[03-9])"],"0$1"],[,"(\\d)(\\d{5,9})","$1 $2",["[235689][1-8]"],"0$1"],[,"(39\\d)(\\d{3})(\\d{3})","$1 $2 $3",["39"],"0$1"]],[,,,,,,,,,[-1]],1,,[,,"100\\d{4,6}|20(?:0\\d{4,6}|2[023]\\d{4,5}|9[89]\\d{1,6})|300\\d{3,7}|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{5,6})",
+,,,"1001234",,,[5,6,7,8,9,10]],[,,"10(?:0\\d{4,6}|[1-9]\\d{5,7})|2(?:0(?:0\\d{4,6}|[13-8]\\d{5,7}|2(?:[023]\\d{4,5}|[14-9]\\d{4,6})|9(?:[0-7]\\d{4,6}|[89]\\d{1,6}))|9\\d{6,8})|3(?:0(?:0\\d{3,7}|[1-57-9]\\d{5,7}|6(?:\\d{3}|\\d{5,7}))|93\\d{5,7})|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{5,6})",,,,"10112345",,,[5,6,7,8,9,10]],,,[,,,,,,,,,[-1]]],FJ:[,[,,"[35-9]\\d{6}|0\\d{10}",,,,,,,[7,11]],[,,"(?:3[0-5]|6[25-7]|8[58])\\d{5}",,,,"3212345",,,[7]],[,,"(?:5[018]|[79]\\d|8[034679])\\d{5}",
+,,,"7012345",,,[7]],[,,"0800\\d{7}",,,,"08001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FJ",679,"0(?:0|52)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[35-9]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FK:[,[,,"[2-7]\\d{4}",,,,,,,[5]],[,,"[2-47]\\d{4}",,,,"31234"],[,,"[56]\\d{4}",,,,"51234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FK",500,"00",
+,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FM:[,[,,"[39]\\d{6}",,,,,,,[7]],[,,"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}",,,,"3201234"],[,,"3[2357]0[1-9]\\d{3}|9[2-7]\\d{5}",,,,"3501234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FM",691,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FO:[,[,,"[2-9]\\d{5}",,,,,,,[6]],[,,"(?:20|[3-4]\\d|8[19])\\d{4}",,,,"201234"],[,,"(?:[27][1-9]|5\\d)\\d{4}",
+,,,"211234"],[,,"80[257-9]\\d{3}",,,,"802123"],[,,"90(?:[1345][15-7]|2[125-7]|99)\\d{2}",,,,"901123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:6[0-36]|88)\\d{4}",,,,"601234"],"FO",298,"00",,,,"(10(?:01|[12]0|88))",,,,[[,"(\\d{6})","$1",,,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FR:[,[,,"[1-9]\\d{8}",,,,,,,[9]],[,,"[1-5]\\d{8}",,,,"123456789"],[,,"(?:6\\d|7[3-9])\\d{7}",,,,"612345678"],[,,"80[0-5]\\d{6}",,,,"801234567"],[,,"89[1-37-9]\\d{6}",,,,"891123456"],[,
+,"8(?:1[0-29]|2[0156]|84|90)\\d{6}",,,,"810123456"],[,,,,,,,,,[-1]],[,,"9\\d{8}",,,,"912345678"],"FR",33,"00","0",,,"0",,,,[[,"([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"],[,"(1\\d{2})(\\d{3})","$1 $2",["11"],"$1"],[,"(8\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"]],[[,"([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"],[,"(8\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"80[6-9]\\d{6}",
+,,,"806123456"],,,[,,,,,,,,,[-1]]],GA:[,[,,"0?\\d{7}",,,,,,,[7,8]],[,,"01\\d{6}",,,,"01441234",,,[8]],[,,"0?[2-7]\\d{6}",,,,"06031234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GA",241,"00",,,,,,,,[[,"(\\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"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GB:[,[,,"\\d{7,10}",,,,,,,[7,9,10],[4,5,6,8]],[,,"2(?:0[01378]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{7}|1(?:1(?:3[0-48]|[46][0-4]|5[0-26-9]|[78][0-49])|21[0-7]|31[0-8]|[4-69]1\\d)\\d{6}|1(?: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)|3(?:0\\d|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[28][02-57-9]|[37]\\d|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|2[024-9]|3[015689]|4[02-9]|5[03-9]|6\\d|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0124578])|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]|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|8\\d|9[2-57]))\\d{6}|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[345])))|3(?:638[2-5]|647[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[123]))|5(?:24(?:3[2-79]|6\\d)|276\\d|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[567]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|955[0-4])|7(?:26(?:6[13-9]|7[0-7])|442\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|84(?:3[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}|176888[2-46-8]\\d{2}|16977[23]\\d{3}",
+,,,"1212345678",,,[9,10],[4,5,6,7,8]],[,,"7(?:[1-3]\\d{3}|4(?:[0-46-9]\\d{2}|5(?:[0-689]\\d|7[0-57-9]))|5(?:0[0-8]|[13-9]\\d|2[0-35-9])\\d|7(?:0(?:0[01]|[1-9]\\d)|[1-7]\\d{2}|8[02-9]\\d|9[0-689]\\d)|8(?:[014-9]\\d|[23][0-8])\\d|9(?:[024-9]\\d{2}|1(?:[02-9]\\d|1[028])|3[0-689]\\d))\\d{5}",,,,"7400123456",,,[10]],[,,"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}",,,,"8001234567"],[,,"(?:87[123]|9(?:[01]\\d|8[2349]))\\d{7}",,,,"9012345678",,,[10]],[,,"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})",,,,"8431234567",
+,,[7,10]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,"56\\d{8}",,,,"5612345678",,,[10]],"GB",44,"00","0"," x",,"0",,,,[[,"(7\\d{3})(\\d{6})","$1 $2",["7(?:[1-57-9]|62)","7(?:[1-57-9]|624)"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2|5[56]|7[06]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:1|\\d1)|3|9[018]"],"0$1"],[,"(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:387|5(?:24|39)|697|768|946)","1(?:3873|5(?:242|39[456])|697[347]|768[347]|9467)"],"0$1"],[,"(1\\d{3})(\\d{5,6})",
+"$1 $2",["1"],"0$1"],[,"(800)(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],[,"(845)(46)(4\\d)","$1 $2 $3",["845","8454","84546","845464"],"0$1"],[,"(8\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8(?:4[2-5]|7[0-3])"],"0$1"],[,"(80\\d)(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1"],[,"([58]00)(\\d{6})","$1 $2",["[58]00"],"0$1"]],,[,,"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}",,,,"7640123456",,,[10]],1,,[,,,,,,,,,[-1]],[,,"(?:3[0347]|55)\\d{8}",,,,"5512345678",,,[10]],,,[,
+,,,,,,,,[-1]]],GD:[,[,,"[4589]\\d{9}",,,,,,,[10],[7]],[,,"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|68|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}",,,,"4732691234",,,,[7]],[,,"473(?:4(?:0[2-79]|1[04-9]|20|58)|5(?:2[01]|3[3-8])|901)\\d{4}",,,,"4734031234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"GD",1,"011","1",,,"1",,,,,,[,
+,,,,,,,,[-1]],,"473",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GE:[,[,,"[34578]\\d{8}",,,,,,,[9],[6]],[,,"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}",,,,"322123456",,,,[6]],[,,"5(?:[14]4|5[0157-9]|68|7[0147-9]|9[0-35-9])\\d{6}",,,,"555123456"],[,,"800\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"706\\d{6}",,,,"706123456"],"GE",995,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"],
+[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5"],"$1"]],,[,,,,,,,,,[-1]],,,[,,"706\\d{6}",,,,"706123456"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GF:[,[,,"[56]\\d{8}",,,,,,,[9]],[,,"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}",,,,"594101234"],[,,"694(?:[0249]\\d|1[2-9]|3[0-48])\\d{4}",,,,"694201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GF",594,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
+"$1 $2 $3 $4",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GG:[,[,,"[135789]\\d{6,9}",,,,,,,[7,9,10],[6]],[,,"1481[25-9]\\d{5}",,,,"1481256789",,,[10],[6]],[,,"7(?:781\\d|839\\d|911[17])\\d{5}",,,,"7781123456",,,[10]],[,,"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}",,,,"8001234567"],[,,"(?:87[123]|9(?:[01]\\d|8[0-3]))\\d{7}",,,,"9012345678",,,[10]],[,,"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})",,,,"8431234567",,,[7,10]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,"56\\d{8}",
+,,,"5612345678",,,[10]],"GG",44,"00","0",,,"0",,,,,,[,,"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}",,,,"7640123456",,,[10]],,,[,,,,,,,,,[-1]],[,,"(?:3[0347]|55)\\d{8}",,,,"5512345678",,,[10]],,,[,,,,,,,,,[-1]]],GH:[,[,,"[235]\\d{8}|8\\d{7}",,,,,,,[8,9],[7]],[,,"3(?:0(?:[237]\\d|80)|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}",,,,"302345678",,,[9],[7]],[,,"(?:2[034678]\\d|5(?:[0457]\\d|6[01]))\\d{6}",
+,,,"231234567",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GH",233,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"],[,"(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"800\\d{5}",,,,"80012345",,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GI:[,[,,"[256]\\d{7}",,,,,,,[8]],[,,"2(?:00\\d{2}|1(?:6[24-7]\\d|90[0-2])|2(?:2[2457]\\d|50[0-2]))\\d{3}",,,,"20012345"],[,,"(?:5[46-8]|62)\\d{6}",,,,"57123456"],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GI",350,"00",,,,,,,,[[,"(\\d{3})(\\d{5})","$1 $2",["2"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GL:[,[,,"[1-689]\\d{5}",,,,,,,[6]],[,,"(?:19|3[1-6]|6[14689]|8[14-79]|9\\d)\\d{4}",,,,"321000"],[,,"[245][2-9]\\d{4}",,,,"221234"],[,,"80\\d{4}",,,,"801234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3[89]\\d{4}",,,,"381234"],"GL",299,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3"]],
+,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GM:[,[,,"[2-9]\\d{6}",,,,,,,[7]],[,,"(?:4(?:[23]\\d{2}|4(?:1[024679]|[6-9]\\d))|5(?:54[0-7]|6(?:[67]\\d)|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}",,,,"5661234"],[,,"[23679]\\d{6}",,,,"3012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GM",220,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GN:[,[,,"[367]\\d{7,8}",,,,,,,[8,
+9]],[,,"30(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])\\d{4}",,,,"30241234",,,[8]],[,,"6[02356]\\d{7}",,,,"601123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"722\\d{6}",,,,"722123456",,,[9]],"GN",224,"00",,,,,,,,[[,"(\\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]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GP:[,[,,"[56]\\d{8}",,,,,,,[9]],[,,"590(?:0[13468]|1[012]|2[0-68]|3[28]|4[0-8]|5[579]|6[0189]|70|8[0-689]|9\\d)\\d{4}",
+,,,"590201234"],[,,"690(?:0[05-9]|[1-9]\\d)\\d{4}",,,,"690001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GP",590,"00","0",,,"0",,,,[[,"([56]90)(\\d{2})(\\d{4})","$1 $2-$3",,"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GQ:[,[,,"[23589]\\d{8}",,,,,,,[9]],[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}",,,,"333091234"],[,,"(?:222|55[15])\\d{6}",,,,"222123456"],[,,"80\\d[1-9]\\d{5}",,,,"800123456"],[,,"90\\d[1-9]\\d{5}",
+,,,"900123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GQ",240,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],[,"(\\d{3})(\\d{6})","$1 $2",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GR:[,[,,"[26-9]\\d{9}",,,,,,,[10]],[,,"2(?:1\\d{2}|2(?:2[1-46-9]|3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|3[1245]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}",
+,,,"2123456789"],[,,"69\\d{8}",,,,"6912345678"],[,,"800\\d{7}",,,,"8001234567"],[,,"90[19]\\d{7}",,,,"9091234567"],[,,"8(?:0[16]|12|25)\\d{7}",,,,"8011234567"],[,,"70\\d{8}",,,,"7012345678"],[,,,,,,,,,[-1]],"GR",30,"00",,,,,,,,[[,"([27]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["2[2-9]1|[689]"]],[,"(2\\d{3})(\\d{6})","$1 $2",["2[2-9][02-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GT:[,[,,"[2-7]\\d{7}|1[89]\\d{9}",,,,,,,[8,11]],
+[,,"[267][2-9]\\d{6}",,,,"22456789",,,[8]],[,,"[345]\\d{7}",,,,"51234567",,,[8]],[,,"18[01]\\d{8}",,,,"18001112222",,,[11]],[,,"19\\d{9}",,,,"19001112222",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GT",502,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GU:[,[,,"[5689]\\d{9}",,,,,,,[10],[7]],[,,"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|47|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}",
+,,,"6713001234",,,,[7]],[,,"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|47|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}",,,,"6713001234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"GU",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],
+,"671",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GW:[,[,,"(?:4(?:0\\d{5}|4\\d{7})|9\\d{8})",,,,,,,[7,9]],[,,"443\\d{6}",,,,"443201234",,,[9]],[,,"9(?:5(?:5\\d|6[0-2])|6(?:5[0-2]|6\\d|9[012])|77\\d)\\d{5}",,,,"955012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"40\\d{5}",,,,"4012345",,,[7]],"GW",245,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["44|9[567]"]],[,"(\\d{3})(\\d{4})","$1 $2",["40"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,
+,[,,,,,,,,,[-1]]],GY:[,[,,"[2-46-9]\\d{6}",,,,,,,[7]],[,,"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}",,,,"2201234"],[,,"6\\d{6}",,,,"6091234"],[,,"(?:289|862)\\d{4}",,,,"2891234"],[,,"9008\\d{3}",,,,"9008123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GY",592,"001",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HK:[,[,,"[235-7]\\d{7}|8\\d{7,8}|9\\d{4,10}",,,,,,,[5,
+6,7,8,9,11]],[,,"(?:2(?:[13-8]\\d|2[013-9]|9[0-24-9])|3(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69]|89)|58[01])\\d{5}",,,,"21234567",,,[8]],[,,"(?:5(?:[1-59][0-46-9]|6[0-4689]|7[0-2469])|6(?:0[1-9]|[1459]\\d|[2368][0-57-9]|7[0-79])|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}",,,,"51234567",,,[8]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"900(?:[0-24-9]\\d{7}|3\\d{1,4})",,,,"90012345678",,,[5,6,7,8,11]],[,,,,,,,,,[-1]],[,,"8(?:1[1-4679]|2[0-367]|3[02-47])\\d{5}",,,,"81123456",,,[8]],[,,,,,,,,,[-1]],
+"HK",852,"00(?:[126-9]|30|5[09])?",,,,,,"00",,[[,"(\\d{4})(\\d{4})","$1 $2",["[235-7]|[89](?:0[1-9]|[1-9])"]],[,"(800)(\\d{3})(\\d{3})","$1 $2 $3",["800"]],[,"(900)(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["900"]],[,"(900)(\\d{2,5})","$1 $2",["900"]]],,[,,"7(?:1[0-369]|[23][0-37-9]|47|5[1578]|6[0235]|7[278]|8[236-9]|9[025-9])\\d{5}",,,,"71234567",,,[8]],,,[,,,,,,,,,[-1]],[,,"30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}",,,,"30161234",,,[8]],,,[,,,,,,,,,[-1]]],HN:[,[,,"[237-9]\\d{7}",,,,,,,[8]],[,,"2(?:2(?:0[019]|1[1-36]|[23]\\d|4[04-6]|5[57]|7[01389]|8[0146-9]|9[012])|4(?:07|2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:16|4[03-5]|5\\d|6[4-6]|74)|6(?:[056]\\d|17|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034])|8(?:79|8[0-35789]|9[1-57-9]))\\d{4}",
+,,,"22123456"],[,,"[37-9]\\d{7}",,,,"91234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"HN",504,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1-$2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HR:[,[,,"[1-7]\\d{5,8}|[89]\\d{6,8}",,,,,,,[6,7,8,9]],[,,"1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}",,,,"12345678",,,[8,9],[6,7]],[,,"9(?:01\\d|[1259]\\d{2}|7(?:[0679]\\d|51)|8\\d{1,2})\\d{5}",,,,"921234567",,,[8,9]],[,,"80[01]\\d{4,6}",,,,
+"800123456",,,[7,8,9]],[,,"6(?:[01]\\d{0,2}|[459]\\d{2})\\d{4}",,,,"611234",,,[6,7,8]],[,,,,,,,,,[-1]],[,,"7[45]\\d{6}",,,,"74123456",,,[8]],[,,,,,,,,,[-1]],"HR",385,"00","0",,,"0",,,,[[,"(1)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],[,"([2-5]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-5]"],"0$1"],[,"(9\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],[,"(6[01])(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],[,"([67]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[67]"],"0$1"],[,"(80[01])(\\d{2})(\\d{2,3})","$1 $2 $3",
+["8"],"0$1"],[,"(80[01])(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:62\\d?|72)\\d{6}",,,,"62123456",,,[8,9]],,,[,,,,,,,,,[-1]]],HT:[,[,,"[2-489]\\d{7}",,,,,,,[8]],[,,"2(?:2\\d|5[1-5]|81|9[149])\\d{5}",,,,"22453300"],[,,"[34]\\d{7}",,,,"34101234"],[,,"8\\d{7}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:9(?:[67][0-4]|8[0-3589]|9\\d))\\d{5}",,,,"98901234"],"HT",509,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3"]],,[,,,,,,,,,[-1]],
+,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HU:[,[,,"[1-9]\\d{7,8}",,,,,,,[8,9],[6]],[,,"(?:1\\d|2[2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|7[2-9]|8[2-57-9]|9[2-69])\\d{6}",,,,"12345678",,,[8],[6]],[,,"(?:[257]0|3[01])\\d{7}",,,,"201234567",,,[9]],[,,"[48]0\\d{6}",,,,"80123456",,,[8]],[,,"9[01]\\d{6}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"21\\d{7}",,,,"211234567",,,[9]],"HU",36,"00","06",,,"06",,,,[[,"(1)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"($1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})",
+"$1 $2 $3",["[2-9]"],"($1)"]],,[,,,,,,,,,[-1]],,,[,,"[48]0\\d{6}",,,,"80123456",,,[8]],[,,"38\\d{7}",,,,"381234567",,,[9]],,,[,,,,,,,,,[-1]]],ID:[,[,,"(?:[1-79]\\d{6,10}|8\\d{7,11})",,,,,,,[7,8,9,10,11,12],[5,6]],[,,"2(?:1(?:14\\d{3}|[0-8]\\d{6,7}|500\\d{3}|9\\d{6})|2\\d{6,8}|4\\d{7,8})|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:19?|[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}",
+,,,"612345678",,,[7,8,9,10,11],[5,6]],[,,"(?:2(?:1(?:3[145]|4[01]|5[1-469]|60|8[0359]|9\\d)|2(?:88|9[1256])|3[1-4]9|4(?:36|91)|5(?:1[349]|[2-4]9)|6[0-7]9|7(?:[1-36]9|4[39])|8[1-5]9|9[1-48]9)|3(?:19[1-3]|2[12]9|3[13]9|4(?:1[69]|39)|5[14]9|6(?:1[69]|2[89])|709)|4[13]19|5(?:1(?:19|8[39])|4[129]9|6[12]9)|6(?:19[12]|2(?:[23]9|77))|7(?:1[13]9|2[15]9|419|5(?:1[89]|29)|6[15]9|7[178]9))\\d{5,6}|8[1-35-9]\\d{7,10}",,,,"812345678",,,[9,10,11,12]],[,,"177\\d{6,8}|800\\d{5,7}",,,,"8001234567",,,[8,9,10,11]],[,
+,"809\\d{7}",,,,"8091234567",,,[10]],[,,"804\\d{7}",,,,"8041234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ID",62,"0(?:0[1789]|10(?:00|1[67]))","0",,,"0",,,,[[,"(\\d{2})(\\d{5,8})","$1 $2",["2[124]|[36]1"],"(0$1)"],[,"(\\d{3})(\\d{5,8})","$1 $2",["[4579]|2[035-9]|[36][02-9]"],"(0$1)"],[,"(8\\d{2})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],[,"(8\\d{2})(\\d{4})(\\d{4,5})","$1-$2-$3",["8[1-35-9]"],"0$1"],[,"(1)(500)(\\d{3})","$1 $2 $3",["15"],"$1"],[,"(177)(\\d{6,8})","$1 $2",["17"],"0$1"],
+[,"(800)(\\d{5,7})","$1 $2",["800"],"0$1"],[,"(804)(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],[,"(80\\d)(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80[79]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"8071\\d{6}",,,,"8071123456",,,[10]],[,,"1500\\d{3}|8071\\d{6}",,,,"8071123456",,,[7,10]],,,[,,,,,,,,,[-1]]],IE:[,[,,"[124-9]\\d{6,9}",,,,,,,[7,8,9,10],[5,6]],[,,"1\\d{7,8}|2(?:1\\d{6,7}|3\\d{7}|[24-9]\\d{5})|4(?:0[24]\\d{5}|[1-469]\\d{7}|5\\d{6}|7\\d{5}|8[0-46-9]\\d{7})|5(?:0[45]\\d{5}|1\\d{6}|[23679]\\d{7}|8\\d{5})|6(?:1\\d{6}|[237-9]\\d{5}|[4-6]\\d{7})|7[14]\\d{7}|9(?:1\\d{6}|[04]\\d{7}|[35-9]\\d{5})",
+,,,"2212345",,,,[5,6]],[,,"8(?:22\\d{6}|[35-9]\\d{7})",,,,"850123456",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,"15(?:1[2-8]|[2-8]0|9[089])\\d{6}",,,,"1520123456",,,[10]],[,,"18[59]0\\d{6}",,,,"1850123456",,,[10]],[,,"700\\d{6}",,,,"700123456",,,[9]],[,,"76\\d{7}",,,,"761234567",,,[9]],"IE",353,"00","0",,,"0",,,,[[,"(1)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],[,"(\\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",["40[24]|50[45]"],"(0$1)"],
+[,"(48)(\\d{4})(\\d{4})","$1 $2 $3",["48"],"(0$1)"],[,"(818)(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[24-69]|7[14]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["76|8[35-9]"],"0$1"],[,"(8\\d)(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8[35-9]5"],"0$1"],[,"(700)(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:8[059]|5)","1(?:8[059]0|5)"],"$1"]],,[,,,,,,,,,[-1]],,,[,,"18[59]0\\d{6}",,,,"1850123456",,,[10]],[,,"818\\d{6}",
+,,,"818123456",,,[9]],,,[,,"8[35-9]5\\d{7}",,,,"8551234567",,,[10]]],IL:[,[,,"1\\d{6,11}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}|7\\d{6,9}",,,,,,,[4,7,8,9,10,11,12]],[,,"(?:153\\d{1,2}|[2-489])\\d{7}",,,,"21234567",,,[8,11,12],[7]],[,,"5(?:[0-47-9]\\d{2}|5(?:01|2[23]|3[2-4]|4[45]|5[5689]|6[6-8]|7[0178]|8[6-9]|9[2-9])|6[2-9]\\d)\\d{5}",,,,"501234567",,,[9]],[,,"1(?:80[019]\\d{3}|255)\\d{3}",,,,"1800123456",,,[7,10]],[,,"1(?:212|(?:9(?:0[01]|19)|200)\\d{2})\\d{4}",,,,"1919123456",,,[8,9,10]],[,,"1700\\d{6}",
+,,,"1700123456",,,[10]],[,,,,,,,,,[-1]],[,,"7(?:18\\d|2[23]\\d|3[237]\\d|47\\d|6[58]\\d|7\\d{2}|8(?:2\\d|33|55|77|81)|9[2579]\\d)\\d{5}",,,,"771234567",,,[9]],"IL",972,"0(?:0|1[2-9])","0",,,"0",,,,[[,"([2-489])(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],[,"([57]\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],[,"(153)(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["153"],"$1"],[,"(1)([7-9]\\d{2})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"],"$1"],[,"(1255)(\\d{3})","$1-$2",["125"],"$1"],[,"(1200)(\\d{3})(\\d{3})",
+"$1-$2-$3",["120"],"$1"],[,"(1212)(\\d{2})(\\d{2})","$1-$2-$3",["121"],"$1"],[,"(1599)(\\d{6})","$1-$2",["1599"],"$1"],[,"(151)(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["151"],"$1"],[,"(\\d{4})","*$1",["[2-689]"],"$1"]],,[,,,,,,,,,[-1]],,,[,,"1700\\d{6}|[2-689]\\d{3}",,,,"1700123456",,,[4,10]],[,,"[2-689]\\d{3}|1599\\d{6}",,,,"1599123456",,,[4,10]],,,[,,"151\\d{8,9}",,,,"15112340000",,,[11,12]]],IM:[,[,,"[135789]\\d{6,9}",,,,,,,[10],[6]],[,,"1624[5-8]\\d{5}",,,,"1624756789",,,,[6]],[,,"7(?:4576|[59]24\\d|624[2-4])\\d{5}",
+,,,"7924123456"],[,,"808162\\d{4}",,,,"8081624567"],[,,"(?:872299|90[0167]624)\\d{4}",,,,"9016247890"],[,,"8(?:4(?:40[49]06|5624\\d)|70624\\d)\\d{3}",,,,"8456247890"],[,,"70\\d{8}",,,,"7012345678"],[,,"56\\d{8}",,,,"5612345678"],"IM",44,"00","0",,,"0",,,,,,[,,"7624[01689]\\d{5}",,,,"7624012345"],,,[,,,,,,,,,[-1]],[,,"3(?:08162\\d|3\\d{5}|4(?:40[49]06|5624\\d)|7(?:0624\\d|2299\\d))\\d{3}|55\\d{8}",,,,"5512345678"],,,[,,,,,,,,,[-1]]],IN:[,[,,"008\\d{9}|1\\d{7,12}|[2-9]\\d{9,10}",,,,,,,[8,9,10,11,12,
+13],[6,7]],[,,"(?:11|2[02]|33|4[04]|79)[2-7]\\d{7}|80[2-467]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|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]|[36][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|[57][2-689]|6[24-578]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-7]\\d{5}",
+,,,"1123456789",,,[10],[6,7,8]],[,,"(?:600[1-3]\\d|7(?:0\\d{3}|19[0-5]\\d|2(?:[0235679]\\d{2}|[14][017-9]\\d|8(?:[0-59]\\d|[678][089]))|3(?:[05-8]\\d{2}|1(?:[089]\\d|11|7[5-8])|2(?:[0-49][089]|[5-8]\\d)|3[017-9]\\d|4(?:[07-9]\\d|11)|9(?:[016-9]\\d|[2-5][089]))|4(?:0\\d{2}|1(?:[015-9]\\d|[23][089]|4[089])|2(?:0[089]|[1-7][089]|[89]\\d)|3(?:[0-8][089]|9\\d)|4(?:[089]\\d|11|7[02-8])|[56]\\d[089]|7(?:[089]\\d|11|7[02-8])|8(?:[0-24-7][089]|[389]\\d)|9(?:[0-6][089]|7[089]|[89]\\d))|5(?:[0346-8]\\d{2}|1(?:[07-9]\\d|11)|2(?:[04-9]\\d|[123][089])|5[017-9]\\d|9(?:[0-6][089]|[7-9]\\d))|6(?:0(?:[0-47]\\d|[5689][089])|(?:1[0-257-9]|[6-9]\\d)\\d|2(?:[0-4]\\d|[5-9][089])|3(?:[02-8][089]|[19]\\d)|4\\d[089]|5(?:[0-367][089]|[4589]\\d))|7(?:0(?:0[02-9]|[13-6][089]|[289]\\d|7[89])|[1-9]\\d{2})|8(?:[0-79]\\d{2}|8(?:[089]\\d|11|7[02-9]))|9(?:[089]\\d{2}|313|7(?:[02-8]\\d|9[07-9])))|8(?:0(?:[01589]\\d{2}|6[67]\\d|7(?:[02-8]\\d|9[05-9]))|1(?:[02-57-9]\\d{2}|1(?:[0-35-9]\\d|4[0-46-9])|6(?:[089]\\d|7[02-8]))|2(?:0(?:[089]\\d|7[02])|[14](?:[089]\\d|7[02-8])|[235-9]\\d{2})|3(?:[0357-9]\\d{2}|1(?:[089]\\d|7[02-6])|2(?:[09]\\d|77|8[0-689])|4(?:0[1-7]|[1-9]\\d)|6(?:[089]\\d|7[02-7]))|[45]\\d{3}|6(?:[02457-9]\\d{2}|1(?:[089]\\d|7[02-8])|3(?:[089]\\d|7[02-8])|6(?:[08]\\d|7[02-8]|9\\d))|7(?:0[07-9]\\d|[1-69]\\d{2}|[78](?:[089]\\d|7[02-8]))|8(?:[0-25-9]\\d{2}|3(?:[089]\\d|7[02-8])|4(?:[0489]\\d|7[02-68]))|9(?:[02-9]\\d{2}|1(?:[0289]\\d|7[2-6])))|9\\d{4})\\d{5}",
+,,,"8123456789",,,[10]],[,,"00800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))",,,,"1800123456"],[,,"186[12]\\d{9}",,,,"1861123456789",,,[13]],[,,"1860\\d{7}",,,,"18603451234",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IN",91,"00","0",,,"0",,,,[[,"(\\d{5})(\\d{5})","$1 $2",["600|7(?:[02-8]|19|9[037-9])|8(?:0[015-9]|[1-9])|9","600|7(?:[078]|19[0-5]|2(?:[02356-9]|[14][017-9]|9[389])|3(?:[025-9]|1[017-9]|[34][017-9])|4(?:[0-35689]|[47][017-9])|5(?:[02346-9]|1[017-9]|5[017-9])|6(?:[02-9]|1[0-257-9])|9(?:[089]|31|7[02-9]))|8(?:0(?:[01589]|6[67]|7[02-9])|1(?:[0-57-9]|6[07-9])|2(?:0[07-9]|[14][07-9]|[235-9])|3(?:[03-57-9]|[126][07-9])|[45]|6(?:[02457-9]|[136][07-9])|7(?:[078][07-9]|[1-69])|8(?:[0-25-9]|3[07-9]|4[047-9])|9(?:[02-9]|1[027-9]))|9",
+"600|7(?:0|19[0-5]|2(?:[0235679]|[14][017-9]|8(?:[0-569]|[78][089])|9[389])|3(?:[05-8]|1(?:[0189]|7[5-9])|2(?:[5-8]|[0-49][089])|3[017-9]|4(?:[07-9]|11)|9(?:[01689]|[2345][089]|40|7[0189]))|4(?:[056]|1(?:[0135-9]|[23][089]|2[089]|4[089])|2(?:0[089]|[1-7][089]|[89])|3(?:[0-8][089]|9)|4(?:[089]|11|7[02-8])|7(?:[089]|11|7[02-8])|8(?:[0-24-7][089]|[389])|9(?:[0-7][089]|[89]))|5(?:[0346-9]|1[017-9]|2(?:[03-9]|[12][089])|5[017-9])|6(?:[0346-9]|1[0-257-9]|2(?:[0-4]\\d|[5-9][089])|5(?:[0-367][089]|[4589]))|7(?:0(?:[02-9]|1[089])|[1-9])|8(?:[0-79]|8(?:0[0189]|11|8[013-9]|9))|9(?:[089]|313|7(?:[02-8]|9[07-9])))|8(?:0(?:[01589]|6[67]|7(?:[02-8]|9[05-9]))|1(?:[02-57-9]|1(?:[0-35-9]|4[0-46-9])|6(?:[089]|7[02-8]))|2(?:0(?:[089]|7[02])|[14](?:[089]|7[02-8])|[235-9])|3(?:[0357-9]|1(?:[089]|7[02-6])|2(?:[09]|77|8[0-689])|4(?:0[1-7]|[1-9])|6(?:[089]|7[02-7]))|[45]|6(?:[02457-9]|1(?:[089]|7[02-8])|3(?:[089]|7[02-8])|6(?:[08]|7[02-8]|9\\d))|7(?:0[07-9]|[1-69]|7(?:[089]|7[02-8])|8(?:[089]|7[02-8]))|8(?:[0-25-9]|3(?:[089]|7[02-8])|4(?:[0489]|7[02-68]))|9(?:[02-9]|1(?:[0289]|7[2-6])))|9"],
+"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-9]|80[2-46]"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[59][14]|7[1257]|[68][1-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|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]|[36][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2-4]1|5[17]|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)"],
+"0$1",,1],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[23579]|[468][1-9])|[2-8]"],"0$1",,1],[,"(\\d{2})(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3 $4",["008"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],"$1",,1],[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3",["160","1600"],"$1",,1],[,"(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],"$1",,1],[,"(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["180","1800"],"$1",,1],[,"(\\d{4})(\\d{3,4})(\\d{4})","$1 $2 $3",["186","1860"],"$1",,1],[,"(\\d{4})(\\d{3})(\\d{3})(\\d{3})",
+"$1 $2 $3 $4",["18[06]"],"$1",,1]],,[,,,,,,,,,[-1]],,,[,,"00800\\d{7}|1(?:600\\d{6}|8(?:0(?:0\\d{4,9}|3\\d{9})|6(?:0\\d{7}|[12]\\d{9})))",,,,"1800123456"],[,,"140\\d{7}",,,,"1409305260",,,[10]],,,[,,,,,,,,,[-1]]],IO:[,[,,"3\\d{6}",,,,,,,[7]],[,,"37\\d{5}",,,,"3709100"],[,,"38\\d{5}",,,,"3801234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IO",246,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],
+IQ:[,[,,"[1-7]\\d{7,9}",,,,,,,[8,9,10],[6,7]],[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}",,,,"12345678",,,[8,9],[6,7]],[,,"7[3-9]\\d{8}",,,,"7912345678",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IQ",964,"00","0",,,"0",,,,[[,"(1)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"([2-6]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+,,[,,,,,,,,,[-1]]],IR:[,[,,"[1-8]\\d{5,9}|9(?:[0-4]\\d{8}|9\\d{8})",,,,,,,[6,7,10],[4,5,8]],[,,"(?:(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:\\d{8}|(?:[16]|[289]\\d?)\\d{3}))|94(?:000|11[1-7]|2\\d{2}|440)\\d{5}",,,,"2123456789",,,,[4,5,8]],[,,"9(?:0[1-3]\\d{2}|[1-3]\\d{3}|9(?:0\\d{2}|44\\d|810|9(?:00|11|9[89])))\\d{5}",,,,"9123456789",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:[2-6]0\\d|993)\\d{7}",,,,"9932123456",,,[10]],"IR",98,"00",
+"0",,,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"],[,"(\\d{2})(\\d{4,5})","$1 $2",["[1-8]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"]],,[,,"943\\d{7}",,,,"9432123456",,,[10]],,,[,,"(?:9411[1-7]|94440)\\d{5}",,,,"9411110000",,,[10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IS:[,[,,"[4-9]\\d{6}|38\\d{7}",,,,,,,[7,9]],[,,"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-245]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-79]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|87[23])\\d{4}",
+,,,"4101234",,,[7]],[,,"38[589]\\d{6}|(?:6(?:1[1-8]|2[0-6]|3[027-9]|4[014679]|5[0159]|[67][0-69]|9\\d)|7(?:5[057]|[6-8]\\d)|8(?:2[0-59]|3[0-4]|[469]\\d|5[1-9]|88))\\d{4}",,,,"6111234"],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,"90\\d{5}",,,,"9011234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"49\\d{5}",,,,"4921234",,,[7]],"IS",354,"1(?:0(?:01|10|20)|100)|00",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],[,"(3\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"809\\d{4}",
+,,,"8091234",,,[7]],,,[,,"(?:6(?:2[78]|49|8\\d)|8(?:7[0189]|80)|95[48])\\d{4}",,,,"6271234",,,[7]]],IT:[,[,,"[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})",,,,,,,[6,7,8,9,10,11]],[,,"0(?:[26]\\d{4,9}|(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|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])|7(?:[0159]\\d|2[12]|3[1-7]|4[2346]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[34578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7})",
+,,,"0212345678"],[,,"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})",,,,"3123456789",,,[9,10,11]],[,,"80(?:0\\d{6}|3\\d{3})",,,,"800123456",,,[6,9]],[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|4(?:[0-4]\\d{2}|[5-9]\\d{4})|5(?:[0-4]\\d{2}|[5-9]\\d{6})|9\\d{6})",,,,"899123456",,,[6,8,9,10]],[,,"84(?:[08]\\d{6}|[17]\\d{3})",,,,"848123456",,,[6,9]],[,,"1(?:78\\d|99)\\d{6}",,,,"1781234567",,,[9,10]],[,,"55\\d{8}",,,,"5512345678",,,[10]],"IT",39,"00",,,,,,,,[[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|55"]],
+[,"(0[26])(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],[,"(0[26])(\\d{4,6})","$1 $2",["0[26]"]],[,"(0\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]],[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]],[,"(0\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["0[13-57-9][2-46-8]"]],[,"(0\\d{3})(\\d{2,6})","$1 $2",["0[13-57-9][2-46-8]"]],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[08]|9[59])","[13]|8(?:00|4[08]|9(?:5[5-9]|9))"]],
+[,"(\\d{4})(\\d{4})","$1 $2",["894","894[5-9]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"]]],,[,,,,,,,,,[-1]],1,,[,,"848\\d{6}",,,,"848123456",,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],JE:[,[,,"[135789]\\d{6,9}",,,,,,,[10],[6]],[,,"1534[0-24-8]\\d{5}",,,,"1534456789",,,,[6]],[,,"7(?:509\\d|7(?:00[378]|97[7-9])|829\\d|937\\d)\\d{5}",,,,"7797712345"],[,,"80(?:07(?:35|81)|8901)\\d{4}",,,,"8007354567"],[,,"(?:871206|90(?:066[59]|1810|71(?:07|55)))\\d{4}",,,,"9018105678"],[,,"8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|70002)\\d{4}",
+,,,"8447034567"],[,,"701511\\d{4}",,,,"7015115678"],[,,"56\\d{8}",,,,"5612345678"],"JE",44,"00","0",,,"0",,,,,,[,,"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}",,,,"7640123456"],,,[,,,,,,,,,[-1]],[,,"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}",,,,"5512345678"],,,[,,,,,,,,,[-1]]],JM:[,[,,"[589]\\d{9}",,,,,,,[10],[7]],[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027-9]|[23]\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}",
+,,,"8765123456",,,,[7]],[,,"876(?:2[14-9]\\d|[348]\\d{2}|5(?:0[3-9]|[2-57-9]\\d|6[0-24-9])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}",,,,"8762101234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"JM",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"876",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],JO:[,[,,"[235-9]\\d{7,8}",,,,,,,[8,
+9]],[,,"(?:2(?:6(?:2[0-35-9]|3[0-57-8]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[57][023]|6[03])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2[50]0|3(?:00|33)|4(?:0[0125]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[17-8]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[02-39]))|87(?:[02]0|7[08]|90))\\d{4}",,,,"62001234",,,[8]],[,,"7(?:55|7[025-9]|8[0-25-9]|9[0-25-9])\\d{6}",
+,,,"790123456",,,[9]],[,,"80\\d{6}",,,,"80012345",,,[8]],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,"85\\d{6}",,,,"85012345",,,[8]],[,,"70\\d{7}",,,,"700123456",,,[9]],[,,,,,,,,,[-1]],"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],[,"(7)(\\d{4})(\\d{4})","$1 $2 $3",["7[457-9]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],[,"(\\d{3})(\\d{5,6})","$1 $2",["8[0158]|9"],"0$1"]],,[,,"74(?:66|77)\\d{5}",,,,"746612345",,,[9]],,,[,,,,,,,,,[-1]],[,,"8(?:10|8\\d)\\d{5}",
+,,,"88101234",,,[8]],,,[,,,,,,,,,[-1]]],JP:[,[,,"[1-9]\\d{8,9}|00(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})",,,,,,,[8,9,10,11,12,13,14,15,16,17]],[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}",,,,"312345678",,,[9]],[,,"[7-9]0[1-9]\\d{7}",,,,"9012345678",,,[10]],[,,"120\\d{6}|800\\d{7}|00(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})",
+,,,"120123456"],[,,"990\\d{6}",,,,"990123456",,,[9]],[,,,,,,,,,[-1]],[,,"60\\d{7}",,,,"601234567",,,[9]],[,,"50[1-9]\\d{7}",,,,"5012345678",,,[10]],"JP",81,"010","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],[,"(\\d{4})(\\d{4})","$1-$2",["0077"],"$1"],[,"(\\d{4})(\\d{2})(\\d{3,4})","$1-$2-$3",["0077"],"$1"],[,"(\\d{4})(\\d{2})(\\d{4})","$1-$2-$3",["0088"],"$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1-$2-$3",["00(?:37|66)"],
+"$1"],[,"(\\d{4})(\\d{4})(\\d{4,5})","$1-$2-$3",["00(?:37|66)"],"$1"],[,"(\\d{4})(\\d{5})(\\d{5,6})","$1-$2-$3",["00(?:37|66)"],"$1"],[,"(\\d{4})(\\d{6})(\\d{6,7})","$1-$2-$3",["00(?:37|66)"],"$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]0|80[1-9]"],"0$1"],[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))",
+"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])",
+"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))",
+"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))",
+"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"],
+"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)","1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])","1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"],
+"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["2(?:9[14-79]|74|[34]7|[56]9)|82|993"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["3|4(?:2[09]|7[01])|6[1-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[2479][1-9]"],"0$1"]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]0|80[1-9]"],"0$1"],[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])",
+"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])",
+"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))",
+"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))",
+"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"],
+"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)","1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])","1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"],
+"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["2(?:9[14-79]|74|[34]7|[56]9)|82|993"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["3|4(?:2[09]|7[01])|6[1-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[2479][1-9]"],"0$1"]],[,,"20\\d{8}",,,,"2012345678",,,[10]],,,[,,"00(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})",,,,"00777012"],[,,"570\\d{6}",,,,"570123456",,,[9]],,,[,,,,,,,,,[-1]]],KE:[,[,,"20\\d{6,7}|[4-9]\\d{6,9}",,,,,,,[7,8,9,10]],[,,"20\\d{6,7}|4(?:0\\d{6,7}|[136]\\d{7}|[245]\\d{5,7})|5(?:[08]\\d{7}|[1-79]\\d{5,7})|6(?:[01457-9]\\d{5,7}|2\\d{7}|6\\d{6,7})",
+,,,"202012345",,,[7,8,9]],[,,"7(?:[0-3679]\\d|4[0-4679]|5[0-6]|8[0-25-9])\\d{6}",,,,"712123456",,,[9]],[,,"800[24-8]\\d{5,6}",,,,"800223456",,,[9,10]],[,,"900[02-9]\\d{5}",,,,"900223456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KE",254,"000","0",,,"005|0",,,,[[,"(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KG:[,[,
+,"[235-8]\\d{8,9}",,,,,,,[9,10],[5,6]],[,,"(?:3(?:1(?:[256]\\d|3[1-9]|47)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}",,,,"312123456",,,[9],[5,6]],[,,"(?:20[0-35]|5[0-24-7]\\d|7[07]\\d)\\d{6}",,,,"700123456",,,[9]],[,,"800\\d{6,7}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KG",996,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",
+["[25-7]|31[25]"],"0$1"],[,"(\\d{4})(\\d{5})","$1 $2",["3(?:1[36]|[2-9])"],"0$1"],[,"(\\d{3})(\\d{3})(\\d)(\\d{3})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KH:[,[,,"[1-9]\\d{7,9}",,,,,,,[8,9,10],[6,7]],[,,"(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:[237-9]|4[56]|5\\d|6\\d?)\\d{5}|23(?:4[234]|8\\d{2})\\d{4}",,,,"23756789",,,[8,9],[6,7]],[,,"(?:1(?:[013-79]\\d|[28]\\d{1,2})|2[3-6]48|3(?:[18]\\d{2}|[2-6]48)|4[2-4]48|5[2-5]48|6(?:[016-9]\\d|[2-5]48)|7(?:[07-9]\\d|[16]\\d{2}|[2-5]48)|8(?:[013-79]\\d|8\\d{2})|9(?:6\\d{2}|7\\d{1,2}|[0-589]\\d))\\d{5}",
+,,,"91234567",,,[8,9]],[,,"1800(?:1\\d|2[019])\\d{4}",,,,"1800123456",,,[10]],[,,"1900(?:1\\d|2[09])\\d{4}",,,,"1900123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KH",855,"00[14-9]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["1\\d[1-9]|[2-9]"],"0$1"],[,"(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3",["1[89]0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KI:[,[,,"[2458]\\d{4}|3\\d{4,7}|7\\d{7}",,,,,,,[5,8]],[,,"(?:[24]\\d|3[1-9]|50|8[0-5])\\d{3}|7(?:27|31|5[0-4])\\d{5}",
+,,,"31234"],[,,"7[23]0\\d{5}",,,,"72012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"30(?:0[01]\\d{2}|12(?:11|20))\\d{2}",,,,"30010000",,,[8]],"KI",686,"00",,,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KM:[,[,,"[3478]\\d{6}",,,,,,,[7]],[,,"7[4-7]\\d{5}",,,,"7712345"],[,,"[34]\\d{6}",,,,"3212345"],[,,,,,,,,,[-1]],[,,"(?:39[01]|8\\d{2})\\d{4}",,,,"8001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KM",269,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})",
+"$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KN:[,[,,"[589]\\d{9}",,,,,,,[10],[7]],[,,"869(?:2(?:29|36)|302|4(?:6[015-9]|70))\\d{4}",,,,"8692361234",,,,[7]],[,,"869(?:5(?:5[6-8]|6[5-7])|66\\d|76[02-7])\\d{4}",,,,"8697652917",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"KN",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],
+,"869",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KP:[,[,,"1\\d{9}|[28]\\d{7}",,,,,,,[8,10],[6,7]],[,,"2\\d{7}|85\\d{6}",,,,"21234567",,,[8],[6,7]],[,,"19[123]\\d{7}",,,,"1921234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KP",850,"00|99","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}",
+,,,"23821234",,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KR:[,[,,"007\\d{9,11}|[1-7]\\d{3,9}|8\\d{8}",,,,,,,[4,5,6,8,9,10,12,13,14],[3,7]],[,,"(?:2|3[1-3]|[46][1-4]|5[1-5])(?:1\\d{2,3}|[1-9]\\d{6,7})",,,,"22123456",,,[4,5,6,8,9,10],[3,7]],[,,"1[0-26-9]\\d{7,8}",,,,"1000000000",,,[9,10]],[,,"(?:00798\\d{0,2}|80)\\d{7}",,,,"801234567",,,[9,12,13,14]],[,,"60[2-9]\\d{6}",,,,"602345678",,,[9]],[,,,,,,,,,[-1]],[,,"50\\d{8}",,,,"5012345678",,,[10]],[,,"70\\d{8}",,,,"7012345678",,,[10]],"KR",82,"00(?:[124-68]|3\\d{2}|7(?:[0-8]\\d|9[0-79]))",
+"0",,,"0(8[1-46-8]|85\\d{2})?",,,,[[,"(\\d{5})(\\d{3,4})(\\d{4})","$1 $2 $3",["00798"],"$1","0$CC-$1"],[,"(\\d{5})(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["00798"],"$1","0$CC-$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["1(?:0|1[19]|[69]9|5[458])|[57]0","1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["1(?:[01]|5[1-4]|6[2-8]|[7-9])|[68]0|[3-6][1-9][1-9]","1(?:[01]|5(?:[1-3]|4[56])|6[2-8]|[7-9])|[68]0|[3-6][1-9][1-9]"],"0$1","0$CC-$1"],[,"(\\d{3})(\\d)(\\d{4})",
+"$1-$2-$3",["131","1312"],"0$1","0$CC-$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["131","131[13-9]"],"0$1","0$CC-$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["13[2-9]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3-$4",["30"],"0$1","0$CC-$1"],[,"(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2[1-9]"],"0$1","0$CC-$1"],[,"(\\d)(\\d{3,4})","$1-$2",["21[0-46-9]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})","$1-$2",["[3-6][1-9]1","[3-6][1-9]1(?:[0-46-9])"],"0$1","0$CC-$1"],[,"(\\d{4})(\\d{4})",
+"$1-$2",["1(?:5[246-9]|6[04678]|8[03579])","1(?:5(?:22|44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|33|55|77|99))"],"$1","0$CC-$1"]],[[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["1(?:0|1[19]|[69]9|5[458])|[57]0","1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["1(?:[01]|5[1-4]|6[2-8]|[7-9])|[68]0|[3-6][1-9][1-9]","1(?:[01]|5(?:[1-3]|4[56])|6[2-8]|[7-9])|[68]0|[3-6][1-9][1-9]"],"0$1","0$CC-$1"],[,"(\\d{3})(\\d)(\\d{4})","$1-$2-$3",["131","1312"],"0$1",
+"0$CC-$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["131","131[13-9]"],"0$1","0$CC-$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["13[2-9]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3-$4",["30"],"0$1","0$CC-$1"],[,"(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2[1-9]"],"0$1","0$CC-$1"],[,"(\\d)(\\d{3,4})","$1-$2",["21[0-46-9]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})","$1-$2",["[3-6][1-9]1","[3-6][1-9]1(?:[0-46-9])"],"0$1","0$CC-$1"],[,"(\\d{4})(\\d{4})","$1-$2",["1(?:5[246-9]|6[04678]|8[03579])",
+"1(?:5(?:22|44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|33|55|77|99))"],"$1","0$CC-$1"]],[,,"15\\d{7,8}",,,,"1523456789",,,[9,10]],,,[,,"00798\\d{7,9}",,,,"007981234567",,,[12,13,14]],[,,"1(?:5(?:22|44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|33|55|77|99))\\d{4}",,,,"15441234",,,[8]],,,[,,,,,,,,,[-1]]],KW:[,[,,"[12569]\\d{6,7}",,,,,,,[7,8]],[,,"(?:18\\d|2(?:[23]\\d{2}|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}",,,,"22345678"],[,,"(?:5(?:[05]\\d{2}|1[0-7]\\d|2(?:22|5[25])|6[56]\\d)|6(?:0[034679]\\d|222|5[015-9]\\d|6\\d{2}|7[067]\\d|9[0369]\\d)|9(?:0[09]\\d|22\\d|4[01479]\\d|55\\d|6[0679]\\d|[79]\\d{2}|8[057-9]\\d))\\d{4}",
+,,,"50012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KW",965,"00",,,,,,,,[[,"(\\d{4})(\\d{3,4})","$1 $2",["[16]|2(?:[0-35-9]|4[0-35-9])|9[024-9]|52[25]"]],[,"(\\d{3})(\\d{5})","$1 $2",["244|5(?:[015]|6[56])"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KY:[,[,,"[3589]\\d{9}",,,,,,,[10],[7]],[,,"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\d{4}",,,,"3452221234",,,,[7]],
+[,,"345(?:32[1-9]|5(?:1[67]|2[5-7]|4[6-8]|76)|9(?:1[67]|2[2-9]|3[689]))\\d{4}",,,,"3453231234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}|345976\\d{4}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"KY",1,"011","1",,,"1",,,,,,[,,"345849\\d{4}",,,,"3458491234"],,"345",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KZ:[,[,,"(?:33\\d|7\\d{2}|80[09])\\d{7}",,,,,,,[10]],[,,"33622\\d{5}|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9])|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[234]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[234]\\d|5[139])|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59)))\\d{5}",
+,,,"7123456789"],[,,"7(?:0[012578]|47|6[02-4]|7[15-8]|85)\\d{7}",,,,"7710009998"],[,,"800\\d{7}",,,,"8001234567"],[,,"809\\d{7}",,,,"8091234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"751\\d{7}",,,,"7511234567"],"KZ",7,"810","8",,,"8",,"8~10",,,,[,,,,,,,,,[-1]],,,[,,"751\\d{7}",,,,"7511234567"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LA:[,[,,"[2-8]\\d{7,9}",,,,,,,[8,9,10],[6]],[,,"(?:2[13]|3(?:0\\d|[14])|[5-7][14]|41|8[1468])\\d{6}",,,,"21212862",,,[8,9],[6]],[,,"20(?:2[2389]|5[24-689]|7[6-8]|9[125-9])\\d{6}",
+,,,"2023123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LA",856,"00","0",,,"0",,,,[[,"(20)(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["20"],"0$1"],[,"([2-8]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],[,"(30)(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["30"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LB:[,[,,"[13-9]\\d{6,7}",,,,,,,[7,8]],[,,"(?:[14-6]\\d{2}|7(?:[2-57]\\d|62|8[0-7]|9[04-9])|8[02-9]\\d|9\\d{2})\\d{4}",
+,,,"1123456",,,[7]],[,,"(?:3\\d|7(?:[01]\\d|6[013-9]|8[89]|9[1-3])|81\\d)\\d{5}",,,,"71123456"],[,,,,,,,,,[-1]],[,,"9[01]\\d{6}",,,,"90123456",,,[8]],[,,"80\\d{6}",,,,"80123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LB",961,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-6]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]|9"],"0$1"],[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[013-9]|8[89]|9[1-3])"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LC:[,
+[,,"[5789]\\d{9}",,,,,,,[10],[7]],[,,"758(?:4(?:30|5[0-9]|6[2-9]|8[0-2])|57[0-2]|638)\\d{4}",,,,"7584305678",,,,[7]],[,,"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2[0-8]))\\d{4}",,,,"7582845678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"LC",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"758",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,
+,,,,,,[-1]]],LI:[,[,,"6\\d{8}|[23789]\\d{6}",,,,,,,[7,9]],[,,"(?:2(?:01|1[27]|3\\d|6[02-578]|96)|3(?:7[0135-7]|8[048]|9[0269]))\\d{4}",,,,"2345678",,,[7]],[,,"6(?:5(?:09|1\\d|20)|6(?:0[0-6]|10|2[06-9]|39))\\d{5}|7(?:[37-9]\\d|42|56)\\d{4}",,,,"660234567"],[,,"80(?:02[28]|9\\d{2})\\d{2}",,,,"8002222",,,[7]],[,,"90(?:02[258]|1(?:23|3[14])|66[136])\\d{2}",,,,"9002222",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LI",423,"00","0",,,"0|10(?:01|20|66)",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",
+["[23789]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[56]"]],[,"(69)(7\\d{2})(\\d{4})","$1 $2 $3",["697"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"870(?:28|87)\\d{2}",,,,"8702812",,,[7]],,,[,,"697(?:42|56|[78]\\d)\\d{4}",,,,"697861234",,,[9]]],LK:[,[,,"[1-9]\\d{8}",,,,,,,[9],[7]],[,,"(?:[189]1|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}",,,,"112345678",,,,[7]],[,,"7[0125-8]\\d{7}",,,,"712345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LK",94,"00",
+"0",,,"0",,,,[[,"(\\d{2})(\\d{1})(\\d{6})","$1 $2 $3",["[1-689]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LR:[,[,,"2\\d{7,8}|[378]\\d{8}|4\\d{6}|5\\d{6,8}",,,,,,,[7,8,9]],[,,"(?:2\\d{3}|33333)\\d{4}",,,,"21234567",,,[8,9]],[,,"(?:20\\d{2}|330\\d|4[67]|5(?:55)?\\d|77\\d{2}|88\\d{2})\\d{5}",,,,"770123456",,,[7,9]],[,,,,,,,,,[-1]],[,,"332(?:02|[2-5]\\d)\\d{4}",,,,"332021234",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],"LR",231,"00","0",,,"0",,,,[[,"(2\\d)(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],[,"([4-5])(\\d{3})(\\d{3})","$1 $2 $3",["[45]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23578]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LS:[,[,,"[2568]\\d{7}",,,,,,,[8]],[,,"2\\d{7}",,,,"22123456"],[,,"[56]\\d{7}",,,,"50123456"],[,,"800[256]\\d{4}",,,,"80021234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LS",266,"00",,,,,,,,[[,"(\\d{4})(\\d{4})",
+"$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LT:[,[,,"[3-9]\\d{7}",,,,,,,[8]],[,,"(?:3[1478]|4[124-6]|52)\\d{6}",,,,"31234567"],[,,"6\\d{7}",,,,"61234567"],[,,"800\\d{5}",,,,"80012345"],[,,"9(?:0[0239]|10)\\d{5}",,,,"90012345"],[,,"808\\d{5}",,,,"80812345"],[,,"700\\d{5}",,,,"70012345"],[,,,,,,,,,[-1]],"LT",370,"00","8",,,"[08]",,,,[[,"([34]\\d)(\\d{6})","$1 $2",["37|4(?:1|5[45]|6[2-4])"],"(8-$1)",,1],[,"([3-6]\\d{2})(\\d{5})","$1 $2",["3[148]|4(?:[24]|6[09])|528|6"],
+"(8-$1)",,1],[,"([7-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"8 $1",,1],[,"(5)(2\\d{2})(\\d{4})","$1 $2 $3",["52[0-79]"],"(8-$1)",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"70[67]\\d{5}",,,,"70712345"],,,[,,,,,,,,,[-1]]],LU:[,[,,"[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})",,,,,,,[4,5,6,7,8,9,10,11]],[,,"(?:2[2-9]\\d{2,9}|(?:[3457]\\d{2}|8(?:0[2-9]|[13-9]\\d)|9(?:0[89]|[2-579]\\d))\\d{1,8})",,,,"27123456"],[,,"6[25-79][18]\\d{6}",,,,"628123456",,,[9]],[,,"800\\d{5}",,,,"80012345",
+,,[8]],[,,"90[015]\\d{5}",,,,"90012345",,,[8]],[,,"801\\d{5}",,,,"80112345",,,[8]],[,,"70\\d{6}",,,,"70123456",,,[8]],[,,"20(?:1\\d{5}|[2-689]\\d{1,7})",,,,"20201234",,,[4,5,6,7,8,9,10]],"LU",352,"00",,,,"(15(?:0[06]|1[12]|35|4[04]|55|6[26]|77|88|99)\\d)",,,,[[,"(\\d{2})(\\d{3})","$1 $2",["[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})",
+"$1 $2 $3 $4",["2(?:[0367]|4[3-8])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{1,4})","$1 $2 $3 $4",["2(?:[12589]|4[12])|[3-5]|7[1-9]|8(?:[1-9]|0[2-9])|9(?:[1-9]|0[2-46-9])"],,"$CC $1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["70|80[01]|90[015]"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"],,"$CC $1"]],,[,,,,,,,,,[-1]],
+,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LV:[,[,,"[2689]\\d{7}",,,,,,,[8]],[,,"6\\d{7}",,,,"63123456"],[,,"2\\d{7}",,,,"21234567"],[,,"80\\d{6}",,,,"80123456"],[,,"90\\d{6}",,,,"90123456"],[,,"81\\d{6}",,,,"81123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LV",371,"00",,,,,,,,[[,"([2689]\\d)(\\d{3})(\\d{3})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LY:[,[,,"[25679]\\d{8}",,,,,,,[9],[7]],[,,"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}",,,,"212345678",,,,[7]],
+[,,"9[1-6]\\d{7}",,,,"912345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LY",218,"00","0",,,"0",,,,[[,"([25679]\\d)(\\d{7})","$1-$2",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MA:[,[,,"[5-9]\\d{8}",,,,,,,[9]],[,,"5(?:2(?:[015-79]\\d|2[02-9]|3[2-57]|4[2-8]|8[235-7])\\d|3(?:[0-48]\\d|[57][2-9]|6[2-8]|9[3-9])\\d|4[067]\\d{2}|5[03]\\d{2})\\d{4}",,,,"520123456"],[,,"(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[07][07]|6[12]))\\d{6}",,,
+,"650123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89\\d{7}",,,,"891234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5924[01]\\d{4}",,,,"592401234"],"MA",212,"00","0",,,"0",,,,[[,"([5-7]\\d{2})(\\d{6})","$1-$2",["5(?:2[015-7]|3[0-4])|[67]"],"0$1"],[,"([58]\\d{3})(\\d{5})","$1-$2",["5(?:2[2-489]|3[5-9]|92)|892","5(?:2(?:[2-48]|9[0-7])|3(?:[5-79]|8[0-7])|924)|892"],"0$1"],[,"(5\\d{4})(\\d{4})","$1-$2",["5(?:29|38)","5(?:29|38)[89]"],"0$1"],[,"([5]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:4[067]|5[03])"],
+"0$1"],[,"(8[09])(\\d{7})","$1-$2",["8(?:0|9[013-9])"],"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MC:[,[,,"[34689]\\d{7,8}",,,,,,,[8,9]],[,,"870\\d{5}|9[2-47-9]\\d{6}",,,,"99123456",,,[8]],[,,"3\\d{7}|4(?:4\\d|5[1-9])\\d{5}|6\\d{8}",,,,"612345678"],[,,"90\\d{6}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MC",377,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[39]"],"$1"],[,"(\\d{2})(\\d{3})(\\d{3})",
+"$1 $2 $3",["4"],"0$1"],[,"(6)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["8"],"$1"]],,[,,,,,,,,,[-1]],,,[,,"870\\d{5}",,,,"87012345",,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MD:[,[,,"[235-9]\\d{7}",,,,,,,[8]],[,,"(?:2[1-9]\\d|3[1-79]\\d|5(?:33|5[257]))\\d{5}",,,,"22212345"],[,,"(?:562|6\\d{2}|7(?:[189]\\d|6[07]|7[457-9]))\\d{5}",,,,"62112345"],[,,"800\\d{5}",,,,"80012345"],[,,"90[056]\\d{5}",,,,"90012345"],[,,"808\\d{5}",,,,"80812345"],
+[,,,,,,,,,[-1]],[,,"3[08]\\d{6}",,,,"30123456"],"MD",373,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],[,"([25-7]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["2[13-9]|[5-7]"],"0$1"],[,"([89]\\d{2})(\\d{5})","$1 $2",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"803\\d{5}",,,,"80312345"],,,[,,,,,,,,,[-1]]],ME:[,[,,"[2-9]\\d{7,8}",,,,,,,[8],[6]],[,,"(?:20[2-8]|3(?:0[2-7]|[12][235-7]|3[24-7])|4(?:0[2-467]|1[267])|5(?:0[2467]|1[267]|2[2367]))\\d{5}",,,,"30234567",,,,[6]],
+[,,"6(?:00\\d|3[024]\\d|6[0-25]\\d|[7-9]\\d{2})\\d{4}",,,,"67622901"],[,,"80[0-258]\\d{5}",,,,"80080002"],[,,"(?:9(?:4[1568]|5[178]))\\d{5}",,,,"94515151"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"78[1-49]\\d{5}",,,,"78108780"],"ME",382,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]|6[036-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"77[1-9]\\d{5}",,,,"77273012"],,,[,,,,,,,,,[-1]]],MF:[,[,,"[56]\\d{8}",,,,,,,[9]],[,,"590(?:[02][79]|13|5[0-268]|[78]7)\\d{4}",,,,"590271234"],
+[,,"690(?:0[05-9]|[1-9]\\d)\\d{4}",,,,"690001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MF",590,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MG:[,[,,"[23]\\d{8}",,,,,,,[9],[7]],[,,"20(?:2\\d{2}|4[47]\\d|5[3467]\\d|6[279]\\d|7(?:2[29]|[35]\\d)|8[268]\\d|9[245]\\d)\\d{4}",,,,"202123456",,,,[7]],[,,"3[2-49]\\d{7}",,,,"321234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"22\\d{7}",,,,"221234567"],
+"MG",261,"00","0",,,"0",,,,[[,"([23]\\d)(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MH:[,[,,"[2-6]\\d{6}",,,,,,,[7]],[,,"(?:247|528|625)\\d{4}",,,,"2471234"],[,,"(?:235|329|45[56]|545)\\d{4}",,,,"2351234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"635\\d{4}",,,,"6351234"],"MH",692,"011","1",,,"1",,,,[[,"(\\d{3})(\\d{4})","$1-$2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],
+MK:[,[,,"[2-578]\\d{7}",,,,,,,[8],[6,7]],[,,"(?:2(?:[23]\\d|5[124578]|6[01])|3(?:1[3-6]|[23][2-6]|4[2356])|4(?:[23][2-6]|4[3-6]|5[256]|6[25-8]|7[24-6]|8[4-6]))\\d{5}",,,,"22212345",,,,[6,7]],[,,"7(?:[0-25-8]\\d{2}|32\\d|421|9[23]\\d)\\d{4}",,,,"72345678"],[,,"800\\d{5}",,,,"80012345"],[,,"5[02-9]\\d{6}",,,,"50012345"],[,,"8(?:0[1-9]|[1-9]\\d)\\d{5}",,,,"80123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MK",389,"00","0",,,"0",,,,[[,"(2)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"([347]\\d)(\\d{3})(\\d{3})",
+"$1 $2 $3",["[347]"],"0$1"],[,"([58]\\d{2})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ML:[,[,,"[246-9]\\d{7}",,,,,,,[8]],[,,"(?:2(?:0(?:2\\d|7[0-8])|1(?:2[5-7]|[3-689]\\d))|44[1239]\\d)\\d{4}",,,,"20212345"],[,,"(?:2(?:079|17\\d)|[679]\\d{3}|8[239]\\d{2})\\d{4}",,,,"65012345"],[,,"80\\d{6}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ML",223,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
+"$1 $2 $3 $4",["[246-9]"]],[,"(\\d{4})","$1",["67|74"]]],[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[246-9]"]]],[,,,,,,,,,[-1]],,,[,,"80\\d{6}",,,,"80012345"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MM:[,[,,"[178]\\d{5,7}|[24-6]\\d{5,8}|9(?:[279]\\d{0,2}|5|[34]\\d{1,2}|6(?:\\d{1,2})?|8(?:\\d{2})?)\\d{6}",,,,,,,[6,7,8,9,10],[5]],[,,"1(?:2\\d{1,2}|[35]\\d|4(?:\\d|2[236]|39)|6\\d?|[89][0-6]\\d)\\d{4}|2(?:2(?:000\\d{3}|\\d{4})|3\\d{4}|4(?:0\\d{5}|26\\d{4}|39\\d{4}|\\d{4})|5(?:1\\d{3,6}|[02-9]\\d{3,5})|[6-9]\\d{4})|4(?:2[245-8]|3(?:2(?:02)?|[346]|56?)|[46][2-6]|5[3-5])\\d{4}|5(?:2(?:2(?:\\d{1,2})?|[3-8])|3[2-68]|4(?:21?|[4-8])|5[23]|6[2-4]|7[2-8]|8[24-7]|9[2-7])\\d{4}|6(?:0[23]|1(?:2(?:0|4\\d)?|[356])|2[2-6]|3[24-6]|4(?:2(?:4\\d)?|[3-6])|5[2-4]|6[2-8]|7(?:[2367]|4(?:\\d|39)|5\\d?|8[145]\\d)|8[245]|9(?:20?|4))\\d{4}|7(?:[04][24-8]|1(?:20?|[3-7])|22|3[2-4]|5[2-7])\\d{4}|8(?:1(?:2\\d{1,2}|[3-689]\\d)|2(?:2\\d|3(?:\\d|20)|[4-8]\\d)|3[24]\\d|4[24-7]\\d|5[245]\\d|6[23]\\d)\\d{3}",
+,,,"1234567",,,[6,7,8,9],[5]],[,,"17[01]\\d{4}|9(?:2(?:[0-4]|5\\d{2}|6[0-5]\\d)|3(?:[0-36]|4[069])\\d|4(?:0[0-4]\\d|[1379]\\d|2\\d{2}|4[0-589]\\d|5\\d{2}|88)|5[0-6]|6(?:1\\d|9\\d{2}|\\d)|7(?:3\\d|[6-9]\\d{2})|8(?:\\d|9\\d{2})|9(?:1\\d|[5-7]\\d{2}|[089]))\\d{5}",,,,"92123456",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"1333\\d{4}",,,,"13331234",,,[8]],"MM",95,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["1|2[245]"],"0$1"],[,"(2)(\\d{4})(\\d{4})",
+"$1 $2 $3",["251"],"0$1"],[,"(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["432|67|81"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3,4})","$1 $2 $3",["[4-8]"],"0$1"],[,"(9)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],[,"(9)([34]\\d{4})(\\d{4})","$1 $2 $3",["9(?:3[0-36]|4[0-57-9])"],"0$1"],[,"(9)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92[56]"],"0$1"],[,"(9)(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["93"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,
+,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MN:[,[,,"[12]\\d{7,9}|[57-9]\\d{7}",,,,,,,[8,9,10],[6,7]],[,,"[12](?:1\\d|2(?:[1-3]\\d?|7\\d)|3[2-8]\\d{1,2}|4[2-68]\\d{1,2}|5[1-4689]\\d{1,2})\\d{5}|5[0568]\\d{6}",,,,"50123456",,,,[6,7]],[,,"(?:8(?:[05689]\\d|3[01])|9[013-9]\\d)\\d{5}",,,,"88123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"7[05-8]\\d{6}",,,,"75123456",,,[8]],"MN",976,"001","0",,,"0",,,,[[,"([12]\\d)(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],[,"([12]2\\d)(\\d{5,6})",
+"$1 $2",["[12]2[1-3]"],"0$1"],[,"([12]\\d{3})(\\d{5})","$1 $2",["[12](?:27|[3-5])","[12](?:27|[3-5]\\d)2"],"0$1"],[,"(\\d{4})(\\d{4})","$1 $2",["[57-9]"],"$1"],[,"([12]\\d{4})(\\d{4,5})","$1 $2",["[12](?:27|[3-5])","[12](?:27|[3-5]\\d)[4-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MO:[,[,,"[268]\\d{7}",,,,,,,[8]],[,,"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}",,,,"28212345"],[,,"6(?:[2356]\\d|8[158])\\d{5}",,,,"66123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MO",853,"00",,,,,,,,[[,"([268]\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MP:[,[,,"[5689]\\d{9}",,,,,,,[10],[7]],[,,"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}",,,,"6702345678",,,,[7]],[,,"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}",,,,"6702345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",
+,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"MP",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],,"670",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MQ:[,[,,"[56]\\d{8}",,,,,,,[9]],[,,"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}",,,,"596301234"],[,,"696(?:[0-47-9]\\d|5[0-6]|6[0-4])\\d{4}",,,,"696201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+"MQ",596,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MR:[,[,,"[2-48]\\d{7}",,,,,,,[8]],[,,"25[08]\\d{5}|35\\d{6}|45[1-7]\\d{5}",,,,"35123456"],[,,"[234][0-46-9]\\d{6}",,,,"22123456"],[,,"800\\d{5}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MR",222,"00",,,,,,,,[[,"([2-48]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,
+,,,,[-1]],,,[,,,,,,,,,[-1]]],MS:[,[,,"[5689]\\d{9}",,,,,,,[10],[7]],[,,"664491\\d{4}",,,,"6644912345",,,,[7]],[,,"66449[2-6]\\d{4}",,,,"6644923456",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"MS",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"664",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MT:[,[,,"[2357-9]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:1[0-6]|3[1-4]|[69]\\d)|[1-357]\\d{2})\\d{4}",
+,,,"21001234"],[,,"(?:7(?:210|[79]\\d{2})|9(?:2(?:1[01]|31)|696|8(?:1[1-3]|89|97)|9\\d{2}))\\d{4}",,,,"96961234"],[,,"800[3467]\\d{4}",,,,"80071234"],[,,"5(?:0(?:0(?:37|43)|6\\d{2}|70\\d|9[0168]\\d)|[12]\\d0[1-5])\\d{3}",,,,"50037123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3550\\d{4}",,,,"35501234"],"MT",356,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,"7117\\d{4}",,,,"71171234"],,,[,,,,,,,,,[-1]],[,,"501\\d{5}",,,,"50112345"],,,[,,,,,,,,,[-1]]],MU:[,[,,"[2-9]\\d{6,7}",,,,,,,[7,8]],[,,"(?:2(?:[03478]\\d|1[0-7]|6[1-69])|4(?:[013568]\\d|2[4-7])|5(?:44\\d|471)|6\\d{2}|8(?:14|3[129]))\\d{4}",
+,,,"2012345"],[,,"5(?:2[59]\\d|4(?:2[1-389]|4\\d|7[1-9]|9\\d)|7\\d{2}|8(?:[0-25689]\\d|4[3479]|7[15-8])|9[0-8]\\d)\\d{4}",,,,"52512345",,,[8]],[,,"80[012]\\d{4}",,,,"8001234",,,[7]],[,,"30\\d{5}",,,,"3012345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3(?:20|9\\d)\\d{4}",,,,"3201234",,,[7]],"MU",230,"0(?:0|[2-7]0|33)",,,,,,"020",,[[,"([2-46-9]\\d{2})(\\d{4})","$1 $2",["[2-46-9]"]],[,"(5\\d{3})(\\d{4})","$1 $2",["5"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MV:[,[,,"[346-8]\\d{6,9}|9(?:00\\d{7}|\\d{6})",
+,,,,,,[7,10]],[,,"(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024568]|8[024689]|90))\\d{4}",,,,"6701234",,,[7]],[,,"(?:46[46]|7[3-9]\\d|9[15-9]\\d)\\d{4}",,,,"7712345",,,[7]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[3467]|9(?:[1-9]|0[1-9])"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]00"]]],,[,,"781\\d{4}",,,,"7812345",,,[7]],,,[,,,,,,,,,[-1]],[,,"4[05]0\\d{4}",
+,,,"4001234",,,[7]],,,[,,,,,,,,,[-1]]],MW:[,[,,"(?:1(?:\\d{2})?|[2789]\\d{2})\\d{6}",,,,,,,[7,9]],[,,"(?:1[2-9]|21\\d{2})\\d{5}",,,,"1234567"],[,,"(?:111|77\\d|88\\d|99\\d)\\d{6}",,,,"991234567",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MW",265,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1"],"0$1"],[,"(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1789]"],"0$1"]],,[,,,,,,,,,[-1]],
+,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MX:[,[,,"[1-9]\\d{9,10}",,,,,,,[10,11],[7,8]],[,,"(?:33|55|81)\\d{8}|(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[234][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}",
+,,,"2221234567",,,[10],[7,8]],[,,"1(?:(?:33|55|81)\\d{8}|(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7})",,,,"12221234567",,,[11]],[,,"8(?:00|88)\\d{7}",
+,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,"300\\d{7}",,,,"3001234567",,,[10]],[,,"500\\d{7}",,,,"5001234567",,,[10]],[,,,,,,,,,[-1]],"MX",52,"0[09]","01",,,"0[12]|04[45](\\d{10})","1$1",,,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"],"01 $1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[0-2457-9]|5[089]|8[02-9]|9[0-35-9]"],"01 $1",,1],[,"(1)([358]\\d)(\\d{4})(\\d{4})","044 $2 $3 $4",["1(?:33|55|81)"],"$1",,1],[,"(1)(\\d{3})(\\d{3})(\\d{4})","044 $2 $3 $4",
+["1(?:[2467]|3[0-2457-9]|5[089]|8[2-9]|9[1-35-9])"],"$1",,1]],[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"],"01 $1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[0-2457-9]|5[089]|8[02-9]|9[0-35-9]"],"01 $1",,1],[,"(1)([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3 $4",["1(?:33|55|81)"]],[,"(1)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1(?:[2467]|3[0-2457-9]|5[089]|8[2-9]|9[1-35-9])"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MY:[,[,,"[13-9]\\d{7,9}",,,,,,,[8,9,
+10],[6,7]],[,,"(?:3[2-9]\\d|[4-9][2-9])\\d{6}",,,,"323456789",,,[8,9],[6,7]],[,,"1(?:1[1-6]\\d{2}|[02-4679][2-9]\\d|59\\d{2}|8(?:1[23]|[2-9]\\d))\\d{5}",,,,"123456789",,,[9,10]],[,,"1[378]00\\d{6}",,,,"1300123456",,,[10]],[,,"1600\\d{6}",,,,"1600123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"154\\d{7}",,,,"1541234567",,,[10]],"MY",60,"00","0",,,"0",,,,[[,"([4-79])(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],[,"(3)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],[,"([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3",
+["1[02-46-9][1-9]|8"],"0$1"],[,"(1)([36-8]00)(\\d{2})(\\d{4})","$1-$2-$3-$4",["1[36-8]0"]],[,"(11)(\\d{4})(\\d{4})","$1-$2 $3",["11"],"0$1"],[,"(15[49])(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MZ:[,[,,"[28]\\d{7,8}",,,,,,,[8,9]],[,,"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}",,,,"21123456",,,[8]],[,,"8[2-7]\\d{7}",,,,"821234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,
+,,[-1]],"MZ",258,"00",,,,,,,,[[,"([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-7]"]],[,"(80\\d)(\\d{3})(\\d{3})","$1 $2 $3",["80"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NA:[,[,,"[68]\\d{7,8}",,,,,,,[8,9]],[,,"6(?:1(?:17|2(?:[0189]\\d|[2-6]|7\\d?)|3(?:[01378]|2\\d)|4(?:[024]|10?|3[15]?)|69|7[014])|2(?:17|5(?:[0-36-8]|4\\d?)|69|70)|3(?:17|2(?:[0237]\\d?|[14-689])|34|6[289]|7[01]|81)|4(?:17|2(?:[012]|7\\d?)|4(?:[06]|1\\d?)|5(?:[01357]|[25]\\d?)|69|7[01])|5(?:17|2(?:[0459]|[23678]\\d?)|69|7[01])|6(?:17|2(?:5|6\\d?)|38|42|69|7[01])|7(?:17|2(?:[569]|[234]\\d?)|3(?:0\\d?|[13])|6[89]|7[01]))\\d{4}",
+,,,"61221234"],[,,"(?:60|8[125])\\d{7}",,,,"811234567",,,[9]],[,,,,,,,,,[-1]],[,,"8701\\d{5}",,,,"870123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"8(?:3\\d{2}|86)\\d{5}",,,,"88612345"],"NA",264,"00","0",,,"0",,,,[[,"(8\\d)(\\d{3})(\\d{4})","$1 $2 $3",["8[1235]"],"0$1"],[,"(6\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],[,"(88)(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],[,"(870)(\\d{3})(\\d{3})","$1 $2 $3",["870"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],
+NC:[,[,,"[2-57-9]\\d{5}",,,,,,,[6]],[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}",,,,"201234"],[,,"(?:5[0-4]|[79]\\d|8[0-79])\\d{4}",,,,"751234"],[,,,,,,,,,[-1]],[,,"36\\d{4}",,,,"366711"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NC",687,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[2-46-9]|5[0-4]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NE:[,[,,"[0289]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}",
+,,,"20201234"],[,,"(?:8[089]|9\\d)\\d{6}",,,,"93123456"],[,,"08\\d{6}",,,,"08123456"],[,,"09\\d{6}",,,,"09123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NE",227,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[289]|09"]],[,"(08)(\\d{3})(\\d{3})","$1 $2 $3",["08"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NF:[,[,,"[13]\\d{5}",,,,,,,[6],[5]],[,,"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}",,,,"106609",,,,[5]],[,,"3[58]\\d{4}",,,,"381234",,,,[5]],[,
+,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NF",672,"00",,,,,,,,[[,"(\\d{2})(\\d{4})","$1 $2",["1"]],[,"(\\d)(\\d{5})","$1 $2",["3"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NG:[,[,,"[1-6]\\d{5,8}|9\\d{5,9}|[78]\\d{5,13}",,,,,,,[7,8,10,11,12,13,14],[5,6]],[,,"[12]\\d{6,7}|9(?:0[3-9]|[1-9]\\d)\\d{5}|(?:3\\d|4[023568]|5[02368]|6[02-469]|7[4-69]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}",,,,"12345678",,
+,[7,8],[5,6]],[,,"(?:1(?:7[34]\\d|8(?:04|[124579]\\d|8[0-3])|95\\d)|287[0-7]|3(?:18[1-8]|88[0-7]|9(?:8[5-9]|6[1-5]))|4(?:28[0-2]|6(?:7[1-9]|8[02-47])|88[0-2])|5(?:2(?:7[7-9]|8\\d)|38[1-79]|48[0-7]|68[4-7])|6(?:2(?:7[7-9]|8\\d)|4(?:3[7-9]|[68][129]|7[04-69]|9[1-8])|58[0-2]|98[7-9])|7(?:38[0-7]|69[1-8]|78[2-4])|8(?:28[3-9]|38[0-2]|4(?:2[12]|3[147-9]|5[346]|7[4-9]|8[014-689]|90)|58[1-8]|78[2-9]|88[5-7])|98[07]\\d)\\d{4}|(?:70(?:[1-689]\\d|7[0-3])|8(?:0(?:1[01]|[2-9]\\d)|1(?:[0-8]\\d|9[01]))|90[235-9]\\d)\\d{6}",
+,,,"8021234567",,,[8,10]],[,,"800\\d{7,11}",,,,"80017591759",,,[10,11,12,13,14]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NG",234,"009","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|9(?:0[3-9]|[1-9])"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[3-6]|7(?:[1-79]|0[1-9])|8[2-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["70|8[01]|90[235-9]"],"0$1"],[,"([78]00)(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]00"],"0$1"],[,"([78]00)(\\d{5})(\\d{5,6})","$1 $2 $3",
+["[78]00"],"0$1"],[,"(78)(\\d{2})(\\d{3})","$1 $2 $3",["78"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"700\\d{7,11}",,,,"7001234567",,,[10,11,12,13,14]],,,[,,,,,,,,,[-1]]],NI:[,[,,"[12578]\\d{7}",,,,,,,[8]],[,,"2\\d{7}",,,,"21234567"],[,,"5(?:5[0-7]\\d{5}|[78]\\d{6})|7[5-8]\\d{6}|8\\d{7}",,,,"81234567"],[,,"1800\\d{4}",,,,"18001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NI",505,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,
+,,[-1]],,,[,,,,,,,,,[-1]]],NL:[,[,,"1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}",,,,,,,[5,6,7,8,9,10]],[,,"(?:1[0135-8]|2[02-69]|3[0-68]|4[0135-9]|[57]\\d|8[478])\\d{7}",,,,"101234567",,,[9]],[,,"6[1-58]\\d{7}",,,,"612345678",,,[9]],[,,"800\\d{4,7}",,,,"8001234",,,[7,8,9,10]],[,,"90[069]\\d{4,7}",,,,"9061234",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:6760|85\\d{2})\\d{5}",,,,"851234567",,,[9]],"NL",31,"00","0",,,"0",,,,[[,"([1-578]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7|8[4578]"],
+"0$1"],[,"([1-5]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],[,"(6)(\\d{8})","$1 $2",["6[0-57-9]"],"0$1"],[,"(66)(\\d{7})","$1 $2",["66"],"0$1"],[,"(14)(\\d{3,4})","$1 $2",["14"],"$1"],[,"([89]0\\d)(\\d{4,7})","$1 $2",["80|9"],"0$1"]],,[,,"66\\d{7}",,,,"662345678",,,[9]],,,[,,"14\\d{3,4}",,,,"14123",,,[5,6]],[,,"140(?:1(?:[035]|[16-8]\\d)|2(?:[0346]|[259]\\d)|3(?:[03568]|[124]\\d)|4(?:[0356]|[17-9]\\d)|5(?:[0358]|[124679]\\d)|7\\d|8[458])",,,,"14020",,,[5,
+6]],,,[,,,,,,,,,[-1]]],NO:[,[,,"0\\d{4}|[2-9]\\d{7}",,,,,,,[5,8]],[,,"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}",,,,"21234567",,,[8]],[,,"(?:4[015-8]|5[89]|87|9\\d)\\d{6}",,,,"40612345",,,[8]],[,,"80[01]\\d{5}",,,,"80012345",,,[8]],[,,"82[09]\\d{5}",,,,"82012345",,,[8]],[,,"810(?:0[0-6]|[2-8]\\d)\\d{3}",,,,"81021234",,,[8]],[,,"880\\d{5}",,,,"88012345",,,[8]],[,,"85[0-5]\\d{5}",,,,"85012345",,,[8]],"NO",47,"00",,,,,,,,[[,"([489]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[489]"]],[,"([235-7]\\d)(\\d{2})(\\d{2})(\\d{2})",
+"$1 $2 $3 $4",["[235-7]"]]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}",,,,"01234"],,,[,,"81[23]\\d{5}",,,,"81212345",,,[8]]],NP:[,[,,"[1-8]\\d{7}|9(?:[1-69]\\d{6,8}|7[2-6]\\d{5,7}|8\\d{8})",,,,,,,[8,10],[6,7]],[,,"(?:1[0-6]\\d|2[13-79][2-6]|3[135-8][2-6]|4[146-9][2-6]|5[135-7][2-6]|6[13-9][2-6]|7[15-9][2-6]|8[1-46-9][2-6]|9[1-79][2-6])\\d{5}",,,,"14567890",,,[8],[6,7]],[,,"9(?:6[013]|7[245]|8[0-24-6])\\d{7}",,,,"9841234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,
+,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NP",977,"00","0",,,"0",,,,[[,"(1)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],[,"(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-69]|7[15-9])"],"0$1"],[,"(9\\d{2})(\\d{7})","$1-$2",["9(?:6[013]|7[245]|8)"],"$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NR:[,[,,"[458]\\d{6}",,,,,,,[7]],[,,"(?:444|888)\\d{4}",,,,"4441234"],[,,"55[5-9]\\d{4}",,,,"5551234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,
+,,,,,,,,[-1]],"NR",674,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NU:[,[,,"[1-5]\\d{3}",,,,,,,[4]],[,,"[34]\\d{3}",,,,"4002"],[,,"[125]\\d{3}",,,,"1234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NU",683,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NZ:[,[,,"6[235-9]\\d{6}|[2-57-9]\\d{7,9}",,,,,,,[8,9,10],[7]],[,,"(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}|24099\\d{3}",
+,,,"32345678",,,[8],[7]],[,,"2(?:[028]\\d{7,8}|1(?:[03]\\d{5,7}|[12457]\\d{5,6}|[689]\\d{5})|[79]\\d{7})",,,,"211234567"],[,,"508\\d{6,7}|80\\d{6,8}",,,,"800123456"],[,,"90\\d{6,7}",,,,"900123456",,,[8,9]],[,,,,,,,,,[-1]],[,,"70\\d{7}",,,,"701234567",,,[9]],[,,,,,,,,,[-1]],"NZ",64,"0(?:0|161)","0",,,"0",,"00",,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["240|[346]|7[2-57-9]|9[1-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["21"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:1[1-9]|[69]|7[0-35-9])|70|86"],
+"0$1"],[,"(2\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["2[028]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["90"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|5|[89]0"],"0$1"]],,[,,"[28]6\\d{6,7}",,,,"26123456",,,[8,9]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],OM:[,[,,"(?:5|[279]\\d)\\d{6}|800\\d{5,6}",,,,,,,[7,8,9]],[,,"2[2-6]\\d{6}",,,,"23123456",,,[8]],[,,"7[19]\\d{6}|9(?:0[1-9]|[1-9]\\d)\\d{5}",,,,"92123456",,,[8]],[,,"8007\\d{4,5}|500\\d{4}",,,,"80071234"],[,,"900\\d{5}",
+,,,"90012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"OM",968,"00",,,,,,,,[[,"(2\\d)(\\d{6})","$1 $2",["2"]],[,"([79]\\d{3})(\\d{4})","$1 $2",["[79]"]],[,"([58]00)(\\d{4,6})","$1 $2",["[58]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PA:[,[,,"[1-9]\\d{6,7}",,,,,,,[7,8]],[,,"(?:1(?:0[0-8]|1[49]|2[37]|3[0137]|4[147]|5[05]|6[58]|7[0167]|8[58]|9[139])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:[09]\\d|1[014-7]|2[0-3]|3[03]|4[03-57]|55|6[068]|7[06-8]|8[06-9])|4(?:3[013-69]|4\\d|7[0-589])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-267]|3[06]|[469]0|5[06-9]|7[0-24-79]|8[7-9])|8(?:09|[34]\\d|5[0134]|8[02])|9(?:0[6-9]|1[016-8]|2[036-8]|3[3679]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}",
+,,,"2001234",,,[7]],[,,"(?:1[16]1|21[89]|8(?:1[01]|7[23]))\\d{4}|6(?:[024-9]\\d|1[0-5]|3[0-24-9])\\d{5}",,,,"60012345"],[,,"80[09]\\d{4}",,,,"8001234",,,[7]],[,,"(?:779|8(?:55|60|7[78])|9(?:00|81))\\d{4}",,,,"8601234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PA",507,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],[,"(\\d{4})(\\d{4})","$1-$2",["6"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PE:[,[,,"[14-9]\\d{7,8}",,,,,,,[8,9],[6,7]],[,,"(?:1\\d|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\d{6}",
+,,,"11234567",,,[8],[6,7]],[,,"9\\d{8}",,,,"912345678",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"805\\d{5}",,,,"80512345",,,[8]],[,,"801\\d{5}",,,,"80112345",,,[8]],[,,"80[24]\\d{5}",,,,"80212345",,,[8]],[,,,,,,,,,[-1]],"PE",51,"19(?:1[124]|77|90)00","0"," Anexo ",,"0",,,,[[,"(1)(\\d{7})","$1 $2",["1"],"(0$1)"],[,"([4-8]\\d)(\\d{6})","$1 $2",["[4-7]|8[2-4]"],"(0$1)"],[,"(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],[,"(9\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,
+,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PF:[,[,,"4\\d{5,7}|8\\d{7}",,,,,,,[6,8]],[,,"4(?:[09][45689]\\d|4)\\d{4}",,,,"40412345"],[,,"8[79]\\d{6}",,,,"87123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PF",689,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4[09]|8[79]"]],[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]]],,[,,,,,,,,,[-1]],,,[,,"44\\d{4}",,,,"441234",,,[6]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PG:[,[,,"[1-9]\\d{6,7}",,
+,,,,,[7,8]],[,,"(?:3[0-2]\\d|4[257]\\d|5[34]\\d|64[1-9]|77(?:[0-24]\\d|30)|85[02-46-9]|9[78]\\d)\\d{4}",,,,"3123456",,,[7]],[,,"7(?:[0-689]\\d|75)\\d{5}",,,,"70123456",,,[8]],[,,"180\\d{4}",,,,"1801234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"2(?:0[0-47]|7[568])\\d{4}",,,,"2751234",,,[7]],"PG",675,"140[1-3]|00",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[13-689]|27"]],[,"(\\d{4})(\\d{4})","$1 $2",["20|7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PH:[,
+[,,"2\\d{5,7}|[3-9]\\d{7,9}|1800\\d{7,9}",,,,,,,[6,8,9,10,11,12,13],[5,7]],[,,"2\\d{5}(?:\\d{2})?|(?:3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}|88(?:22\\d{6}|42\\d{4})",,,,"21234567",,,[6,8,9,10],[5,7]],[,,"(?:81[37]|9(?:0[5-9]|1[024-9]|2[0-35-9]|3[02-9]|4[235-9]|5[056]|6[5-7]|7[34-79]|89|9[4-9]))\\d{7}",,,,"9051234567",,,[10]],[,,"1800\\d{7,9}",,,,"180012345678",,,[11,12,13]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PH",63,"00","0",,,"0",,,,[[,"(2)(\\d{3})(\\d{4})",
+"$1 $2 $3",["2"],"(0$1)"],[,"(2)(\\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)|5(?:22|44)|642|8(?:62|8[245])","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)"],[,"([3-8]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[3-8]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["81|9"],
+"0$1"],[,"(1800)(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(1800)(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PK:[,[,,"1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))",,,,,,,[8,9,10,11,12],[6,7]],[,,"(?:21|42)[2-9]\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6}|(?: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]))[2-9]\\d{5,6}|58[126]\\d{7}",
+,,,"2123456789",,,[9,10],[6,7,8]],[,,"3(?:[014]\\d|2[0-5]|3[0-7]|55|64)\\d{7}",,,,"3012345678",,,[10]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,,,,,,,,[-1]],[,,"122\\d{6}",,,,"122044444",,,[9]],[,,,,,,,,,[-1]],"PK",92,"00","0",,,"0",,,,[[,"(\\d{2})(111)(\\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)1","(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)11","(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)111"],"(0$1)"],
+[,"(\\d{3})(111)(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[349]|45|54|60|72|8[2-5]|9[2-9]","(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d1","(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d11","(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d111"],"(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{3})(\\d{6,7})","$1 $2",["2[349]|45|5(?:4|8[12])|60|72|8[2-5]|9[2-9]","(?:2[349]|45|5(?:4|8[12])|60|72|8[2-5]|9[2-9])\\d[2-9]"],"(0$1)"],[,"(3\\d{2})(\\d{7})","$1 $2",
+["3"],"0$1"],[,"(1\\d{3})(\\d{5,6})","$1 $2",["1"],"$1"],[,"(586\\d{2})(\\d{5})","$1 $2",["586"],"(0$1)"],[,"([89]00)(\\d{3})(\\d{2})","$1 $2 $3",["[89]00"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}",,,,"21111825888",,,[11,12]],,,[,,,,,,,,,[-1]]],PL:[,[,,"[12]\\d{6,8}|[3-57-9]\\d{8}|6\\d{5,8}",
+,,,,,,[6,7,8,9]],[,,"(?: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])\\d{7}|[12]2\\d{5}",,,,"123456789",,,[7,9]],[,,"(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}",,,,"512345678",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"70\\d{7}",,,,"701234567",,,[9]],[,,"801\\d{6}",,,,"801234567",,,[9]],[,,,,,,,,,[-1]],[,,"39\\d{7}",,,,"391234567",,,[9]],"PL",48,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["26|39|45|5[0137]|6[0469]|7[02389]|8[08]"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})",
+"$1 $2 $3 $4",["[14]|2[0-57-9]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]"]],[,"(\\d{2})(\\d{1})(\\d{4})","$1 $2 $3",["[12]2"]],[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],[,"(\\d{3})(\\d{3})","$1 $2",["64"]]],,[,,"64\\d{4,7}",,,,"641234567"],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PM:[,[,,"[45]\\d{5}",,,,,,,[6]],[,,"41\\d{4}",,,,"411234"],[,,"(?:40|55)\\d{4}",,,,"551234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PM",508,"00","0",,
+,"0",,,,[[,"([45]\\d)(\\d{2})(\\d{2})","$1 $2 $3",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PR:[,[,,"[5789]\\d{9}",,,,,,,[10],[7]],[,,"(?:787|939)[2-9]\\d{6}",,,,"7872345678",,,,[7]],[,,"(?:787|939)[2-9]\\d{6}",,,,"7872345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"PR",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],
+,"787|939",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PS:[,[,,"1\\d{9}|[24589]\\d{7,8}",,,,,,,[8,9,10],[7]],[,,"(?:22[234789]|42[45]|82[01458]|92[369])\\d{5}",,,,"22234567",,,[8],[7]],[,,"5[69]\\d{7}",,,,"599123456",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,,,,,,,,[-1]],[,,"1700\\d{6}",,,,"1700123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PS",970,"00","0",,,"0",,,,[[,"([2489])(2\\d{2})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],[,"(5[69]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],
+[,"(1[78]00)(\\d{3})(\\d{3})","$1 $2 $3",["1"],"$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PT:[,[,,"[2-46-9]\\d{8}",,,,,,,[9]],[,,"2(?:[12]\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\d{6}",,,,"212345678"],[,,"9(?:[1236]\\d{2}|480)\\d{5}",,,,"912345678"],[,,"80[02]\\d{6}",,,,"800123456"],[,,"6(?:0[178]|4[68])\\d{6}|76(?:0[1-57]|1[2-47]|2[237])\\d{5}",,,,"760123456"],[,,"80(?:8\\d|9[1579])\\d{5}",,,,"808123456"],[,,"884[0-4689]\\d{5}",,,,"884123456"],
+[,,"30\\d{7}",,,,"301234567"],"PT",351,"00",,,,,,,,[[,"(2\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],[,"([2-46-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[3-9]|[346-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7(?:0(?:7\\d|8[17]))\\d{5}",,,,"707123456"],,,[,,"600\\d{6}",,,,"600110000"]],PW:[,[,,"[2-8]\\d{6}",,,,,,,[7]],[,,"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}",,,,"2771234"],[,,"(?:6[234689]0|77[45789])\\d{4}",,,,"6201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PW",680,"01[12]",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PY:[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}",,,,,,,[6,7,8,9],[5]],[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}",,,,"212345678",,,[7,
+8,9],[5,6]],[,,"9(?:6[12]|[78][1-6]|9[1-5])\\d{6}",,,,"961456789",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"8700[0-4]\\d{4}",,,,"870012345",,,[9]],"PY",595,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{5})","$1 $2",["(?:[26]1|3[289]|4[124678]|7[123]|8[1236])"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["(?:[26]1|3[289]|4[124678]|7[123]|8[1236])"],"(0$1)"],[,"(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["9[1-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})",
+"$1 $2 $3",["8700"]],[,"(\\d{3})(\\d{4,5})","$1 $2",["[2-8][1-9]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8][1-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"[2-9]0\\d{4,7}",,,,"201234567"],,,[,,,,,,,,,[-1]]],QA:[,[,,"[2-8]\\d{6,7}",,,,,,,[7,8]],[,,"4[04]\\d{6}",,,,"44123456",,,[8]],[,,"[3567]\\d{7}",,,,"33123456",,,[8]],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"QA",974,"00",,,,,,,,[[,"([28]\\d{2})(\\d{4})","$1 $2",["[28]"]],
+[,"([3-7]\\d{3})(\\d{4})","$1 $2",["[3-7]"]]],,[,,"2(?:[12]\\d|61)\\d{4}",,,,"2123456",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RE:[,[,,"[268]\\d{8}",,,,,,,[9]],[,,"262\\d{6}",,,,"262161234"],[,,"69(?:2\\d{2}|3(?:0[0-46]|1[013]|2[0-2]|3[039]|4[0-7]|5[05]|6[06]|7[07]|8[0-38]|9[0-479]))\\d{4}",,,,"692123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89[1-37-9]\\d{6}",,,,"891123456"],[,,"8(?:1[019]|2[0156]|84|90)\\d{6}",,,,"810123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RE",262,"00","0",,,
+"0",,,,[[,"([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"0$1"]],,[,,,,,,,,,[-1]],1,"262|69|8",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RO:[,[,,"[23]\\d{5,8}|[7-9]\\d{8}",,,,,,,[6,9]],[,,"2(?:1(?:\\d{7}|9\\d{3})|[3-6](?:\\d{7}|\\d9\\d{2}))|3(?:1\\d{4}(?:\\d{3})?|[3-6]\\d{7})",,,,"211234567"],[,,"7(?:[0-8]\\d{2}|99\\d)\\d{5}",,,,"712345678",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"90[036]\\d{6}",,,,"900123456",,,[9]],[,,"801\\d{6}",,,,"801123456",,,[9]],[,,,,,,,,,[-1]],[,,
+,,,,,,,[-1]],"RO",40,"00","0"," int ",,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],[,"(\\d{2})(\\d{4})","$1 $2",["[23]1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[23][3-7]|[7-9]"],"0$1"],[,"(2\\d{2})(\\d{3})","$1 $2",["2[3-6]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"37\\d{7}",,,,"372123456",,,[9]],,,[,,,,,,,,,[-1]]],RS:[,[,,"[126-9]\\d{4,11}|3(?:[0-79]\\d{3,10}|8[2-9]\\d{2,9})",,,,,,,[6,7,8,9,10,11,12],[5]],[,,"(?:1(?:[02-9][2-9]|1[1-9])\\d|2(?:[0-24-7][2-9]\\d|[389](?:0[2-9]|[2-9]\\d))|3(?:[0-8][2-9]\\d|9(?:[2-9]\\d|0[2-9])))\\d{3,8}",
+,,,"10234567",,,[7,8,9,10,11,12],[5,6]],[,,"6(?:[0-689]|7\\d)\\d{6,7}",,,,"601234567",,,[8,9,10]],[,,"800\\d{3,9}",,,,"80012345"],[,,"(?:90[0169]|78\\d)\\d{3,7}",,,,"90012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RS",381,"00","0",,,"0",,,,[[,"([23]\\d{2})(\\d{4,9})","$1 $2",["(?:2[389]|39)0"],"0$1"],[,"([1-3]\\d)(\\d{5,10})","$1 $2",["1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])"],"0$1"],[,"(6\\d)(\\d{6,8})","$1 $2",["6"],"0$1"],[,"([89]\\d{2})(\\d{3,9})","$1 $2",["[89]"],"0$1"],[,"(7[26])(\\d{4,9})",
+"$1 $2",["7[26]"],"0$1"],[,"(7[08]\\d)(\\d{4,9})","$1 $2",["7[08]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7[06]\\d{4,10}",,,,"700123456"],,,[,,,,,,,,,[-1]]],RU:[,[,,"[3489]\\d{9}",,,,,,,[10]],[,,"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}",,,,"3011234567"],[,,"9\\d{9}",,,,"9123456789"],[,,"80[04]\\d{7}",,,,"8001234567"],[,,"80[39]\\d{7}",,,,"8091234567"],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RU",7,"810","8",,,"8",,"8~10",,[[,"(\\d{3})(\\d{2})(\\d{2})","$1-$2-$3",["[1-79]"],"$1",,1],[,"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[34689]"],"8 ($1)",,1],[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",,1]],[[,"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[34689]"],"8 ($1)",,1],[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",,1]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RW:[,[,,"[027-9]\\d{7,8}",
+,,,,,,[8,9]],[,,"2[258]\\d{7}|06\\d{6}",,,,"250123456"],[,,"7[238]\\d{7}",,,,"720123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"900\\d{6}",,,,"900123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RW",250,"00","0",,,"0",,,,[[,"(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"$1"],[,"([7-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"],[,"(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SA:[,[,,"1\\d{7,8}|(?:[2-467]|92)\\d{7}|5\\d{8}|8\\d{9}",
+,,,,,,[8,9,10],[7]],[,,"11\\d{7}|1?(?:2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}",,,,"112345678",,,[8,9],[7]],[,,"(?:5(?:[013-689]\\d|7[0-36-8])|811\\d)\\d{6}",,,,"512345678",,,[9,10]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,,,,,,,,[-1]],[,,"92[05]\\d{6}",,,,"920012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SA",966,"00","0",,,"0",,,,[[,"([1-467])(\\d{3})(\\d{4})","$1 $2 $3",["[1-467]"],"0$1"],[,"(1\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1[1-467]"],"0$1"],[,"(5\\d)(\\d{3})(\\d{4})","$1 $2 $3",["5"],
+"0$1"],[,"(92\\d{2})(\\d{5})","$1 $2",["92"],"$1"],[,"(800)(\\d{3})(\\d{4})","$1 $2 $3",["80"],"$1"],[,"(811)(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SB:[,[,,"[1-9]\\d{4,6}",,,,,,,[5,7]],[,,"(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}",,,,"40123",,,[5]],[,,"48\\d{3}|7(?:30|[46-8]\\d|5[025-9]|9[0-5])\\d{4}|8[4-9]\\d{5}|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8])\\d{4}",,,,"7421234"],[,,"1[38]\\d{3}",
+,,,"18123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[12]\\d{3}",,,,"51123",,,[5]],"SB",677,"0[01]",,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["[7-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SC:[,[,,"[24689]\\d{5,6}",,,,,,,[7]],[,,"4[2-46]\\d{5}",,,,"4217123"],[,,"2[5-8]\\d{5}",,,,"2510123"],[,,"8000\\d{3}",,,,"8000000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:64\\d|971)\\d{4}",,,,"6412345"],"SC",248,"0(?:[02]|10?)",,,,,,"00",,[[,"(\\d)(\\d{3})(\\d{3})",
+"$1 $2 $3",["[246]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SD:[,[,,"[19]\\d{8}",,,,,,,[9]],[,,"1(?:[125]\\d|8[3567])\\d{6}",,,,"121231234"],[,,"9[0-3569]\\d{7}",,,,"911231234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SD",249,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",,"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SE:[,[,,"[1-35-9]\\d{5,11}|4\\d{6,8}",,,,,,,[6,7,8,9,10,12]],[,
+,"1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:[0246]\\d{5,7}|(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:[03]\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8\\d{6,8}|9(?:0[1-9]\\d{4,6}|(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8])\\d{5,6})",
+,,,"8123456",,,[7,8,9]],[,,"7[02369]\\d{7}",,,,"701234567",,,[9]],[,,"20\\d{4,7}",,,,"20123456",,,[6,7,8,9]],[,,"649\\d{6}|9(?:00|39|44)[1-8]\\d{3,6}",,,,"9001234567",,,[7,8,9,10]],[,,"77(?:0\\d{3}(?:\\d{3})?|[1-7]\\d{6})",,,,"771234567",,,[6,9]],[,,"75[1-8]\\d{6}",,,,"751234567",,,[9]],[,,,,,,,,,[-1]],"SE",46,"00","0",,,"0",,,,[[,"(8)(\\d{2,3})(\\d{2,3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1"],[,"([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90"],"0$1"],
+[,"([1-469]\\d)(\\d{3})(\\d{2})","$1-$2 $3",["1[136]|2[136]|3[356]|4[0246]|6[03]|90"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[0-5]|4[0-3])"],"0$1"],[,"(\\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(?:[124-689]|7[0-2])|9(?:[125-8]|3[0-5]|4[0-3])"],"0$1"],[,"(7\\d)(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["7"],"0$1"],[,"(77)(\\d{2})(\\d{2})",
+"$1-$2$3",["7"],"0$1"],[,"(20)(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1"],[,"(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9[034]"],"0$1"],[,"(9[034]\\d)(\\d{4})","$1-$2",["9[034]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["25[245]|67[3-6]"],"0$1"]],[[,"(8)(\\d{2,3})(\\d{2,3})(\\d{2})","$1 $2 $3 $4",["8"]],[,"([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90"]],[,"([1-469]\\d)(\\d{3})(\\d{2})","$1 $2 $3",["1[136]|2[136]|3[356]|4[0246]|6[03]|90"]],
+[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[0-5]|4[0-3])"]],[,"(\\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(?:[124-689]|7[0-2])|9(?:[125-8]|3[0-5]|4[0-3])"]],[,"(7\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7"]],[,"(77)(\\d{2})(\\d{2})","$1 $2 $3",["7"]],[,"(20)(\\d{2,3})(\\d{2})","$1 $2 $3",["20"]],[,"(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})",
+"$1 $2 $3 $4",["9[034]"]],[,"(9[034]\\d)(\\d{4})","$1 $2",["9[034]"]],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["25[245]|67[3-6]"]]],[,,"74[02-9]\\d{6}",,,,"740123456",,,[9]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"(?:25[245]|67[3-6])\\d{9}",,,,"254123456789",,,[12]]],SG:[,[,,"[36]\\d{7}|[17-9]\\d{7,10}",,,,,,,[8,10,11]],[,,"6[1-9]\\d{6}",,,,"61234567",,,[8]],[,,"(?:8[1-8]|9[0-8])\\d{6}",,,,"81234567",,,[8]],[,,"1?800\\d{7}",,,,"18001234567",,,[10,11]],[,,"1900\\d{7}",,,,"19001234567",
+,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3[12]\\d{6}",,,,"31234567",,,[8]],"SG",65,"0[0-3]\\d",,,,,,,,[[,"([3689]\\d{3})(\\d{4})","$1 $2",["[369]|8[1-9]"]],[,"(1[89]00)(\\d{3})(\\d{4})","$1 $2 $3",["1[89]"]],[,"(7000)(\\d{4})(\\d{3})","$1 $2 $3",["70"]],[,"(800)(\\d{3})(\\d{4})","$1 $2 $3",["80"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7000\\d{7}",,,,"70001234567",,,[11]],,,[,,,,,,,,,[-1]]],SH:[,[,,"[256]\\d{4}",,,,,,,[4,5]],[,,"2(?:[0-57-9]\\d|6[4-9])\\d{2}",,,,"22158"],[,,"[56]\\d{4}",,,,"51234",
+,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"262\\d{2}",,,,"26212",,,[5]],"SH",290,"00",,,,,,,,,,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SI:[,[,,"[1-7]\\d{6,7}|[89]\\d{4,7}",,,,,,,[5,6,7,8]],[,,"(?:1\\d|[25][2-8]|3[24-8]|4[24-8]|7[3-8])\\d{6}",,,,"11234567",,,[8],[7]],[,,"(?:[37][01]\\d|4[0139]\\d|51\\d|6(?:[48]\\d|9[69]))\\d{5}",,,,"31234567",,,[8]],[,,"80\\d{4,6}",,,,"80123456",,,[6,7,8]],[,,"90\\d{4,6}|89[1-3]\\d{2,5}",,,,"90123456"],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:59|8[1-3])\\d{6}",,,,"59012345",,,[8]],"SI",386,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[12]|3[24-8]|4[24-8]|5[2-8]|7[3-8]"],"(0$1)"],[,"([3-7]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],[,"([89][09])(\\d{3,6})","$1 $2",["[89][09]"],"0$1"],[,"([58]\\d{2})(\\d{5})","$1 $2",["59|8[1-3]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SJ:[,[,,"0\\d{4}|[45789]\\d{7}",,,,,,,[5,8]],[,
+,"79\\d{6}",,,,"79123456",,,[8]],[,,"(?:4[015-8]|5[89]|9\\d)\\d{6}",,,,"41234567",,,[8]],[,,"80[01]\\d{5}",,,,"80012345",,,[8]],[,,"82[09]\\d{5}",,,,"82012345",,,[8]],[,,"810(?:0[0-6]|[2-8]\\d)\\d{3}",,,,"81021234",,,[8]],[,,"880\\d{5}",,,,"88012345",,,[8]],[,,"85[0-5]\\d{5}",,,,"85012345",,,[8]],"SJ",47,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}",,,,"01234"],,,[,,"81[23]\\d{5}",,,,"81212345",,,[8]]],SK:[,[,,"(?:[2-68]\\d{5,8}|9\\d{6,8})",,,,,
+,,[6,7,9]],[,,"2(?:1(?:6\\d{3,4}|7\\d{3})|[2-9]\\d{7})|[3-5][1-8](?:1(?:6\\d{2,3}|7\\d{3})|\\d{7})",,,,"221234567"],[,,"9(?:0(?:[1-8]\\d|9[1-9])|(?:1[0-24-9]|[45]\\d)\\d)\\d{5}",,,,"912123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"9(?:[78]\\d{7}|00\\d{6})",,,,"900123456",,,[9]],[,,"8[5-9]\\d{7}",,,,"850123456",,,[9]],[,,,,,,,,,[-1]],[,,"6(?:02|5[0-4]|9[0-6])\\d{6}",,,,"690123456",,,[9]],"SK",421,"00","0",,,"0",,,,[[,"(2)(1[67])(\\d{3,4})","$1 $2 $3",["21[67]"],"0$1"],[,"([3-5]\\d)(1[67])(\\d{2,3})",
+"$1 $2 $3",["[3-5]"],"0$1"],[,"(2)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],[,"([3-5]\\d)(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"],[,"([689]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],[,"(9090)(\\d{3})","$1 $2",["9090"],"0$1"]],,[,,"9090\\d{3}",,,,"9090123",,,[7]],,,[,,"(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}|9090\\d{3}",,,,"800123456",,,[7,9]],[,,"96\\d{7}",,,,"961234567",,,[9]],,,[,,,,,,,,,[-1]]],SL:[,[,,"[2-9]\\d{7}",,,,,,,[8],[6]],[,,"[235]2[2-4][2-9]\\d{4}",
+,,,"22221234",,,,[6]],[,,"(?:2[15]|3[03-5]|4[04]|5[05]|66|7[6-9]|8[08]|99)\\d{6}",,,,"25123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SL",232,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",,"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SM:[,[,,"[05-7]\\d{7,9}",,,,,,,[8,10],[6]],[,,"0549(?:8[0157-9]|9\\d)\\d{4}",,,,"0549886377",,,[10],[6]],[,,"6[16]\\d{6}",,,,"66661212",,,[8]],[,,,,,,,,,[-1]],[,,"7[178]\\d{6}",,,,"71123456",
+,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[158]\\d{6}",,,,"58001110",,,[8]],"SM",378,"00",,,,"(?:0549)?([89]\\d{5})","0549$1",,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],[,"(0549)(\\d{6})","$1 $2",["0"]],[,"(\\d{6})","0549 $1",["[89]"]]],[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],[,"(0549)(\\d{6})","($1) $2",["0"]],[,"(\\d{6})","(0549) $1",["[89]"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SN:[,[,,"[3789]\\d{8}",,,,,,,[9]],[,
+,"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}",,,,"301012345"],[,,"7(?:[06-8]\\d|21|90)\\d{6}",,,,"701234567"],[,,"800\\d{6}",,,,"800123456"],[,,"88[4689]\\d{6}",,,,"884123456"],[,,"81[02468]\\d{6}",,,,"810123456"],[,,,,,,,,,[-1]],[,,"39[01]\\d{6}|3392\\d{5}|93330\\d{4}",,,,"933301234"],"SN",221,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,
+,,[-1]]],SO:[,[,,"[1-9]\\d{5,8}",,,,,,,[6,7,8,9]],[,,"(?:1\\d{1,2}|2[0-79]\\d|3[0-46-8]?\\d|4[0-7]?\\d|59\\d|8[125])\\d{4}",,,,"4012345",,,[6,7]],[,,"(?:15\\d|2(?:4\\d|8)|3[59]\\d{2}|4[89]\\d{2}|6[1-9]?\\d{2}|7(?:[1-8]\\d|9\\d{1,2})|8[08]\\d{2}|9(?:0[67]|[2-9])\\d)\\d{5}",,,,"71123456",,,[7,8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SO",252,"00","0",,,"0",,,,[[,"(\\d{6})","$1",["[134]"]],[,"(\\d)(\\d{6})","$1 $2",["2[0-79]|[13-5]"]],[,"(\\d)(\\d{7})","$1 $2",
+["24|[67]"]],[,"(\\d{2})(\\d{4})","$1 $2",["8[125]"]],[,"(\\d{2})(\\d{5,7})","$1 $2",["15|28|6[1-35-9]|799|9[2-9]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3[59]|4[89]|6[24-6]|79|8[08]|90"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SR:[,[,,"[2-8]\\d{5,6}",,,,,,,[6,7]],[,,"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}",,,,"211234"],[,,"(?:7[124-7]|8[1-9])\\d{5}",,,,"7412345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"56\\d{4}",,,,"561234",
+,,[6]],"SR",597,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1-$2",["[2-4]|5[2-58]"]],[,"(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],[,"(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SS:[,[,,"[19]\\d{8}",,,,,,,[9]],[,,"18\\d{7}",,,,"181234567"],[,,"(?:12|9[1257])\\d{7}",,,,"977123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SS",211,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,"0$1"]],,[,,
+,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ST:[,[,,"[29]\\d{6}",,,,,,,[7]],[,,"22\\d{5}",,,,"2221234"],[,,"9(?:0(?:0[5-9]|[1-9]\\d)|[89]\\d{2})\\d{3}",,,,"9812345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ST",239,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SV:[,[,,"[267]\\d{7}|[89]\\d{6}(?:\\d{4})?",,,,,,,[7,8,11]],[,,"2[1-6]\\d{6}",,,,"21234567",,,[8]],[,,"[67]\\d{7}",
+,,,"70123456",,,[8]],[,,"800\\d{4}(?:\\d{4})?",,,,"8001234",,,[7,11]],[,,"900\\d{4}(?:\\d{4})?",,,,"9001234",,,[7,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SV",503,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[267]"]],[,"(\\d{3})(\\d{4})","$1 $2",["[89]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SX:[,[,,"[5789]\\d{9}",,,,,,,[10],[7]],[,,"7215(?:4[2-8]|8[239]|9[056])\\d{4}",,,,"7215425678",,,,[7]],[,,"7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}",
+,,,"7215205678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"SX",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"721",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SY:[,[,,"[1-59]\\d{7,8}",,,,,,,[8,9],[6,7]],[,,"(?:1(?:1\\d?|4\\d|[2356])|2(?:1\\d?|[235])|3(?:[13]\\d|4)|4[13]|5[1-3])\\d{6}",,,,"112345678",,,,[6,7]],[,,"9(?:22|[3-589]\\d|6[024-9])\\d{6}",
+,,,"944567890",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SY",963,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-5]"],"0$1",,1],[,"(9\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SZ:[,[,,"[027]\\d{7}",,,,,,,[8]],[,,"2[2-5]\\d{6}",,,,"22171234"],[,,"7[6-8]\\d{6}",,,,"76123456"],[,,"0800\\d{4}",,,,"08001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,
+,,,,,,,[-1]],"SZ",268,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[027]"]]],,[,,,,,,,,,[-1]],,,[,,"0800\\d{4}",,,,"08001234"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TA:[,[,,"8\\d{3}",,,,,,,[4]],[,,"8\\d{3}",,,,"8999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TA",290,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TC:[,[,,"[5689]\\d{9}",,,,,,,[10],[7]],[,,"649(?:712|9(?:4\\d|50))\\d{4}",,,,"6497121234",,,,[7]],[,
+,"649(?:2(?:3[129]|4[1-7])|3(?:3[1-389]|4[1-8])|4[34][1-3])\\d{4}",,,,"6492311234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"64971[01]\\d{4}",,,,"6497101234",,,,[7]],"TC",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"649",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TD:[,[,,"[2679]\\d{7}",,,,,,,[8]],[,,"22(?:[3789]0|5[0-5]|6[89])\\d{4}",,,,"22501234"],[,,"(?:6[023568]\\d|77\\d|9\\d{2})\\d{5}",
+,,,"63012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TD",235,"00|16",,,,,,"00",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TG:[,[,,"[29]\\d{7}",,,,,,,[8]],[,,"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}",,,,"22212345"],[,,"9[0-36-9]\\d{6}",,,,"90112345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TG",228,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
+"$1 $2 $3 $4",["[29]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TH:[,[,,"[2-9]\\d{7,8}|1\\d{3}(?:\\d{5,6})?",,,,,,,[4,8,9,10]],[,,"(?:2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}",,,,"21234567",,,[8]],[,,"(?:14|6[1-6]|[89]\\d)\\d{7}",,,,"812345678",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,"1900\\d{6}",,,,"1900123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"6[08]\\d{7}",,,,"601234567",,,[9]],"TH",66,"00","0",,,"0",,,,[[,"(2)(\\d{3})(\\d{4})","$1 $2 $3",["2"],
+"0$1"],[,"([13-9]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["14|[3-9]"],"0$1"],[,"(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3",["1"],"$1"]],,[,,,,,,,,,[-1]],,,[,,"1\\d{3}",,,,"1100",,,[4]],[,,"1\\d{3}",,,,"1100",,,[4]],,,[,,,,,,,,,[-1]]],TJ:[,[,,"[3-57-9]\\d{8}",,,,,,,[9],[3,5,7]],[,,"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}",,,,"372123456",,,,[3,5,7]],[,,"(?:41[18]|(?:5[05]|77|88|9[0-35-9])\\d)\\d{6}",,,,"917123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,
+,,,,,,[-1]],"TJ",992,"810","8",,,"8",,"8~10",,[[,"([349]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"],"$1",,1],[,"([457-9]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[148]|[578]|9(?:1[59]|[0235-9])"],"$1",,1],[,"(331700)(\\d)(\\d{2})","$1 $2 $3",["331","3317","33170","331700"],"$1",,1],[,"(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3[1-5]","3(?:[1245]|3(?:[02-9]|1[0-589]))"],"$1",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TK:[,[,,"[2-47]\\d{3,6}",,,,,,,[4,5,6,7]],[,,"(?:2[2-4]|[34]\\d)\\d{2,5}",
+,,,"3101"],[,,"7[2-4]\\d{2,5}",,,,"7290"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TK",690,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TL:[,[,,"[2-489]\\d{6}|7\\d{6,7}",,,,,,,[7,8]],[,,"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}",,,,"2112345",,,[7]],[,,"7[3-8]\\d{6}",,,,"77212345",,,[8]],[,,"80\\d{5}",,,,"8012345",,,[7]],[,,"90\\d{5}",,,,"9012345",,,[7]],[,,,,,,,,,[-1]],[,,"70\\d{5}",,,,"7012345",,,[7]],[,,,,,,,,,[-1]],"TL",670,"00",
+,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],[,"(\\d{4})(\\d{4})","$1 $2",["7[3-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TM:[,[,,"[1-6]\\d{7}",,,,,,,[8]],[,,"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}",,,,"12345678"],[,,"6[1-9]\\d{6}",,,,"66123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TM",993,"810","8",,,"8",,"8~10",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
+"$1 $2-$3-$4",["12"],"(8 $1)"],[,"(\\d{2})(\\d{6})","$1 $2",["6"],"8 $1"],[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["13|[2-5]"],"(8 $1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TN:[,[,,"[2-57-9]\\d{7}",,,,,,,[8]],[,,"3(?:[012]\\d|6[0-4]|91)\\d{5}|7\\d{7}|81200\\d{3}",,,,"71234567"],[,,"(?:[259]\\d|4[0-6])\\d{6}",,,,"20123456"],[,,"8010\\d{4}",,,,"80101234"],[,,"88\\d{6}",,,,"88123456"],[,,"8[12]10\\d{4}",,,,"81101234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TN",216,
+"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TO:[,[,,"[02-8]\\d{4,6}",,,,,,,[5,7]],[,,"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}",,,,"20123",,,[5]],[,,"(?:7[578]|8[47-9])\\d{5}",,,,"7715123",,,[7]],[,,"0800\\d{3}",,,,"0800222",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TO",676,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1-$2",["[1-6]|7[0-4]|8[05]"]],[,"(\\d{3})(\\d{4})","$1 $2",["7[5-9]|8[47-9]"]],
+[,"(\\d{4})(\\d{3})","$1 $2",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TR:[,[,,"[2-589]\\d{9}|444\\d{4}",,,,,,,[7,10]],[,,"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}",,,,"2123456789",,,[10]],[,,"5(?:(?:0[1-7]|22|[34]\\d|5[1-59]|9[246])\\d{2}|6161)\\d{5}",,,,"5012345678",,,[10]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,
+,,,,,,,[-1]],[,,,,,,,,,[-1]],"TR",90,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[23]|4(?:[0-35-9]|4[0-35-9])"],"(0$1)",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[02-69]"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["51|[89]"],"0$1",,1],[,"(444)(\\d{1})(\\d{3})","$1 $2 $3",["444"]]],,[,,"512\\d{7}",,,,"5123456789",,,[10]],,,[,,"444\\d{4}",,,,"4441444",,,[7]],[,,"444\\d{4}|850\\d{7}",,,,"4441444"],,,[,,,,,,,,,[-1]]],TT:[,[,,"[589]\\d{9}",,,,,,,[10],
+[7]],[,,"868(?:2(?:01|[23]\\d)|6(?:0[79]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}",,,,"8682211234",,,,[7]],[,,"868(?:2(?:6[6-9]|[789]\\d)|3(?:0[1-9]|1[02-9]|[2-9]\\d)|4[6-9]\\d|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}",,,,"8682911234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"TT",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"868",[,
+,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"868619\\d{4}",,,,"8686191234",,,,[7]]],TV:[,[,,"[279]\\d{4,6}",,,,,,,[5,6,7]],[,,"2[02-9]\\d{3}",,,,"20123",,,[5]],[,,"(?:70\\d|90)\\d{4}",,,,"901234",,,[6,7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TV",688,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TW:[,[,,"2\\d{6,8}|[3-689]\\d{7,8}|7\\d{7,9}",,,,,,,[7,8,9,10]],[,,"2(?:[235-8]\\d{7}|4\\d{6,7})|[3-8]\\d{7,8}",,,,"221234567",,,[8,9]],
+[,,"9\\d{8}",,,,"912345678",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"20(?:2|[013-9]\\d{2})\\d{4}",,,,"203123456",,,[7,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678",,,[10]],"TW",886,"0(?:0[25679]|19)","0","#",,"0",,,,[[,"(20)(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],[,"(20)(\\d{3})(\\d{4})","$1 $2 $3",["20[013-9]"],"0$1"],[,"([2-8])(\\d{3,4})(\\d{4})","$1 $2 $3",["2[23-8]|[3-6]|[78][1-9]"],"0$1"],[,"([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["80|9"],"0$1"],[,"(70)(\\d{4})(\\d{4})",
+"$1 $2 $3",["70"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TZ:[,[,,"\\d{9}",,,,,,,[7,9]],[,,"2[2-8]\\d{7}",,,,"222345678"],[,,"(?:6[2-9]|7[13-9])\\d{7}",,,,"621234567",,,[9]],[,,"80[08]\\d{6}",,,,"800123456",,,[9]],[,,"90\\d{7}",,,,"900123456",,,[9]],[,,"8(?:40|6[01])\\d{6}",,,,"840123456",,,[9]],[,,,,,,,,,[-1]],[,,"41\\d{7}",,,,"412345678",,,[9]],"TZ",255,"00[056]","0",,,"0",,,,[[,"([24]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],[,"([67]\\d{2})(\\d{3})(\\d{3})",
+"$1 $2 $3",["[67]"],"0$1"],[,"([89]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"(?:8(?:[04]0|6[01])|90\\d)\\d{6}",,,,"800123456",,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UA:[,[,,"[3-9]\\d{8}",,,,,,,[9],[5,6,7]],[,,"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}",,,,"311234567",,,,[5,6,7]],[,,"(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}",,,,"391234567"],[,,"800\\d{6}",,,,"800123456"],[,,"900[2-49]\\d{5}",,,,"900212345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"89\\d{7}",,,,"891234567"],
+"UA",380,"00","0",,,"0",,"0~0",,[[,"([3-9]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[38]9|4(?:[45][0-5]|87)|5(?:0|6[37]|7[37])|6[36-8]|7|9[1-9]","[38]9|4(?:[45][0-5]|87)|5(?:0|6(?:3[14-7]|7)|7[37])|6[36-8]|7|9[1-9]"],"0$1"],[,"([3-689]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["3[1-8]2|4[13678]2|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90","3(?:[1-46-8]2[013-9]|52)|4(?:[1378]2|62[013-9])|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90"],"0$1"],[,"([3-6]\\d{3})(\\d{5})","$1 $2",["3(?:5[013-9]|[1-46-8])|4(?:[137][013-9]|6|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6[0135-9]|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])",
+"3(?:5[013-9]|[1-46-8](?:22|[013-9]))|4(?:[137][013-9]|6(?:[013-9]|22)|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6(?:3[02389]|[015689])|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UG:[,[,,"\\d{9}",,,,,,,[9],[5,6,7]],[,,"20(?:[0147]\\d{2}|2(?:40|[5-9]\\d)|3(?:0[0-4]|[23]\\d)|5[0-4]\\d|6[035-9]\\d|8[0-2]\\d)\\d{4}|[34]\\d{8}",,,,"312345678",,,,[5,6,7]],[,,"7(?:(?:0[0-7]|[15789]\\d|30|4[0-4])\\d|2(?:[03]\\d|60))\\d{5}",,,,
+"712345678"],[,,"800[123]\\d{5}",,,,"800123456"],[,,"90[123]\\d{6}",,,,"901123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{3})(\\d{6})","$1 $2",["[7-9]|20(?:[013-8]|2[5-9])|4(?:6[45]|[7-9])"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["3|4(?:[1-5]|6[0-36-9])"],"0$1"],[,"(2024)(\\d{5})","$1 $2",["2024"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],US:[,[,,"[2-9]\\d{9}",,,,,,,[10],[7]],[,,"(?:2(?:0[1-35-9]|1[02-9]|2[04589]|3[149]|4[08]|5[1-46]|6[0279]|7[026]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[67]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[16]|5[017]|6[0-279]|78|8[012])|7(?:0[1-46-8]|1[02-9]|2[0457]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[014678]|4[0179]|5[12469]|7[0-3589]|8[0459]))[2-9]\\d{6}",
+,,,"2015550123",,,,[7]],[,,"(?:2(?:0[1-35-9]|1[02-9]|2[04589]|3[149]|4[08]|5[1-46]|6[0279]|7[026]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[67]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[16]|5[017]|6[0-279]|78|8[012])|7(?:0[1-46-8]|1[02-9]|2[0457]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[014678]|4[0179]|5[12469]|7[0-3589]|8[0459]))[2-9]\\d{6}",
+,,,"2015550123",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"US",1,"011","1",,,"1",,,1,[[,"(\\d{3})(\\d{4})","$1-$2",,,,1],[,"(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",,,,1]],[[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3"]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UY:[,[,,"[2489]\\d{6,7}",,,,,,,[7,8]],[,,"2\\d{7}|4[2-7]\\d{6}",,
+,,"21231234",,,[8],[7]],[,,"9[1-9]\\d{6}",,,,"94231234",,,[8]],[,,"80[05]\\d{4}",,,,"8001234",,,[7]],[,,"90[0-8]\\d{4}",,,,"9001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UY",598,"0(?:1[3-9]\\d|0)","0"," int. ",,"0",,"00",,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9[1-9]"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["[89]0"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UZ:[,[,,"[679]\\d{8}",,,,,,,[9],[7]],[,,"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|1[12]\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}",
+,,,"662345678",,,,[7]],[,,"6(?:1(?:2(?:98|2[01])|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:11\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4])|7\\d{2})|5(?:19[01]|2(?:27|9[26])|30\\d|59\\d|7\\d{2})|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|3[79]\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79])|9[0-3]\\d)|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|5\\d|3[01]|7[0-4])|5[67]\\d|6(?:2[0-26]|8\\d)|7\\d{2}))\\d{4}|7(?:0\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|33\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078])|9[4-6]\\d)|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0127]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[05629]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07])))\\d{4}|9[0-57-9]\\d{7}",
+,,,"912345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UZ",998,"810","8",,,"8",,"8~10",,[[,"([679]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"8 $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VA:[,[,,"(?:0(?:878\\d{5}|6698\\d{5})|[1589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9}))",,,,,,,[6,8,9,10,11]],[,,"06698\\d{5}",,,,"0669812345",,,[10]],[,,"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})",,,,"3123456789",,,[9,10,11]],[,,"80(?:0\\d{6}|3\\d{3})",
+,,,"800123456",,,[6,9]],[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|4(?:[0-4]\\d{2}|[5-9]\\d{4})|5(?:[0-4]\\d{2}|[5-9]\\d{6})|9\\d{6})",,,,"899123456",,,[6,8,9,10]],[,,"84(?:[08]\\d{6}|[17]\\d{3})",,,,"848123456",,,[6,9]],[,,"1(?:78\\d|99)\\d{6}",,,,"1781234567",,,[9,10]],[,,"55\\d{8}",,,,"5512345678",,,[10]],"VA",39,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,"848\\d{6}",,,,"848123456",,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VC:[,[,,"[5789]\\d{9}",,,,,,,[10],[7]],[,,"784(?:266|3(?:6[6-9]|7\\d|8[0-24-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}",
+,,,"7842661234",,,,[7]],[,,"784(?:4(?:3[0-4]|5[45]|89|9[0-58])|5(?:2[6-9]|3[0-4]))\\d{4}",,,,"7844301234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VC",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"784",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VE:[,[,,"[24589]\\d{9}",,,,,,,[10],[7]],[,,"(?:2(?:12|3[457-9]|[58][1-9]|[467]\\d|9[1-6])|50[01])\\d{7}",
+,,,"2121234567",,,,[7]],[,,"4(?:1[24-8]|2[46])\\d{7}",,,,"4121234567"],[,,"800\\d{7}",,,,"8001234567"],[,,"900\\d{7}",,,,"9001234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"VE",58,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{7})","$1-$2",,"0$1","$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VG:[,[,,"[2589]\\d{9}",,,,,,,[10],[7]],[,,"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})",,,,"2842291234",,,,[7]],[,,"284(?:(?:3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|54[0-57])\\d{4}|496[6-9]\\d{3})",
+,,,"2843001234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VG",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"284",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VI:[,[,,"[3589]\\d{9}",,,,,,,[10],[7]],[,,"340(?:2(?:01|2[0678]|44|77)|3(?:32|44)|4(?:22|7[34])|5(?:1[34]|55)|6(?:26|4[23]|77|9[023])|7(?:1[2-589]|27|7\\d)|884|998)\\d{4}",,,,"3406421234",
+,,,[7]],[,,"340(?:2(?:01|2[0678]|44|77)|3(?:32|44)|4(?:22|7[34])|5(?:1[34]|55)|6(?:26|4[23]|77|9[023])|7(?:1[2-589]|27|7\\d)|884|998)\\d{4}",,,,"3406421234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|22|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VI",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],,"340",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VN:[,[,,"[167]\\d{6,9}|[2-59]\\d{7,9}|8\\d{6,8}",
+,,,,,,[7,8,9,10]],[,,"(?:2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|[48][2-7]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])|4\\d|5(?:0[01]|[5-9])|6(?:[0-46-8]|5[01])|7[0235])\\d{7}|8(?:[2-5]\\d|6[236]|7[13])\\d{6}",,,,"2101234567",,,[9,10]],[,,"(?:9\\d|1(?:2\\d|6[2-9]|8[68]|99))\\d{7}|8(?:6[89]|8\\d|9[89])\\d{6}",,,,"912345678",,,[9,10]],[,,"1800\\d{4,6}",,,,"1800123456",,,[8,9,10]],[,,"1900\\d{4,6}",,,,"1900123456",,,[8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"VN",84,"00","0",,,"0",,,,[[,"([17]99)(\\d{4})",
+"$1 $2",["[17]99"],"0$1",,1],[,"([48])(\\d{4})(\\d{4})","$1 $2 $3",["4|8(?:[2-5]|6[236]|7[13])"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{3,4})","$1 $2 $3",["2[48]|5[5-9]|6[0-46-8]|7[0235]"],"0$1",,1],[,"(80)(\\d{5})","$1 $2",["80"],"0$1",,1],[,"(69\\d)(\\d{4,5})","$1 $2",["69"],"0$1",,1],[,"(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2[0-35-79]|50|65"],"0$1",,1],[,"([89]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8(?:8|9[89])|9"],"0$1",,1],[,"(1[2689]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1(?:[26]|8[68]|99)"],
+"0$1",,1],[,"(86[89])(\\d{3})(\\d{3})","$1 $2 $3",["86[89]"],"0$1",,1],[,"(1[89]00)(\\d{4,6})","$1 $2",["1[89]0"],"$1",,1]],,[,,,,,,,,,[-1]],,,[,,"[17]99\\d{4}|69\\d{5,6}",,,,"1992000",,,[7,8]],[,,"[17]99\\d{4}|69\\d{5,6}|80\\d{5}",,,,"1992000",,,[7,8]],,,[,,,,,,,,,[-1]]],VU:[,[,,"[2-57-9]\\d{4,6}",,,,,,,[5,7]],[,,"(?:2[02-9]\\d|3(?:[5-7]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}",,,,"22123",,,[5]],[,,"(?:5(?:7[2-5]|[0-689]\\d)|7[013-7]\\d)\\d{4}",,,,"5912345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,
+,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"VU",678,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[579]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"3[03]\\d{3}|900\\d{4}",,,,"30123"],,,[,,,,,,,,,[-1]]],WF:[,[,,"[4-8]\\d{5}",,,,,,,[6]],[,,"(?:50|68|72)\\d{4}",,,,"501234"],[,,"(?:50|68|72|8[23])\\d{4}",,,,"501234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"WF",681,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+,,[,,"[48]0\\d{4}",,,,"401234"]],WS:[,[,,"[2-8]\\d{4,6}",,,,,,,[5,6,7]],[,,"(?:[2-5]\\d|6[1-9]|84\\d{2})\\d{3}",,,,"22123",,,[5,7]],[,,"(?:60|7[25-7]\\d)\\d{4}",,,,"601234",,,[6,7]],[,,"800\\d{3}",,,,"800123",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"WS",685,"0",,,,,,,,[[,"(8\\d{2})(\\d{3,4})","$1 $2",["8"]],[,"(7\\d)(\\d{5})","$1 $2",["7"]],[,"(\\d{5})","$1",["[2-6]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YE:[,[,,"[1-7]\\d{6,8}",,,,
+,,,[7,8,9],[6]],[,,"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}",,,,"1234567",,,[7,8],[6]],[,,"7[0137]\\d{7}",,,,"712345678",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"YE",967,"00","0",,,"0",,,,[[,"([1-7])(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7[24-68]"],"0$1"],[,"(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7[0137]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YT:[,[,,"[268]\\d{8}",,,,,,,[9]],
+[,,"269(?:6[0-4]|50)\\d{4}",,,,"269601234"],[,,"639(?:0[0-79]|1[019]|[26]\\d|3[09]|[45]0|7[06]|9[04-79])\\d{4}",,,,"639012345"],[,,"80\\d{7}",,,,"801234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"YT",262,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,"269|63",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZA:[,[,,"[1-79]\\d{8}|8\\d{4,8}",,,,,,,[5,6,7,8,9]],[,,"(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}",,,,"101234567",,,[9]],[,,"(?:6\\d|7[0-46-9])\\d{7}|8(?:[1-4]\\d{1,5}|5\\d{5})\\d{2}",
+,,,"711234567"],[,,"80\\d{7}",,,,"801234567",,,[9]],[,,"86[2-9]\\d{6}|9[0-2]\\d{7}",,,,"862345678",,,[9]],[,,"860\\d{6}",,,,"860123456",,,[9]],[,,,,,,,,,[-1]],[,,"87\\d{7}",,,,"871234567",,,[9]],"ZA",27,"00","0",,,"0",,,,[[,"(860)(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],[,"(\\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{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-79]|8(?:[0-57]|6[1-9])"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"861\\d{6}",
+,,,"861123456",,,[9]],,,[,,,,,,,,,[-1]]],ZM:[,[,,"[289]\\d{8}",,,,,,,[9]],[,,"21[1-8]\\d{6}",,,,"211234567"],[,,"9(?:5[034589]|[67]\\d)\\d{6}",,,,"955123456"],[,,"800\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ZM",260,"00","0",,,"0",,,,[[,"([29]\\d)(\\d{7})","$1 $2",["[29]"],"0$1"],[,"(800)(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZW:[,[,,"2(?:[0-2457-9]\\d{3,8}|6(?:[14]\\d{7}|\\d{4}))|[13-79]\\d{4,9}|8[06]\\d{5,8}",
+,,,,,,[5,6,7,8,9,10],[3,4]],[,,"(?:2(?:0(?:4\\d|5\\d{2})|2[278]\\d|48\\d|7(?:[1-7]\\d|[089]\\d{2})|8(?:[2-57-9]|[146]\\d{2})|98)|3(?:08|17|3[78]|7(?:[19]|[56]\\d)|8[37]|98)|5[15][78]|6(?:28\\d{2}|37|6[78]|75\\d|98|8(?:7\\d|8)))\\d{3}|(?:2(?:1[39]|2[0157]|31|[56][14]|7[35]|84)|329)\\d{7}|(?:1(?:3\\d{2}|[4-8]|9\\d)|2(?:0\\d{2}|12|292|[569]\\d)|3(?:[26]|[013459]\\d)|5(?:0|1[2-4]|26|[37]2|5\\d{2}|[689]\\d)|6(?:[39]|[01246]\\d|[78]\\d{2}))\\d{3}|(?:29\\d|39|54)\\d{6}|(?:(?:25|54)83\\d|2582\\d{2}|65[2-8])\\d{2}|(?:4\\d{6,7}|9[2-9]\\d{4,5})",
+,,,"1312345",,,,[3,4]],[,,"(?:7(?:1[2-8]|3[2-9]|7[1-9]|8[2-5])|8644)\\d{6}",,,,"712345678",,,[9,10]],[,,"80(?:[01]\\d|20|8[0-8])\\d{3}",,,,"8001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"86(?:1[12]|30|55|77|8[368])\\d{6}",,,,"8686123456",,,[10]],"ZW",263,"00","0",,,"0",,,,[[,"([49])(\\d{3})(\\d{2,4})","$1 $2 $3",["4|9[2-9]"],"0$1"],[,"(7\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["7"],"0$1"],[,"(86\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["86[24]"],"0$1"],[,"([2356]\\d{2})(\\d{3,5})","$1 $2",
+["2(?:0[45]|2[278]|[49]8|[78])|3(?:08|17|3[78]|7[1569]|8[37]|98)|5[15][78]|6(?:[29]8|[38]7|6[78]|75|[89]8)"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|31|[56][14]|7[35]|84)|329"],"0$1"],[,"([1-356]\\d)(\\d{3,5})","$1 $2",["1[3-9]|2[02569]|3[0-69]|5[05689]|6\\d"],"0$1"],[,"([235]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[23]9|54"],"0$1"],[,"([25]\\d{3})(\\d{3,5})","$1 $2",["(?:25|54)8","258[23]|5483"],"0$1"],[,"(8\\d{3})(\\d{6})","$1 $2",["86"],"0$1"],[,"(80\\d)(\\d{4})","$1 $2",
+["80"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],800:[,[,,"\\d{8}",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"\\d{8}",,,,"12345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",800,,,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],808:[,[,,"\\d{8}",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"\\d{8}",,,,"12345678"],[,,,,,,,,,[-1]],[,,,,,,
+,,,[-1]],"001",808,,,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],870:[,[,,"[35-7]\\d{8}",,,,,,,[9]],[,,,,,,,,,[-1]],[,,"(?:[356]\\d|7[6-8])\\d{7}",,,,"301234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",870,,,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],878:[,[,,"1\\d{11}",,,,,,,[12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],
+[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"10\\d{10}",,,,"101234567890"],"001",878,,,,,,,,1,[[,"(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],881:[,[,,"[67]\\d{8}",,,,,,,[9]],[,,,,,,,,,[-1]],[,,"[67]\\d{8}",,,,"612345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",881,,,,,,,,,[[,"(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[67]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,
+,,[-1]],,,[,,,,,,,,,[-1]]],882:[,[,,"[13]\\d{6,11}",,,,,,,[7,8,9,10,11,12]],[,,,,,,,,,[-1]],[,,"3(?:2\\d{3}|37\\d{2}|4(?:2|7\\d{3}))\\d{4}",,,,"3421234",,,[7,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15678]|9[0689])\\d{4}|6\\d{5,10})|3(?:45|9\\d{3})\\d{7}",,,,"390123456789"],"001",882,,,,,,,,,[[,"(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],[,"(\\d{2})(\\d{5})","$1 $2",["16|342"]],[,"(\\d{2})(\\d{4})(\\d{4})",
+"$1 $2 $3",["34[57]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["348"]],[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["16"]],[,"(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["16|39"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"348[57]\\d{7}",,,,"34851234567",,,[11]]],883:[,[,,"51\\d{7}(?:\\d{3})?",,,,,,,[9,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"51(?:00\\d{5}(?:\\d{3})?|[13]0\\d{8})",
+,,,"510012345"],"001",883,,,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["510"]],[,"(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["51[13]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],888:[,[,,"\\d{11}",,,,,,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",888,,,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,
+,[-1]],[,,"\\d{11}",,,,"12345678901"],,,[,,,,,,,,,[-1]]],979:[,[,,"\\d{9}",,,,,,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"\\d{9}",,,,"123456789"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",979,,,,,,,,1,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]]};/*
+
+ Copyright (C) 2010 The Libphonenumber Authors.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+function Q(){this.a={}}Q.a=function(){return Q.b?Q.b:Q.b=new Q};
+var ya={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9"},Aa={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",
+7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9",A:"2",B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",
+Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},R=RegExp("^[+\uff0b]+"),Ba=RegExp("([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])"),Ca=RegExp("[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]"),Da=/[\\\/] *x/,Ea=RegExp("[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$"),Fa=/(?:.*?[A-Za-z]){3}.*/,Ga=RegExp("(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|[;,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)$",
+"i"),Ha=RegExp("^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|[;,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)?$",
+"i"),Ia=/(\$\d)/;function Ja(a){var b=a.search(Ca);0<=b?(a=a.substring(b),a=a.replace(Ea,""),b=a.search(Da),0<=b&&(a=a.substring(0,b))):a="";return a}function Ka(a){return 2>a.length?!1:S(Ha,a)}function La(a){return S(Fa,a)?Ma(a,Aa):Ma(a,ya)}function Na(a){var b=La(a.toString());a.b="";a.a(b)}function Oa(a){return!!a&&(1!=G(a,9)||-1!=D(a,9)[0])}function Ma(a,b){for(var c=new K,d,e=a.length,f=0;f<e;++f)d=a.charAt(f),d=b[d.toUpperCase()],null!=d&&c.a(d);return c.toString()}
+function Pa(a){return null!=a&&isNaN(a)&&a.toUpperCase()in xa}
+function Qa(a,b,c){if(0==B(b,2)&&null!=b.a[5]){var d=F(b,5);if(0<d.length)return d}var d=F(b,1),e=T(b);if(0==c)return Ra(d,0,e,"");if(!(d in P))return e;a=U(a,d,Sa(d));b=null!=b.a[3]&&B(b,3).length?3==c?";ext="+B(b,3):null!=a.a[13]?B(a,13)+F(b,3):" ext. "+F(b,3):"";a:{a=D(a,20).length&&2!=c?D(a,20):D(a,19);for(var f,g=a.length,h=0;h<g;++h){f=a[h];var k=G(f,3);if(!k||!e.search(B(f,3,k-1)))if(k=new RegExp(B(f,1)),S(k,e)){a=f;break a}}a=null}a&&(g=a,a=F(g,2),f=new RegExp(B(g,1)),F(g,5),g=F(g,4),e=2==
+c&&null!=g&&0<g.length?e.replace(f,a.replace(Ia,g)):e.replace(f,a),3==c&&(e=e.replace(RegExp("^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]+"),""),e=e.replace(RegExp("[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]+","g"),"-")));return Ra(d,c,e,b)}function U(a,b,c){return"001"==c?V(a,""+b):V(a,c)}
+function T(a){if(null==a.a[2])return"";var b=""+B(a,2);return null!=a.a[4]&&B(a,4)&&0<F(a,8)?Array(F(a,8)+1).join("0")+b:b}function Ra(a,b,c,d){switch(b){case 0:return"+"+a+c+d;case 1:return"+"+a+" "+c+d;case 3:return"tel:+"+a+"-"+c+d;default:return c+d}}
+function W(a,b){switch(b){case 4:return B(a,5);case 3:return B(a,4);case 1:return B(a,3);case 0:case 2:return B(a,2);case 5:return B(a,6);case 6:return B(a,8);case 7:return B(a,7);case 8:return B(a,21);case 9:return B(a,25);case 10:return B(a,28);default:return B(a,1)}}function Ta(a,b){return X(a,B(b,1))?X(a,B(b,5))?4:X(a,B(b,4))?3:X(a,B(b,6))?5:X(a,B(b,8))?6:X(a,B(b,7))?7:X(a,B(b,21))?8:X(a,B(b,25))?9:X(a,B(b,28))?10:X(a,B(b,2))?B(b,18)||X(a,B(b,3))?2:0:!B(b,18)&&X(a,B(b,3))?1:-1:-1}
+function V(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.a[b];if(!c){c=xa[b];if(!c)return null;c=(new ra).b(N.f(),c);a.a[b]=c}return c}function X(a,b){var c=a.length;return 0<G(b,9)&&-1==x(D(b,9),c)?!1:S(F(b,2),a)}function Ua(a,b){if(!b)return null;var c=F(b,1);if(c=P[c])if(1==c.length)c=c[0];else a:{for(var d=T(b),e,f=c.length,g=0;g<f;g++){e=c[g];var h=V(a,e);if(null!=h.a[23]){if(!d.search(B(h,23))){c=e;break a}}else if(-1!=Ta(d,h)){c=e;break a}}c=null}else c=null;return c}
+function Sa(a){return(a=P[a])?a[0]:"ZZ"}function Y(a,b,c,d){var e=W(c,d),f=G(e,9)?D(e,9):D(B(c,1),9),e=D(e,10);if(2==d)if(Oa(W(c,0)))a=W(c,1),Oa(a)&&(f=f.concat(G(a,9)?D(a,9):D(B(c,1),9)),y(f),e.length?(e=e.concat(D(a,10)),y(e)):e=D(a,10));else return Y(a,b,c,1);if(-1==f[0])return 5;b=b.length;if(-1<x(e,b))return 4;c=f[0];return c==b?0:c>b?2:f[f.length-1]<b?3:-1<x(f,b,1)?0:5}
+function Va(a,b,c,d,e,f){if(!b.length)return 0;b=new K(b);var g;c&&(g=B(c,11));null==g&&(g="NonMatch");var h=b.toString();if(h.length)if(R.test(h))h=h.replace(R,""),b.b="",b.a(La(h)),g=1;else{h=new RegExp(g);Na(b);g=b.toString();if(g.search(h))g=!1;else{var h=g.match(h)[0].length,k=g.substring(h).match(Ba);k&&null!=k[1]&&0<k[1].length&&"0"==Ma(k[1],ya)?g=!1:(b.b="",b.a(g.substring(h)),g=!0)}g=g?5:20}else g=20;e&&C(f,6,g);if(20!=g){if(2>=b.b.length)throw Error("Phone number too short after IDD");a:{a=
+b.toString();if(a.length&&"0"!=a.charAt(0))for(e=a.length,b=1;3>=b&&b<=e;++b)if(c=parseInt(a.substring(0,b),10),c in P){d.a(a.substring(b));d=c;break a}d=0}if(d)return C(f,1,d),d;throw Error("Invalid country calling code");}if(c&&(g=F(c,10),h=""+g,k=b.toString(),!k.lastIndexOf(h,0)&&(h=new K(k.substring(h.length)),k=B(c,1),k=new RegExp(F(k,2)),Wa(h,c,null),h=h.toString(),!S(k,b.toString())&&S(k,h)||3==Y(a,b.toString(),c,-1))))return d.a(h),e&&C(f,6,10),C(f,1,g),g;C(f,1,0);return 0}
+function Wa(a,b,c){var d=a.toString(),e=d.length,f=B(b,15);if(e&&null!=f&&f.length){var g=new RegExp("^(?:"+f+")");if(e=g.exec(d)){var f=new RegExp(F(B(b,1),2)),h=S(f,d),k=e.length-1;b=B(b,16);if(null!=b&&b.length&&null!=e[k]&&e[k].length){if(d=d.replace(g,b),!h||S(f,d))c&&0<k&&c.a(e[1]),a.set(d)}else if(!h||S(f,d.substring(e[0].length)))c&&0<k&&null!=e[k]&&c.a(e[1]),a.set(d.substring(e[0].length))}}}
+function Z(a,b,c){if(!Pa(c)&&0<b.length&&"+"!=b.charAt(0))throw Error("Invalid country calling code");return Xa(a,b,c,!0)}
+function Xa(a,b,c,d){if(null==b)throw Error("The string supplied did not seem to be a phone number");if(250<b.length)throw Error("The string supplied is too long to be a phone number");var e=new K,f=b.indexOf(";phone-context=");if(0<=f){var g=f+15;if("+"==b.charAt(g)){var h=b.indexOf(";",g);0<h?e.a(b.substring(g,h)):e.a(b.substring(g))}g=b.indexOf("tel:");e.a(b.substring(0<=g?g+4:0,f))}else e.a(Ja(b));f=e.toString();g=f.indexOf(";isub=");0<g&&(e.b="",e.a(f.substring(0,g)));if(!Ka(e.toString()))throw Error("The string supplied did not seem to be a phone number");
+f=e.toString();if(!(Pa(c)||null!=f&&0<f.length&&R.test(f)))throw Error("Invalid country calling code");f=new O;d&&C(f,5,b);a:{b=e.toString();g=b.search(Ga);if(0<=g&&Ka(b.substring(0,g)))for(var h=b.match(Ga),k=h.length,q=1;q<k;++q)if(null!=h[q]&&0<h[q].length){e.b="";e.a(b.substring(0,g));b=h[q];break a}b=""}0<b.length&&C(f,3,b);b=V(a,c);g=new K;h=0;k=e.toString();try{h=Va(a,k,b,g,d,f)}catch(z){if("Invalid country calling code"==z.message&&R.test(k)){if(k=k.replace(R,""),h=Va(a,k,b,g,d,f),!h)throw z;
+}else throw z;}h?(e=Sa(h),e!=c&&(b=U(a,h,e))):(Na(e),g.a(e.toString()),null!=c?(h=F(b,10),C(f,1,h)):d&&(delete f.a[6],f.b&&delete f.b[6]));if(2>g.b.length)throw Error("The string supplied is too short to be a phone number");b&&(c=new K,e=new K(g.toString()),Wa(e,b,c),2!=Y(a,e.toString(),b,-1)&&(g=e,d&&0<c.toString().length&&C(f,7,c.toString())));a=g.toString();d=a.length;if(2>d)throw Error("The string supplied is too short to be a phone number");if(17<d)throw Error("The string supplied is too long to be a phone number");
+if(1<a.length&&"0"==a.charAt(0)){C(f,4,!0);for(d=1;d<a.length-1&&"0"==a.charAt(d);)d++;1!=d&&C(f,8,d)}C(f,2,parseInt(a,10));return f}function S(a,b){var c="string"==typeof a?b.match("^(?:"+a+")$"):b.match(a);return c&&c[0].length==b.length?!0:!1};v("intlTelInputUtils",{});v("intlTelInputUtils.formatNumber",function(a,b,c){try{var d=Q.a(),e=Z(d,a,b);return Qa(d,e,"undefined"==typeof c?0:c)}catch(f){return a}});v("intlTelInputUtils.getExampleNumber",function(a,b,c){try{var d=Q.a(),e;a:{if(Pa(a)){var f=W(V(d,a),c);try{if(null!=f.a[6]){var g=B(f,6);e=Xa(d,g,a,!1);break a}}catch(h){}}e=null}return Qa(d,e,b?2:1)}catch(h){return""}});v("intlTelInputUtils.getExtension",function(a,b){try{return B(Z(Q.a(),a,b),3)}catch(c){return""}});
+v("intlTelInputUtils.getNumberType",function(a,b){try{var c=Q.a(),d;var e=Z(c,a,b),f=Ua(c,e),g=U(c,F(e,1),f);if(g){var h=T(e);d=Ta(h,g)}else d=-1;return d}catch(k){return-99}});
+v("intlTelInputUtils.getValidationError",function(a,b){try{var c=Q.a(),d;var e=Z(c,a,b),f=T(e),g=F(e,1);if(g in P){var h=U(c,g,Sa(g));d=Y(c,f,h,-1)}else d=1;return d}catch(k){return"Invalid country calling code"==k.message?1:"The string supplied did not seem to be a phone number"==k.message?4:"Phone number too short after IDD"==k.message||"The string supplied is too short to be a phone number"==k?2:"The string supplied is too long to be a phone number"==k.message?3:-99}});
+v("intlTelInputUtils.isValidNumber",function(a,b){try{var c=Q.a(),d=Z(c,a,b),e;var f=Ua(c,d),g=F(d,1),h=U(c,g,f),k;if(!(k=!h)){var q;if(q="001"!=f){var z,za=V(c,f);if(!za)throw Error("Invalid region code: "+f);z=F(za,10);q=g!=z}k=q}if(k)e=!1;else{var Ya=T(d);e=-1!=Ta(Ya,h)}return e}catch(Za){return!1}});v("intlTelInputUtils.numberFormat",{E164:0,INTERNATIONAL:1,NATIONAL:2,RFC3966:3});
+v("intlTelInputUtils.numberType",{FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3,PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1});v("intlTelInputUtils.validationError",{IS_POSSIBLE:0,INVALID_COUNTRY_CODE:1,TOO_SHORT:2,TOO_LONG:3,NOT_A_NUMBER:4});})();
\ No newline at end of file
diff --git a/src/components/loading/index.vue b/src/components/loading/index.vue
new file mode 100644
index 0000000..f7b2288
--- /dev/null
+++ b/src/components/loading/index.vue
@@ -0,0 +1,22 @@
+<template>
+    <div class="loading w-full h-full flex justify-center items-center loading">
+        <van-loading />
+    </div>
+</template>
+
+<script>
+import { Loading } from 'vant';
+export default {
+    name: 'LoadingComp',
+    components: {
+        [Loading.name]: Loading
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.loading {
+    background: rgba(0,0,0,0.6);
+}
+</style>
\ No newline at end of file
diff --git a/src/components/normal-head/index.vue b/src/components/normal-head/index.vue
new file mode 100644
index 0000000..aa251ac
--- /dev/null
+++ b/src/components/normal-head/index.vue
@@ -0,0 +1,41 @@
+<template>
+  <div id="normalHead">
+    <van-nav-bar
+        :border="false"
+        :title="title"
+        left-arrow
+        @click-left="onClickLeft">
+      <template #right>
+        <slot></slot>
+      </template>
+    </van-nav-bar>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "normal-head",
+  props: ['title', 'goHome', 'goAssetsCenter', 'goPerpetualContract', 'backFunc'],
+  methods: {
+    onClickLeft() {
+      if (this.goHome) {
+        this.$router.push('/');
+      } else if (this.goAssetsCenter) {
+        this.$router.push('/assetsCenter/assets');
+      }else if (this.goPerpetualContract){
+        this.$router.go(-2);
+      } else if (this.backFunc) {
+        this.backFunc()
+      } else {
+        this.$router.go(-1);
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .van-nav-bar__title{
+  color: #333;
+}
+</style>
diff --git a/src/components/order-nav/OrderNav.vue b/src/components/order-nav/OrderNav.vue
new file mode 100644
index 0000000..12de084
--- /dev/null
+++ b/src/components/order-nav/OrderNav.vue
@@ -0,0 +1,84 @@
+<template>
+  <div id="buy_nav" class="buy_nav">
+    <van-nav-bar :title="title" @click-left="onClickLeft" class="font-36 border-none">
+      <template #left>
+        <slot name="left">
+          <van-icon name="arrow-left" />
+        </slot>
+      </template>
+      <template #title>
+        <slot name="title"></slot>
+      </template>
+      <template #right>
+        <slot name="right"></slot>
+      </template>
+    </van-nav-bar>
+  </div>
+</template>
+
+<script>
+import { NavBar, Icon } from 'vant';
+export default {
+  name: "OrderNav",
+  props: {
+    title: {
+
+    },
+    state: {
+
+    },
+    // 是否要路由返回
+    back: {
+      default: true,
+    }
+  },
+  data() {
+    return {
+
+    }
+  },
+  methods: {
+    // 返回
+    onClickLeft() {
+      if (this.back) {
+        this.$router.back();
+      } else {
+        this.$emit('back')
+      }
+    }
+  },
+  components: {
+    [NavBar.name]: NavBar,
+    [Icon.name]: Icon,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.buy_nav {
+  // ::v-deep .van-nav-bar {
+  //   @include themify() {
+  //     background: themed("main_background") !important;
+  //   }
+  // }
+  ::v-deep .van-nav-bar {
+    &:after {
+      border: none;
+    }
+  }
+
+  ::v-deep .van-icon {
+    font-size: 2rem;
+    color: green;
+
+    // @include themify() {
+    //   color: themed("c2c_color");
+    // }
+  }
+
+  ::v-deep .van-nav-bar__title {
+    font-size: 4rem;
+  }
+}
+</style>
diff --git a/src/components/otcCircle/index.vue b/src/components/otcCircle/index.vue
new file mode 100644
index 0000000..f39f149
--- /dev/null
+++ b/src/components/otcCircle/index.vue
@@ -0,0 +1,159 @@
+<template>
+  <div class="flex items-center justify-center otcCircle" style="position: relative">
+    <van-count-down @finish="finish" :time="fullTime" class="count font-24" format="mm:ss" @change="handleChange"/>
+    <div v-for="(item, index) in arr" :key="index" class="circle bg-blue" :class="handleClass(item)"></div>
+  </div>
+</template>
+
+<script>
+import {CountDown} from "vant";
+export default {
+  components: {
+    [CountDown.name]: CountDown,
+  },
+  name: "otcCircle",
+  props: ['time','expireTime'],
+  data() {
+    return {
+      // time: 2 * 60 * 1000, // 剩余时间 15分钟,
+      currentTime: '', // 当前时间
+      progress: '', // 进度
+      arr: [
+        {
+          value: 0,
+          active: false,
+          percent: 8.33
+        },
+        {
+          value: 30,
+          active: false,
+          percent: 16.66
+        },
+        {
+          value: 60,
+          active: false,
+          percent: 25
+        },
+        {
+          value: 90,
+          active: false,
+          percent: 33.33
+        },
+        {
+          value: 120,
+          active: false,
+          percent: 41.66
+        },
+        {
+          value: 150,
+          active: false,
+          percent: 50
+        },
+        {
+          value: 180,
+          active: false,
+          percent: 58.33
+        },
+        {
+          value: 210,
+          active: false,
+          percent: 66.66
+        },
+        {
+          value: 240,
+          active: false,
+          percent: 75
+        },
+        {
+          value: 270,
+          active: false,
+          percent: 83.33
+        },
+        {
+          value: 300,
+          active: false,
+          percent: 91.66
+        },
+        {
+          value: 330,
+          active: false,
+          percent: 100
+        }
+      ],
+    }
+  },
+  computed: {
+    fullTime() {
+      return this.time * 1 * 1000;
+      // return parseInt(this.time) * 60
+    }
+  },
+  methods: {
+    handleChange(e) {
+      let restTime = e.minutes * 60 * 1000 + e.seconds * 1000 + e.milliseconds // 剩余毫秒
+      this.progress = ((restTime / 1000) / this.expireTime  * 100).toFixed(0) // 进度
+      // console.log('进度', this.progress)
+      this.arr.forEach(item => {
+        if (this.progress >= item.percent) {
+          item.active = true
+        } else {
+          item.active = false
+        }
+      })
+    },
+    handleClass(item) {
+      let a = `circle${item.value}`
+      let b = item.active ? 'active' : ''
+      return a + ' ' + b
+    },
+    // 计时结束
+    finish() {
+      this.$emit('finish');
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.line{
+  width: 60px;
+  height: 60px;
+
+  border-radius: 50%;
+  position: relative;
+  //animation: myRotate 10s linear infinite;
+}
+
+@for $i from 0 through 400 {
+  .circle#{$i} {
+    transform: rotateZ(#{$i}deg) translateY(-5rem);
+  }
+}
+//.active {
+//  background: #ccc;
+//}
+.active {
+  background: #CCCCCC !important;
+}
+.count {
+  font-size: 2rem;
+}
+.circle{
+  position: absolute;
+  width: .8rem;
+  height:  2rem;
+  line-height: 60px;
+  text-align: center;
+  color: #fff;
+  border-radius: 2px;
+  left: 50%;
+  top: 50%;
+  margin-top: -13px;
+}
+.otcCircle{
+  ::v-deep .van-count-down{
+    color: #1D91FF;
+  }
+}
+</style>
diff --git a/src/router/index.js b/src/router/index.js
index d223757..78be28a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1097,60 +1097,155 @@
 					component: () => import( /* webpackChunkName: "quick" */ /* webpackPrefetch: true */
 						"@/views/cryptos/loan/loanRule.vue")
 				},
-				// {//c2c自选区我要买
-				//   path: '/wantBuy',
-				//   name: 'WantBuy',
-				//   component: () => import(/* webpackChunkName: "Home" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/wantBuy/index'),
-				// },
+				{//c2c自选区我要买
+				  path: '/wantBuy',
+				  name: 'WantBuy',
+				  component: () => import(/* webpackChunkName: "wantBuy" */ /* webpackPrefetch: true */'@/views/C2C/wantBuy.vue'),
+				},
 				// {//广告筛选
 				//   path: '/wantBuy/adScreening',
 				//   name: 'adScreening',
 				//   component: () => import(/* webpackChunkName: "adScreening" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/adScreening'),
 				// },
-				// {//c2c购买
-				//   path: '/wantBuy/c2cBuy',
-				//   name: 'c2cBuy',
-				//   component: () => import(/* webpackChunkName: "c2cBuy" */ /* webpackPrefetch: true */'@/page/c2c-trade/page/c2cBuy'),
-				// },
-				// {// c2c买卖交易
-				//   path: '/c2cTrade',
-				//   name: 'c2cTrade',
-				//   props(route) {
-				//     return {
-				//       ...route.query,
-				//     }
-				//   },
-				//   component: () => import(/* webpackChunkName: "c2cTrade" */ /* webpackPrefetch: true */'@/page/c2c-trade'),
-				// },
-				// {// c2c订单列表
-				//   path: '/wantBuy/c2cOrderList',
-				//   name: 'c2cOrderList',
-				//   component: () => import(/* webpackChunkName: "c2cOrderList" */ /* webpackPrefetch: true */"@/page/c2c-order-list"),
-				//   props(route) {
-				//     return {
-				//       ...route.query
-				//     }
-				//   }
-				// },
-				// {// c2c订单详情
-				//   path: '/tradeOrderDetail',
-				//   name: 'tradeOrderDetail',
-				//   component: () => import(/* webpackChunkName: "tradeOrderDetail" */ /* webpackPrefetch: true */"@/page/c2c-trade/page/tradeOrderDetail"),
-				// },
-				// {// 快捷区
-				//   path: '/wantBuy/quick',
-				//   name: 'quick',
-				//   component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/page/quick")
-				// },
-				// {// 选择法币
-				//   path: '/selectLegalCurrency',
-				//   name: 'selectLegalCurrency',
-				//   component: () => import(/* webpackChunkName: "selectLegalCurrency" */ /* webpackPrefetch: true */'@/page/selectLegalCurrency/index'),
-				// },
+				{//c2c购买
+				  path: '/wantBuy/c2cBuy',
+				  name: 'c2cBuy',
+				  component: () => import(/* webpackChunkName: "c2cBuy" */ /* webpackPrefetch: true */'@/views/C2C/c2c-trade/page/c2cBuy.vue'),
+				},
+				{// c2c买卖交易
+				  path: '/c2cTrade',
+				  name: 'c2cTrade',
+				  props(route) {
+				    return {
+				      ...route.query,
+				    }
+				  },
+				  component: () => import(/* webpackChunkName: "c2cTrade" */ /* webpackPrefetch: true */'@/views/C2C/c2c-trade/index.vue'),
+				},
+				{// c2c订单列表
+				  path: '/wantBuy/c2cOrderList',
+				  name: 'c2cOrderList',
+				  component: () => import(/* webpackChunkName: "c2cOrderList" */ /* webpackPrefetch: true */"@/views/C2C/c2c-order-list/index.vue"),
+				  props(route) {
+				    return {
+				      ...route.query
+				    }
+				  }
+				},
+				{// c2c订单详情
+				  path: '/tradeOrderDetail',
+				  name: 'tradeOrderDetail',
+				  component: () => import(/* webpackChunkName: "tradeOrderDetail" */ /* webpackPrefetch: true */"@/views/C2C/c2c-order-list/tradeOrderDetail.vue"),
+				},
+				{// c2c出售订单生成
+    			  path: '/sellGenerate',
+    			  component: () => import(/* webpackChunkName: "sellGenerate" */ /* webpackPrefetch: true */"@/views/C2C/c2c-trade/page/SellGenerate.vue"),
+    			  props(route) {
+    			    return {
+    			      ...route.query
+    			    }
+    			  }
+    			},
+				{// 确认收款
+    			  path: '/confirmedPaid',
+    			  meta: { keepAlive: true },
+    			  component: () => import(/* webpackChunkName: "confirmedPaid" */ /* webpackPrefetch: true */"@/views/C2C/c2cOrder/payment/ConfirmedPaid.vue")
+    			},
+				{
+    			  // c2c收款方式
+    			  path: '/c2cCollection',
+    			  component: () => import(/* webpackChunkName: "c2cCollection" */ /* webpackPrefetch: true */'@/views/C2C/c2c-trade/page/c2cCollection.vue'),
+    			  props(route) {
+    			    return {
+    			      ...route.query,
+    			    }
+    			  },
+    			},
+				{
+    			  // 取消订单
+    			  path: '/cancelOrder',
+    			  name: 'cancelOrder',
+    			  component: () => import(/* webpackChunkName: "cancelOrder" */ /* webpackPrefetch: true */'@/views/C2C/c2cOrder/cancel-order/cancelOrder.vue'),
+    			},
+				{// 快捷区
+				  path: '/wantBuy/quick',
+				  name: 'quick',
+				  component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/views/C2C/quick/index.vue")
+				},
+				{// 选择法币
+				  path: '/selectLegalCurrency',
+				  name: 'selectLegalCurrency',
+				  component: () => import(/* webpackChunkName: "selectLegalCurrency" */ /* webpackPrefetch: true */'@/views/C2C/selectLegalCurrency/index.vue'),
+				},
+				{// 广告商个人信息详情
+      				path: '/advertiserDetail',
+      				component: () => import(/* webpackChunkName: "advertiserDetail" */ /* webpackPrefetch: true */'@/views/advertiserDetail/index.vue'),
+      				props(route) {
+      				  return {
+      				    ...route.query
+      				  }
+      				}
+    			},
+				{// 广告商个人信息详情
+    			  path: '/advertiserDetail/detail',
+    			  component: () => import(/* webpackChunkName: "advertiserDetail" */ /* webpackPrefetch: true */'@/views/advertiserDetail/detail.vue'),
+    			},
+				{
+    			  // 生成订单详情页
+    			  path: '/orderGeneration',
+    			  name: 'orderGeneration',
+    			  component: () => import(/* webpackChunkName: "orderGeneration" */ /* webpackPrefetch: true */'@/views/C2C/c2cOrder/order-generation/index.vue'),
+    			  props(route) {
+    			    return {
+    			      ...route.query,
+    			    }
+    			  },
+    			},
+				{// 联系买家/卖家
+    			  path: '/chat',
+    			  component: () => import(/* webpackChunkName: "chat" */ /* webpackPrefetch: true */"@/views/chat/index.vue"),
+    			  props(route) {
+    			    return {
+    			      ...route
+    			    }
+    			  }
+    			},
+				{// 付款
+    			  path: '/paymentBuy',
+    			  name: 'paymentBuy',
+    			  component: () => import(/* webpackChunkName: "paymentBuy" */ /* webpackPrefetch: true */"@/views/C2C/c2cOrder/payment/PaymentBuy.vue"),
+    			},
+				{
+    			  // 申诉
+    			  path: '/appeal',
+    			  name: 'appeal',
+    			  component: () => import(/* webpackChunkName: "appeal" */ /* webpackPrefetch: true */'@/views/C2C/c2cOrder/appeal/index.vue'),
+    			},
+    			{
+    			  // 申诉成功
+    			  path: '/appeal/page',
+    			  name: 'appealSuccess',
+    			  component: () => import(/* webpackChunkName: "appealSuccess" */ /* webpackPrefetch: true */'@/views/C2C/c2cOrder/appeal/Appeal.vue'),
+    			},
+				{
+    			  //提现申请密码验证
+    			  path: "/withdraw/securityVerification",
+    			  name: "SecurityVerification",
+    			  meta: { index: 10 },
+    			  props(route) {
+    			    return {
+    			      ...route.query
+    			    }
+    			  },
+    			  component: () =>
+    			    import(
+    			          /* webpackChunkName: "SecurityVerification" */ /* webpackPrefetch: true */"@/views/C2C/withdraw/withdrawalSecurityVerification.vue"
+    			    ),
+    			},
 				// {// 收款方式
 				//   path: "/paymentMethod",
 				//   name: 'paymentMethod',
-				//   component: () => import(/* webpackChunkName: "paymentMethod" */ /* webpackPrefetch: true */"@/page/placeAnOrder/page/payment-method/PaymentMethod")
+				//   component: () => import(/* webpackChunkName: "paymentMethod" */ /* webpackPrefetch: true */"@/views/C2C/payment-method/PaymentMethod")
 				// },
 				//  {// 银行卡详情
 				//   path: '/wantBuy/bankCard',
@@ -1414,6 +1509,7 @@
 			name: 'payMentMethod',
 			// meta: { tarbar: true },
 			component: () => import('@/views/Layout.vue'),
+			redirect: '/payMentMethod/list',
 			children: [{
 					path: 'list',
 					meta: {
diff --git a/src/service/otc.js b/src/service/otc.js
index a78b32e..b44a202 100644
--- a/src/service/otc.js
+++ b/src/service/otc.js
@@ -1,5 +1,9 @@
+// import { httpJson } from "@/service/http";
+// import request from "@/service/request";
+
 import { httpJson } from "@/service/http";
-import request from "@/service/request";
+import request from './request'
+
 //获取 支付方式配置 列表
 const ctcPaymentMethodConfig = (params) => {
     return httpJson({
@@ -49,7 +53,7 @@
 //获取 用户支付方式列表(需匹配承兑商广告支付方式)
 const ctcPaymentMethodUserPay = (params) => {
     return httpJson({
-        url: "/api/c2cPaymentMethod!getUserPaymentsByAd.action",
+        url: "/api/paymentMethod/myList",
         method: "get",
         isLoading: false
     }, params)
@@ -186,7 +190,7 @@
 //获取 订单 详情
 const ctcOrderGetDetail = (params) => {
     return httpJson({
-        url: "/api/c2cOrder/apply",
+        url: "/api/c2cOrder/get",
         method: "get",
         isLoading: false
     }, params)
@@ -213,11 +217,12 @@
 
 //取消订单
 const ctcOrderCancel = (params) => {
-    return httpJson({
+    return request({
         url: "/api/c2cOrder/orderCancel",
-        method: "get",
-        isLoading: false
-    }, params)
+        method: "POST",
+        loading: false,
+        params
+    })
 };
 
 
@@ -386,7 +391,7 @@
 export const getSessionToken = params => {
     return httpJson({
         url: "/api/c2cOrder/orderOpen",
-        method: "get",
+        method: "post",
     }, params)
 }
 
@@ -466,6 +471,15 @@
     );
 };
 
+//支付完成
+const ctcOrderPayFinish = (params) => {
+    return httpJson({
+        url: "/api/c2cOrder!pay_finish.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
 
 const otcApi = {
     ctcPaymentMethodConfig,
@@ -478,7 +492,7 @@
     paymentMethodConfigDetail, getUserName,
     c2cGetPayCurrencyList,
     c2cAppeal,
-    c2cgetBestPrice
+    c2cgetBestPrice, ctcOrderPayFinish
 }
 
 export default otcApi
diff --git a/src/service/userCenter.js b/src/service/userCenter.js
index 7e73989..cde2ef0 100644
--- a/src/service/userCenter.js
+++ b/src/service/userCenter.js
@@ -204,11 +204,19 @@
         isLoading: false,
     }, params)
 };
+//判断后台是否开启谷歌验证
+const _getIsGoogleAuth = (params) => {
+    return httpJson({
+        url: "/api/syspara!getSyspara.action",
+        method: "get",
+        isLoading: false,
+    }, params)
+};
 
 const apiList = {
     changePassword, updatepsw, resetpsw, setSafewordReg, changeFundsPassword, getVerifTarget, getUserNameVerifTarget, setSafeword, bindEmail, bindPhone, getGoogleauth, bindGoogleauth, getSafewordApply, setSafewordApply,
     localuserAction, kycHighLevelApply, getKycHighLevel, getBanner,
-    getCms, _getNewsList, _getNewsList1, _getNews, _getPopupNews
+    getCms, _getNewsList, _getNewsList1, _getNews, _getPopupNews, _getIsGoogleAuth
 }
 
 export default apiList
diff --git a/src/service/withdraw.js b/src/service/withdraw.js
new file mode 100644
index 0000000..6a03dbf
--- /dev/null
+++ b/src/service/withdraw.js
@@ -0,0 +1,71 @@
+import { httpJson } from "./http";
+
+//获取可用usdt
+const GetUsdt = (params) => {
+    return httpJson({
+        url:"api/wallet!getUsdt.action",
+        method:"get",
+        isLoading:false
+    }, params)
+}
+
+//提现,进入页面,获取session_token
+const GetSessionToken = (params) => {
+    return httpJson({
+        url: "api/withdraw!withdraw_open.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
+//提现申请
+const WithdrawApply = (params) => {
+    return httpJson({
+        url: "api/withdraw!apply.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
+//提现手续费计算
+const WithdrawFee = (params) => {
+    return httpJson({
+        url: "api/withdraw!fee.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
+//提现限额
+const WithdrawLimit= (params) => {
+    return httpJson({
+        url: "api/withdraw!limit.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
+
+//提现列表
+const WithdrawList= (params) => {
+    return httpJson({
+        url: "api/withdraw!list.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
+
+//提现详情
+const WithdrawDetail= (params) => {
+    return httpJson({
+        url: "api/withdraw!get.action",
+        method: "get",
+        isLoading: false
+    }, params)
+};
+
+
+
+export default {GetUsdt,GetSessionToken, WithdrawApply, WithdrawFee,WithdrawLimit,WithdrawList, WithdrawDetail }
+
diff --git a/src/utils/list-load-mixins.js b/src/utils/list-load-mixins.js
new file mode 100644
index 0000000..ce327a7
--- /dev/null
+++ b/src/utils/list-load-mixins.js
@@ -0,0 +1,40 @@
+// import dayjs from "dayjs";
+
+export default {
+    data() {
+        return {
+            list: [], // 列表
+            loading: false,
+            finished: false,
+            isLoading: false,
+            form: { // 传递后端的参数
+                page_no: 1, // 分页
+                // start: dayjs().subtract(7, 'day').format('YYYY-MM-DD'), // 起始时间
+                // end: dayjs().format('YYYY-MM-DD') // 终点时间
+            }
+        }
+    },
+    methods: {
+        handleData(data) { // 往列表里拼接数据
+            console.log('列表', data)
+            this.isLoading = false;
+            this.list = this.list.concat(data)
+            this.loading = false
+            if (data.length < 20) { // 小于十条 说明就是最后一组数据
+                this.finished = true
+                console.log('没有更多数据了')
+            }
+            this.form.page_no++ // 翻页
+        },
+        onRefresh() { // 下拉刷新
+            console.log('refresh')
+            this.form.page_no = 1
+            this.list = []
+            this.get()
+        },
+        onLoad() {
+            console.log('onLoad')
+            this.get()
+        },
+    }
+}
diff --git a/src/views/C2C/c2c-order-list/SelectItem.vue b/src/views/C2C/c2c-order-list/SelectItem.vue
new file mode 100644
index 0000000..de1c954
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/SelectItem.vue
@@ -0,0 +1,38 @@
+<template>
+  <div>
+    <ul class="flex justify-between flex-wrap">
+      <li v-for="(item, index) in list" :key="index"
+        class="relative flex justify-center items-center w-232 h-82 rounded-xl box-border tabBackground c2cColor"
+        @click="itemClick(item)" :class="{ 'active': value === item.title }">
+        <img v-show="value === item.title" class="absolute top-0 right-0 w-full h-full"
+          src="@/assets/image/c2c/Group317.png" alt="">
+        {{ item.title }}
+      </li>
+    </ul>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: "SelectItem",
+  props: ['list', 'value'],
+  methods: {
+    itemClick(data) {
+      console.log(data);
+      this.$emit('select', data);
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+li {
+  margin-bottom: 30px;
+}
+
+.active {
+  border: 1px solid #1D91FF;
+}
+</style>
diff --git a/src/views/C2C/c2c-order-list/Unread.vue b/src/views/C2C/c2c-order-list/Unread.vue
new file mode 100644
index 0000000..5d0ef3e
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/Unread.vue
@@ -0,0 +1,61 @@
+<template>
+  <div class="flex flex-col w-full h-full">
+    <order-nav class="w-full" :back="false" :title="$t('未读消息')" @back="hiddenUnread" />
+    <div class="w-full flex-1 overflow-auto">
+      <van-list v-model="loading" :finished="finished" :finished-text="$t('已经全部加载完毕')" @load="onLoad">
+        <items v-for="(item, index) in list" :key="index" :items="item" />
+      </van-list>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  List,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import Items from "@/views/orderList/items.vue";
+
+export default {
+  name: "Unread",
+  props: ['data'],
+  data() {
+    return {
+      list: [],
+      loading: false,
+      finished: false,
+    }
+  },
+  methods: {
+    hiddenUnread() {
+      this.$emit('back')
+    },
+    onLoad() {
+      // 异步更新数据
+      // setTimeout 仅做示例,真实场景中一般为 ajax 请求
+      setTimeout(() => {
+        for (let i = 0; i < this.data.length; i++) {
+          this.list.push(this.data[i]);
+        }
+
+        // 加载状态结束
+        this.loading = false;
+
+        // 数据全部加载完成
+        if (this.list.length >= 10) {
+          this.finished = true;
+        }
+      }, 1000);
+    },
+  },
+  components: {
+    [List.name]: List,
+    OrderNav,
+    Items,
+  }
+}
+</script>
+
+<style scoped>
+@import "@/assets/css/copy2.scss";
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-order-list/components/Evaluation.vue b/src/views/C2C/c2c-order-list/components/Evaluation.vue
new file mode 100644
index 0000000..7a9fc4e
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/components/Evaluation.vue
@@ -0,0 +1,45 @@
+<template>
+  <div class="text-center">
+    <div class="pt-80 pb-50 font-28">
+      <slot name="desc"></slot>
+    </div>
+    <div class="flex justify-between px-72 ">
+      <div class="relative w-320 h-80 box-border py-16 border-radius">
+        好评
+        <div class="circle flex justify-center items-center">
+          <img class="w-32 h-32" src="@/assets/image/c2c/el_thumbs-up.png" alt="">
+        </div>
+      </div>
+      <div class="relative w-320 h-80 box-border py-16 border-radius">
+        差评
+        <div class="circle flex justify-center items-center">
+          <img class="w-32 h-32" src="@/assets/image/c2c/el_thumbs-up(2).png" alt="">
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "Evaluation"
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.border-radius {
+  border-radius: 60px;
+  background: #EAEBEE;
+}
+
+.circle {
+  position: absolute;
+  top: 4px;
+  left: 4px;
+  width: 72px;
+  height: 72px;
+  border-radius: 50%;
+  background: #fff;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-order-list/components/OrderData.vue b/src/views/C2C/c2c-order-list/components/OrderData.vue
new file mode 100644
index 0000000..8315c62
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/components/OrderData.vue
@@ -0,0 +1,128 @@
+<template>
+  <div class="order-data">
+    <div class="flex items-center font-31 mb-42 c2cColor">
+      <span class="title" :style="{ 'color': detail.direction === 'buy' ? '#2EBD85' : '#E35461' }">
+        {{ detail.direction === 'buy' ? $t('购买') : $t('卖出') }}
+      </span>
+      <span class="mx-15">{{ detail.symbol && detail.symbol.toUpperCase() }}</span>
+      <img class="w-36 h-36" src="@/assets/image/c2c/U1.png" alt="">
+    </div>
+    <van-cell-group>
+      <van-cell :title="$t('总额')">
+        <template #default>
+          <h2 class="font-700 font-36">{{ currencySymbol }} {{ detail.amount }}</h2>
+        </template>
+      </van-cell>
+      <van-cell :title="$t('单价')">
+        <template #default>
+          <span>{{ currencySymbol }} </span>
+          <span>{{ detail.symbolValue }}</span>
+        </template>
+      </van-cell>
+      <van-cell :title="$t('数量')"
+        :value="`${detail.symbol == 'usdt' ? Math.floor(detail.coinAmount * 100) / 100 : Math.floor(detail.coinAmount * 1000000) / 1000000} ${detail.symbol && detail.symbol.toUpperCase()}`" />
+      <slot name="default"></slot>
+      <van-cell class="order-number">
+        <template v-slot:title>
+          <div class="w-100">{{ $t('订单号') }}</div>
+        </template>
+        <div class="flex justify-end">
+          <span class="mr-14">{{ detail.orderNo }}</span>
+          <img class="relative top-1 w-30 h-34" src="@/assets/image/c2c/Group1168.png" alt=""
+            @click="copy(detail.orderNo)">
+        </div>
+      </van-cell>
+      <van-cell v-if="detail.createTime" :title="$t('创建时间')" :value="detail.createTime" />
+      <van-cell v-if="detail.sellerName">
+        <template #title>
+          <span>{{ clientType }}</span>
+        </template>
+        <template #default>
+          <span class="mr-20">{{ sellerName }}</span>
+          <van-icon class="font-700 text-grey" name="arrow" />
+        </template>
+      </van-cell>
+    </van-cell-group>
+  </div>
+</template>
+
+<script>
+import {
+  mapState,
+  mapGetters
+} from "vuex";
+import { Cell, CellGroup, Icon, showToast } from "vant"
+import useClipboard from "vue-clipboard3";
+const { toClipboard } = useClipboard();
+
+export default {
+  name: "OrderDate",
+  // props: ['count', 'totalPrice', 'orderNumber', 'sellerName', 'createOrderTime'],
+  props: {
+    clientType: {
+      default: '卖家昵称'
+    },
+    detail: {
+      type: Object,
+      default() {
+        return {}
+      }
+    },
+    // // count: {},
+    // totalPrice: {},
+    // // orderNumber: {},
+    // sellerName: {},
+    // createOrderTime: {},
+    // unitPrice: {
+    //   // required: true,
+    // }
+  },
+  filters: {
+    format(time) {
+      const _time = new Date(time)
+      return [_time.getFullYear(), _time.getMonth() + 1, _time.getDate()].join('/') + ' ' + [_time.getHours(), _time.getMinutes(), _time.getSeconds()].join(":")
+    }
+  },
+  methods: {
+    async copy(text) {
+      await toClipboard(text);
+      showToast(this.$t('copySuccess'));
+    }
+  },
+  computed: {
+    ...mapState('home', ['currency']),
+    ...mapGetters('c2c', ['currencySymbol'])
+  },
+  components: {
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Icon.name]: Icon,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+::v-deep .van-cell {
+  margin-bottom: 46px;
+}
+
+::v-deep .order-number {
+  .van-cell__title {
+    flex: inherit;
+  }
+}
+
+.order-data {
+  ::v-deep .van-cell-group,
+  .van-cell {
+    margin-bottom: 46px;
+    color: $text_color;
+    background: $main_background;
+  }
+
+  ::v-deep .van-cell__value {
+    color: $text_color;
+  }
+}
+</style>
diff --git a/src/views/C2C/c2c-order-list/components/TradeSuccessDetail.vue b/src/views/C2C/c2c-order-list/components/TradeSuccessDetail.vue
new file mode 100644
index 0000000..e138a1f
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/components/TradeSuccessDetail.vue
@@ -0,0 +1,215 @@
+<template>
+  <div id="full" style="z-index: 100;overflow: auto;"
+    class="fixed top-0 left-0 w-full h-full c2cBackground1 tradeSuccessDetail">
+    <div :class="orderDetail.state == 3 ? 'green' : 'greyBg'">
+      <order-nav :back="back" :class="orderDetail.state == 3 ? 'green' : 'greyBg'" @back="$router.replace('/wantBuy')">
+        <template #left>
+          <van-icon name="arrow-left" class="arrow-left-icon" />
+        </template>
+        <template #right>
+          <div class="flex items-center chat flex justify-center" @click="$router.push({
+            path: '/chat'
+          })">
+            <van-badge class="w-35 h-33 mr-22">
+              <img class="w-full h-full" v-if="orderDetail.state == 3" src="@/assets/image/c2c/Vector-white.png"
+                alt="" />
+              <img class="w-full h-full" v-else src="@/assets/image/c2c/Vector-black.png" alt="" />
+            </van-badge>
+            <span class="font-28" :class="orderDetail.state == 3 ? 'text-white' : 'c2cColor'">
+              <span>{{ orderDetail.direction == 'buy' ? $t('联系卖家') : $t('联系买家') }}</span>
+            </span>
+          </div>
+        </template>
+      </order-nav>
+      <div class="flex justify-between items-center mt-20 px-32 pb-50 text-white">
+        <div>
+          <div class="font-52" :class="orderDetail.state != 3 ? 'c2cColor' : ''">{{ fixStr() }}</div>
+          <div class="mt-26 font-26" v-if="orderDetail.state == 3">
+            {{ $t('您已成功') }}&nbsp;{{ orderDetail.direction == 'buy' ? $t('购买') : $t('出售') }}&nbsp;{{
+              orderDetail.symbol.toLowerCase() == 'usdt' ? Math.floor(orderDetail.amountUsdt * 100) / 100 :
+              Math.floor(orderDetail.amountUsdt * 10000) / 10000 }}&nbsp;{{ orderDetail.symbol.toUpperCase() }}
+          </div>
+          <div class="mt-26 font-26 c2cColor" v-else>{{ fixText() }}</div>
+        </div>
+        <div>
+          <img v-if="orderDetail.state == 3" class="w-92 h-92" src="@/assets/image/c2c/Group181.png" alt="">
+          <img v-else class="w-92 h-92" src="@/assets/image/c2c/Group1212.png" alt="">
+        </div>
+      </div>
+    </div>
+    <div class="pt-46 pb-30 c2cTabBackground">
+      <order-data :detail="orderDetail">
+        <div class="w-full h-16 mb-40 diviLine"></div>
+      </order-data>
+    </div>
+    <div class="px-32 mt-16 mainBackground py-39">
+      <h2 class="font-400 font-30 c2cColor">{{ $t('交易方式') }}</h2>
+      <div class="flex items-center mt-28">
+        <div class="w-6 h-28 border-ra" style="background: #E7BB41;"></div>
+        <span class="ml-9 font-22 text-grey">{{ orderDetail.methodName }}</span>
+      </div>
+    </div>
+    <!--    <van-divider/>-->
+    <!--    <evaluation class="pb-60 bg-white">-->
+    <!--      <template #desc>-->
+    <!--        <slot name="desc"></slot>-->
+    <!--      </template>-->
+    <!--    </evaluation>-->
+    <div class="mt-16">
+      <div class="flex justify-between items-center h-100 px-32 mt-16 c2cTabBackground c2cColor" @click="tokefu">
+        <div>
+          <span class="font-30 c2cColor">{{ $t('联系客服') }}</span>
+        </div>
+        <div>
+          <van-icon name="arrow" class="font-700" />
+        </div>
+      </div>
+      <div class="flex justify-between items-center h-100 px-32 mt-16 c2cTabBackground c2cColor"
+        @click="$router.push('/Appeal')">
+        <div>
+          <span class="font-30 c2cColor">{{ $t('对订单存在疑问') }}</span>
+        </div>
+        <div>
+          <van-icon name="arrow" class="font-700" />
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  mapState
+} from "vuex";
+import {
+  Badge,
+  Divider,
+  Cell,
+  CellGroup,
+  Icon,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import OrderData from "./OrderData.vue";
+import Evaluation from "./Evaluation.vue";
+import otcApi from "@/service/otc";
+export default {
+  name: "TradeSuccessDetail",
+  props: ['title', 'back'],
+  data() {
+    return {
+      checked: false,
+      orderDetail: {},
+    }
+  },
+  components: {
+    [Badge.name]: Badge,
+    [Divider.name]: Divider,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Icon.name]: Icon,
+    OrderNav,
+    OrderData,
+    Evaluation,
+  },
+  async created() {
+    console.log(this.orderInfo)
+    const order_no = this.$store.state.c2c.order_no
+    const res = await otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale });
+    this.orderDetail = res.data;
+  },
+  methods: {
+    fixStr() {
+      let str = ''
+      if (this.orderDetail.state == 1) {
+        str = ''
+      } else if (this.orderDetail.state == 2) {
+        str = this.$t('申诉中')
+      } else if (this.orderDetail.state == 3) {
+        str = this.$t('已完成')
+      } else if (this.orderDetail.state == 4) {
+        str = this.$t('已取消')
+      } else if (this.orderDetail.state == 5) {
+        str = this.$t('已超时')
+      }
+      return str
+    },
+    fixText() {
+      let str = ''
+      if (this.orderDetail.state == 2) {
+        str = this.$t('您的订单正在申诉处理中')
+      } else if (this.orderDetail.state == 4) {
+        str = this.$t('您已取消订单')
+      } else if (this.orderDetail.state == 5) {
+        str = this.$t('您的订单已超时')
+      }
+      return str
+    },
+    tokefu() {
+      this.$router.push('/customerService')
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+@import "@/assets/css/copy2.scss";
+
+.tradeSuccessDetail {
+  .arrow-left-icon {
+    color: $text_color;
+  }
+
+
+  ::v-deep .van-nav-bar__right {
+    padding: 0;
+  }
+
+  ::v-deep .van-nav-bar__arrow {
+    color: $text_color;
+  }
+
+  ::v-deep .greyBg .van-nav-bar {
+    background:$grey_bg;
+  }
+
+  ::v-deep .green .van-nav-bar {
+    background: #2EBD85;
+  }
+
+  ::v-deep .van-cell {
+    padding: 0 32px !important;
+    background: $c2c_tab_background;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  ::v-deep .van-cell-group {
+    background: $c2c_tab_background;
+  }
+
+  ::v-deep .van-cell__title {
+    color: $text_color1;
+  }
+
+  ::v-deep .van-cell__value {
+    color: $text_color;
+  }
+}
+
+.switch {
+  transform: scale(.7) translateX(20px);
+}
+
+.chat {
+  width: 232px;
+  height: 64px;
+  border-radius: 36px 0px 0px 36px;
+}
+
+.green {
+  background: #2EBD85;
+}
+</style>
diff --git a/src/views/C2C/c2c-order-list/index.vue b/src/views/C2C/c2c-order-list/index.vue
new file mode 100644
index 0000000..e187c80
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/index.vue
@@ -0,0 +1,234 @@
+<template>
+  <div class="flex flex-col w-full h-full c2c-order-list">
+    <div>
+      <order-nav class="w-full" :title="$t('订单列表')" ref="nav">
+        <template #right>
+          <img class="w-24 h-27" src="@/assets/image/c2c/Vector27.png" alt="" @click="selectShow = true">
+        </template>
+      </order-nav>
+    </div>
+    <div class="flex-1 w-full overflow-auto">
+      <div v-if="isEmpty === 'true'" class="flex justify-center mt-176">
+        <div>
+          <img class="w-157 h-152" src="@/assets/image/c2c/Group323.png" alt="">
+          <p class="mt-36 font-28 text-center text-grey">{{ $t('暂无订单') }}</p>
+        </div>
+      </div>
+      <div v-else>
+        <van-pull-refresh :pulling-text="$t('下拉即可刷新')" :loosing-text="$t('释放即可刷新')" :loading-text="$t('加载中')"
+          v-model="isLoading" @refresh="onRefresh">
+          <van-list v-model:loading="loading" :finished="finished" :immediate-check="false" :finished-text="$t('没有更多了')"
+            @load="onLoad">
+            <template v-if="list.length > 0">
+              <items v-for="(item, index) in list" :items="item" :key="index" />
+            </template>
+            <div v-else class="w-full h-full">
+              <van-empty class="custom-image" :image="emptyImg"
+                :description="$t('暂无数据')">
+              </van-empty>
+            </div>
+          </van-list>
+        </van-pull-refresh>
+        <!--        <div class="w-full mt-76 mb-52 font-28 text-grey text-center">已经全部加载完毕</div>-->
+      </div>
+    </div>
+    <!--  显示筛选  -->
+    <div class="select">
+      <van-popup class="relative" v-model:show="selectShow" position="bottom" :style="fulHeight">
+        <order-nav>
+          <template #left><i></i></template>
+          <template #title>
+            <span class="font-35 font-700">{{ $t('订单历史筛选') }}</span>
+          </template>
+          <template #right>
+            <van-icon @click="selectShow = false" name="cross" color="#9399A4" />
+          </template>
+        </order-nav>
+        <div class=" px-37">
+          <div class="">
+            <p class="mb-38 font-28 text-grey">{{ $t('交易类型') }}</p>
+            <div>
+              <select-item :list="selectList.title" :value="currentDirection" @select='handleSelect' />
+            </div>
+          </div>
+          <div class="mt-59">
+            <p class="mb-38 font-28 text-grey">{{ $t('订单状态') }}</p>
+            <div>
+              <select-item :list="selectList.items" :value="currentState" @select='handleSelect2' />
+            </div>
+          </div>
+          <div class="absolute right-37 left-37 bottom-70">
+            <van-button @click="reset" class="mr-38 font-31 rounded-lg px-36" type="info" color="#EAEBEE">
+              <span style="color: #21262F">{{ $t('重置') }}</span>
+            </van-button>
+            <van-button @click="selectEnter" class="font-31 rounded-lg px-36" type="info" color="#1D91FF">
+              <span>{{ $t('确认') }}</span>
+            </van-button>
+          </div>
+        </div>
+      </van-popup>
+    </div>
+
+    <!--  未读消息  -->
+    <!--    <van-popup class="w-full h-full" v-model="showUnread" position="right">-->
+    <!--      <unread @back="hiddenUnread" :data="unreadData"/>-->
+    <!--    </van-popup>-->
+  </div>
+</template>
+
+<script>
+import {
+  Popup,
+  Icon,
+  PullRefresh,
+  Empty,
+  Button,
+  List, showToast,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import Items from "@/views/orderList/items.vue";
+import SelectItem from "./SelectItem.vue";
+import Unread from "./Unread.vue";
+import listLoadMixins from '@/utils/list-load-mixins'
+import { ctcOrderList } from "@/service/otc";
+export default {
+  name: "c2cOrderList",
+  props: ['isEmpty'],
+  mixins: [listLoadMixins],
+  data() {
+    return {
+      currentDirection: '全部',
+      currentState: '全部',
+      form: {
+        direction: '',
+        state: '', // 0未付款/1已付款/2申诉中/3已完成/4已取消/5已超时
+      },
+      navHeight: 0,
+      showUnread: false,
+      selectShow: false,
+      titleActive: '全部',
+      itemActive: '全部',
+      selectList: {
+        title: [{
+          title: this.$t('全部'),
+          value: '',
+        }, {
+          title: this.$t('购买'),
+          value: 'buy',
+        }, {
+          title: this.$t('出售'),
+          value: 'sell',
+        }],
+        items: [
+          {
+            title: this.$t('全部'),
+            value: '',
+          },
+          {
+            title: this.$t('未付款'),
+            value: 0,
+          },
+          {
+            title: this.$t('已付款'),
+            value: 1,
+          },
+          {
+            title: this.$t('申诉中'),
+            value: 2,
+          },
+          {
+            title: this.$t('已完成'),
+            value: 3,
+          },
+          {
+            title: this.$t('已取消'),
+            value: 4,
+          },
+          {
+            title: this.$t('已超时'),
+            value: 5,
+          },
+        ],
+      },
+      emptyImg:new URL('@/assets/image/otc/nodatas.png', import.meta.url).href,
+    }
+  },
+  created() {
+    this.get()
+  },
+  mounted() {
+    // let obj =  this.selectList.title.find((item) => {
+    //   return item.value === 'buy'
+    // })
+    this.navHeight = this.$refs.nav.$el.getBoundingClientRect().height;
+  },
+  methods: {
+    get() { // 获取数据的方法需要自定义
+      ctcOrderList({ ...this.form }).then(res => {
+        res.data.forEach((item) => {
+          // item.time = '01-03 17:20:20'
+        })
+        // console.log(res.data);
+        this.handleData(res.data)
+      })
+    },
+    handleSelect(data) {
+      this.form.direction = data.value
+      this.currentDirection = data.title
+      // this.get()
+    },
+    handleSelect2(data) {
+      this.form.state = data.value
+      this.currentState = data.title
+
+    },
+    hiddenUnread() {
+      this.showUnread = false;
+    },
+    // 筛选确定
+    selectEnter() {
+      this.selectShow = false
+      this.onRefresh()
+    },
+    // 重置选择
+    reset() {
+      this.currentDirection = '全部'
+      this.currentState = '全部'
+      this.form.direction = ''
+      this.form.state = ''
+    },
+  },
+  computed: {
+    fulHeight() {
+      return {
+        height: `calc(100vh - ${this.navHeight}px)`
+      }
+    },
+    // unreadData() {
+    //   const arr = this.formatData([...this.sell, ...this.buy])
+    //   return arr.filter(v => v.msg !== undefined)
+    // }
+  },
+  components: {
+    [Popup.name]: Popup,
+    [Icon.name]: Icon,
+    [Button.name]: Button,
+    [List.name]: List,
+    [PullRefresh.name]: PullRefresh,
+    [Empty.name]: Empty,
+    OrderNav,
+    Items,
+    SelectItem,
+    Unread,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.select {
+  ::v-deep .van-popup {
+    border-radius: 20px 20px 0 0;
+  }
+}
+</style>
diff --git a/src/views/C2C/c2c-order-list/tradeOrderDetail.vue b/src/views/C2C/c2c-order-list/tradeOrderDetail.vue
new file mode 100644
index 0000000..d0982aa
--- /dev/null
+++ b/src/views/C2C/c2c-order-list/tradeOrderDetail.vue
@@ -0,0 +1,42 @@
+<template>
+    <div class="w-full h-full">
+        <trade-success-detail :back="back">
+          
+        </trade-success-detail>
+    </div>
+</template>
+
+<script>
+import {
+    mapState
+} from "vuex";
+import TradeSuccessDetail from "./components/TradeSuccessDetail.vue";
+export default {
+    name: "TradeSuccessDetailSell",
+    computed: {
+        ...mapState('c2cSell', ['orderInfo'])
+    },
+    components: {
+        TradeSuccessDetail,
+    },
+    data(){
+        return {
+            back:true
+        }
+    },
+    created(){
+        if (this.$route.query.back){
+            this.back = false
+        }
+    },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+::v-deep .order-data {
+    .title {
+        padding-left: 32px;
+    }
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/components/C2cTrade.vue b/src/views/C2C/c2c-trade/components/C2cTrade.vue
new file mode 100644
index 0000000..9f1895d
--- /dev/null
+++ b/src/views/C2C/c2c-trade/components/C2cTrade.vue
@@ -0,0 +1,218 @@
+<template>
+  <div class="c2cTrade">
+    <normal-head :title="title" />
+    <div class="w-full px-33 box-border relative tabBackground pb-20">
+      <div class="flex pt-34 box-border items-center">
+        <span class="text-grey font-26 mr-20">{{ $t("单价") }}</span>
+        <span class="text-green font-26 mr-35">{{ currencySymbol }} {{ detail.symbol_value }}</span>
+        <!-- <span class="text-green font-26 mr-35">{{ currency.currency_symbol }} {{ detail.symbol_value }}</span> -->
+        <img @click="refresh" class="w-24 h-24" src="@/assets/image/otc/buy/vector_1.png" alt=""
+          style="transition: all ease 0.5s" />
+      </div>
+      <div class="flex mt-22 box-border items-center">
+        <span class="text-grey font-26 mr-20">{{ $t("限额") }}</span>
+        <!-- <span class="text-black font-26 mr-35">{{currencySymbol}} {{detail.investment_min}} - {{currencySymbol}} {{detail.investment_max}}</span> -->
+        <span class="c2cColor font-26 mr-35">{{ currencySymbol }} {{ detail.investment_min }} -
+          {{ currencySymbol }} {{ detail.investment_max }}</span>
+      </div>
+      <slot name="trade"></slot>
+      <div class="h-80 px-32 mt-40 flex items-center rounded-lg tips c2cTipBackground">
+        <img class="w-28 h-28 mr-18" src="@/assets/image/c2c/Group41.png" alt="" />
+        <p class="font-28 textColor">
+          {{ $t("保护资产安全,请提高防范意识!") }}
+        </p>
+      </div>
+    </div>
+    <div class="px-40 pb-40 mt-31 border-bottom-1px c2cColor">
+      <div class="">
+        <h2 class="font-28 font-400">{{ $t("交易信息") }}</h2>
+        <div class="flex justify-between mt-40">
+          <span class="text-grey">{{ $t("付款时限") }}</span>
+          <span>{{ detail.expire_time }} {{ $t("分钟") }}</span>
+        </div>
+        <div class="flex justify-between mt-40">
+          <span class="text-grey">{{ $t("卖家昵称") }}</span>
+          <div>
+            <span class="mr-24">{{ detail.nick_name }}</span>
+            <van-icon class="font-700 text-grey" name="arrow" />
+          </div>
+        </div>
+        <div class="flex justify-between mt-40">
+          <span class="text-grey">{{ $t("交易方式") }}</span>
+          <div class="h-56 tabBackground rounded-md">
+            <template v-if="detail.direction === 'buy'">
+              <van-popover class="w-full h-full" placement="left-end" :theme="$store.state.home.theme"
+                v-model:show="showPopover" trigger="click" :actions="payList" @select="onSelect">
+                <template #reference>
+                  <div class="flex justify-center items-center w-full h-full">
+                    <div class="w-6 h-28 border-ra" style="background: #e7bb41"></div>
+                    <span v-if="detail.direction === 'sell'" class="ml-12 mr-16">{{ fullMethodName }}</span>
+                    <span v-else class="ml-12 mr-16">{{ methodName }}</span>
+                    <img class="w-28 h-28" src="@/assets/image/c2c/Group1504.png" alt="" />
+                  </div>
+                </template>
+              </van-popover>
+            </template>
+            <template v-else>
+              <div class="pl-10">
+                {{ detail.pay_type_name && detail.pay_type_name.replaceAll(',', ' | ') }}
+                <!-- <span v-for="item in payList" :key="item.id" class="mr-10">{{item.methodName }}</span> -->
+              </div>
+            </template>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="px-32">
+      <slot name="desc"></slot>
+    </div>
+  </div>
+</template>
+
+<script>
+import NormalHead from "@/components/normal-head/index.vue";
+import { DropdownMenu, DropdownItem, Popover } from "vant";
+import { mapGetters } from "vuex";
+import { Icon, Divider } from "vant";
+import { mapState } from "vuex";
+import otcApi from "@/service/otc";
+
+export default {
+  name: "C2cTrade",
+  props: {
+    title: {},
+    type: {},
+    cid: {},
+    bankCarNumber: {},
+    detail: {
+      type: Object,
+      default() {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      num: 0, // 刷新按钮点击
+      payList: [],
+      payType: "", // 支付id 买
+      methodName: "", // 支付方式 买
+      showPopover: false,
+      fullMethodName: ''
+    };
+
+  },
+  computed: {
+    ...mapGetters(['theme'])
+  },
+  created() {
+    // 支付方式
+    // this.detail.pay_type.split(',').map((item, index) => {
+    //   const text = this.detail.pay_type_name.split(',')[index]
+    //   if (index === 0) {
+    //     this.payType = item;
+    //     this.methodName = text
+    //   }
+    //   this.payList.push({
+    //     value: item,
+    //     text
+    //   })
+    // })
+    // let { reciveType } = this.$route.query
+    // if (reciveType) {
+    //   reciveType = JSON.parse(reciveType)
+    //   this.fullMethodName = '111'
+    //   console.log('reciveType', reciveType)
+    // }
+    if (this.detail.direction === "buy") {
+      otcApi.ctcPaymentMethodPayList({ id: this.detail.id, language: this.$i18n.locale }).then((res) => {
+        console.log("res", res);
+        res.data.map((item) => {
+          this.payList.push({
+            value: item.uuid,
+            text: item.methodName,
+          });
+        });
+        this.payType = this.payList[0].value;
+        this.methodName = this.payList[0].text;
+      });
+    } else {
+      console.log(this.detail.id)
+      otcApi.ctcPaymentMethodUserPay({ id: this.detail.id, language: this.$i18n.locale }).then(res => {
+        this.payList = res.data
+        this.payList.map(item => {
+          item.text = item.methodName
+          item.value = item.id
+        })
+        this.payType = this.payList[0].value;
+        this.methodName = this.payList[0].text;
+      })
+    }
+
+    otcApi.c2cGetPayCurrencyList().then(res => {
+      console.log(res.data);
+    })
+
+  },
+  watch: {
+    payType(val) {
+      this.$emit("payType", val);
+    },
+  },
+  methods: {
+    // 刷新点击
+    refresh(e) {
+      this.num++;
+      e.target.style.transform = `rotateZ(-${this.num * 360}deg)`;
+      this.$emit("refresh");
+    },
+    onSelect(action) {
+      this.payType = action.value;
+      this.methodName = action.text;
+    },
+  },
+  computed: {
+    ...mapState("home", ["currency"]),
+    ...mapGetters("c2c", ["direction", "currencySymbol"]),
+    // fullMethodName() {
+    //   if (this.paymentMethodName) {
+    //     return this.paymentMethodName;
+    //   } else {
+    //     return "请选择";
+    //   }
+    // },
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Divider.name]: Divider,
+    [DropdownMenu.name]: DropdownMenu,
+    [DropdownItem.name]: DropdownItem,
+    [Popover.name]: Popover,
+    NormalHead,
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/mixin.scss";
+@import "@/assets/css/copy2.scss";
+
+.c2cTrade {
+  ::v-deep .van-icon {
+    font-size: 2rem;
+  }
+
+  ::v-deep .van-button {
+    border-radius: 10px;
+    background: #2EBD85;
+  }
+}
+
+.border-bottom-1px {
+  position: relative;
+
+  &:after {
+    @include border-1px("bottom");
+  }
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/components/CarItem.vue b/src/views/C2C/c2c-trade/components/CarItem.vue
new file mode 100644
index 0000000..a142f0e
--- /dev/null
+++ b/src/views/C2C/c2c-trade/components/CarItem.vue
@@ -0,0 +1,74 @@
+<template>
+  <div class="pl-30 pr-30 pt-55 payment_item c2cColor" :class="{ 'border-b-grey': item.type === 'CN' }">
+    <div class="title flex justify-between w-full">
+      <div class="flex items-center">
+        <div class="w-11 h-36 mr-22 rounded-2xl" :style="{ 'background': color }"></div>
+        <div class="font-37">{{ $t(item.methodName) }}</div>
+      </div>
+      <div class="icon edit" @click="editClick(item, $event)">
+        <img class="edit w-32 h-32" src="@/assets/image/payment/edit.png" alt="">
+      </div>
+    </div>
+    <div class="mt-20 font-32">{{ item.realName }}</div>
+    <div class="number">
+      <div class="font-700 mt-18 font-37" :class="{ 'ml-44': item.type === 'EN', 'font-32': item.type === 'EN' }">
+        {{ item.paramValue1 ? item.paramValue1 : fullNumber(item.paramValue1) }}
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getRandom, } from "@/utils/utis";
+
+export default {
+  name: "CarItem",
+  props: ["item", "type"],
+  data() {
+    return {
+      color: "#",
+    }
+  },
+  created() {
+    for (let i = 0; i < 6; i++) {
+      this.color += getRandom();
+    }
+    console.log(this.color)
+  },
+  methods: {
+    fullNumber(number) {
+      if (this.item.type === 'CN') {
+        return number.replace(/(\d{4})/g, "$1 ").trim()
+        // return number;
+      } else {
+        return number;
+      }
+    },
+    // 进入银行卡详情页面
+    editClick(data) {
+      this.$router.push({
+        name: 'bankCarDetail',
+        query: {
+          id: data.id,
+          type: 'CN',
+          configType: 'edit'
+        }
+      })
+    }
+  },
+  computed: {}
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.pt-55 {
+  padding-top: 55px;
+  ;
+}
+
+.payment_item {
+  background: $tab_background;
+  border-bottom: 1px solid $divi_line;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/components/TradeSuccess.vue b/src/views/C2C/c2c-trade/components/TradeSuccess.vue
new file mode 100644
index 0000000..26eeae7
--- /dev/null
+++ b/src/views/C2C/c2c-trade/components/TradeSuccess.vue
@@ -0,0 +1,50 @@
+<template>
+  <div class="w-full h-full">
+    <order-nav :back="false" @back="$router.push('/wantBuy')" />
+    <div class="mt-40">
+      <div class="flex justify-center">
+        <img class="w-122 h-122" src="@/assets/image/c2c/Group100.png" alt="">
+      </div>
+      <div class="flex justify-center flex-col items-center mt-45 font-700 font-56">
+        <div>
+          <slot name="price"></slot>
+        </div>
+      </div>
+    </div>
+    <div class="flex flex-col items-center mt-184">
+      <div>
+        <van-button class="w-360 h-92 rounded-lg bg-blue" type="info"
+          @click="$router.push('/tradeSuccessDetailBuyer')">{{ $t('完成') }}</van-button>
+      </div>
+      <div class="mt-46 font-32 font-400 text-blue " @click="$router.push('/funds')">{{ $t('查看资产') }}</div>
+    </div>
+    <!--  <div class="absolute bottom-0 left-0 w-full text-center">-->
+    <!--    <van-divider />-->
+    <!--    <evaluation class="pb-80">-->
+    <!--      <template #desc>-->
+    <!--        <slot name="desc"></slot>-->
+    <!--      </template>-->
+    <!--    </evaluation>-->
+    <!--  </div>-->
+  </div>
+</template>
+
+<script>
+import {
+  Button,
+  Divider,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav";
+import Evaluation from "@/page/c2cOrder/payment/components/Evaluation";
+export default {
+  name: "TradeSuccess",
+  components: {
+    [Button.name]: Button,
+    [Divider.name]: Divider,
+    OrderNav,
+    Evaluation,
+  }
+}
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/components/TradeSuccessDetail.vue b/src/views/C2C/c2c-trade/components/TradeSuccessDetail.vue
new file mode 100644
index 0000000..76901fb
--- /dev/null
+++ b/src/views/C2C/c2c-trade/components/TradeSuccessDetail.vue
@@ -0,0 +1,213 @@
+<template>
+  <div id="full" style="z-index: 100;overflow: auto;"
+    class="fixed top-0 left-0 w-full h-full c2cBackground1 tradeSuccessDetail">
+    <div :class="orderDetail.state == 3 ? 'green' : 'greyBg'">
+      <order-nav :back="back" :class="orderDetail.state == 3 ? 'green' : 'greyBg'" @back="$router.replace('/wantBuy')">
+        <template #left>
+          <van-icon name="arrow-left" class="arrow-left-icon" />
+        </template>
+        <template #right>
+          <div class="flex items-center chat flex justify-center" @click="$router.push({
+            path: '/chat'
+          })">
+            <van-badge class="w-35 h-33 mr-22">
+              <img class="w-full h-full" v-if="orderDetail.state == 3" src="@/assets/image/c2c/Vector-white.png"
+                alt="" />
+              <img class="w-full h-full" v-else src="@/assets/image/c2c/Vector-black.png" alt="" />
+            </van-badge>
+            <span class="font-28" :class="orderDetail.state == 3 ? 'text-white' : 'c2cColor'">
+              <span>{{ orderDetail.direction == 'buy' ? $t('联系卖家') : $t('联系买家') }}</span>
+            </span>
+          </div>
+        </template>
+      </order-nav>
+      <div class="flex justify-between items-center mt-20 px-32 pb-50 text-white">
+        <div>
+          <div class="font-52" :class="orderDetail.state != 3 ? 'c2cColor' : ''">{{ fixStr() }}</div>
+          <div class="mt-26 font-26" v-if="orderDetail.state == 3">
+            {{ $t('您已成功') }}&nbsp;{{ orderDetail.direction == 'buy' ? $t('购买') : $t('出售') }}&nbsp;{{
+              orderDetail.symbol.toLowerCase() == 'usdt' ? Math.floor(orderDetail.amountUsdt * 100) / 100 :
+              Math.floor(orderDetail.amountUsdt * 10000) / 10000 }}&nbsp;{{ orderDetail.symbol.toUpperCase() }}
+          </div>
+          <div class="mt-26 font-26 c2cColor" v-else>{{ fixText() }}</div>
+        </div>
+        <div>
+          <img v-if="orderDetail.state == 3" class="w-92 h-92" src="@/assets/image/c2c/Group181.png" alt="">
+          <img v-else class="w-92 h-92" src="@/assets/image/c2c/Group1212.png" alt="">
+        </div>
+      </div>
+    </div>
+    <div class="pt-46 pb-30 c2cTabBackground">
+      <order-data :detail="orderDetail">
+        <div class="w-full h-16 mb-40 diviLine"></div>
+      </order-data>
+    </div>
+    <div class="px-32 mt-16 mainBackground py-39">
+      <h2 class="font-400 font-30 c2cColor">{{ $t('交易方式') }}</h2>
+      <div class="flex items-center mt-28">
+        <div class="w-6 h-28 border-ra" style="background: #E7BB41;"></div>
+        <span class="ml-9 font-22 text-grey">{{ orderDetail.methodName }}</span>
+      </div>
+    </div>
+    <!--    <van-divider/>-->
+    <!--    <evaluation class="pb-60 bg-white">-->
+    <!--      <template #desc>-->
+    <!--        <slot name="desc"></slot>-->
+    <!--      </template>-->
+    <!--    </evaluation>-->
+    <div class="mt-16">
+      <div class="flex justify-between items-center h-100 px-32 mt-16 c2cTabBackground c2cColor" @click="tokefu">
+        <div>
+          <span class="font-30 c2cColor">{{ $t('联系客服') }}</span>
+        </div>
+        <div>
+          <van-icon name="arrow" class="font-700" />
+        </div>
+      </div>
+      <div class="flex justify-between items-center h-100 px-32 mt-16 c2cTabBackground c2cColor"
+        @click="$router.push('/Appeal')">
+        <div>
+          <span class="font-30 c2cColor">{{ $t('对订单存在疑问') }}</span>
+        </div>
+        <div>
+          <van-icon name="arrow" class="font-700" />
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  mapState
+} from "vuex";
+import {
+  Badge,
+  Divider,
+  Cell,
+  CellGroup,
+  Icon,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav";
+import OrderData from "@/page/c2cOrder/components/order-data/OrderData";
+import Evaluation from "@/page/c2cOrder/payment/components/Evaluation";
+import otcApi from "@/API/otc";
+export default {
+  name: "TradeSuccessDetail",
+  props: ['title', 'back'],
+  data() {
+    return {
+      checked: false,
+      orderDetail: {},
+    }
+  },
+  components: {
+    [Badge.name]: Badge,
+    [Divider.name]: Divider,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Icon.name]: Icon,
+    OrderNav,
+    OrderData,
+    Evaluation,
+  },
+  async created() {
+    console.log(this.orderInfo)
+    const order_no = this.$store.state.c2c.order_no
+    const res = await otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale });
+    this.orderDetail = res.data;
+  },
+  methods: {
+    fixStr() {
+      let str = ''
+      if (this.orderDetail.state == 1) {
+        str = ''
+      } else if (this.orderDetail.state == 2) {
+        str = this.$t('申诉中')
+      } else if (this.orderDetail.state == 3) {
+        str = this.$t('已完成')
+      } else if (this.orderDetail.state == 4) {
+        str = this.$t('已取消')
+      } else if (this.orderDetail.state == 5) {
+        str = this.$t('已超时')
+      }
+      return str
+    },
+    fixText() {
+      let str = ''
+      if (this.orderDetail.state == 2) {
+        str = this.$t('您的订单正在申诉处理中')
+      } else if (this.orderDetail.state == 4) {
+        str = this.$t('您已取消订单')
+      } else if (this.orderDetail.state == 5) {
+        str = this.$t('您的订单已超时')
+      }
+      return str
+    },
+    tokefu() {
+      this.$router.push('/customerService')
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+
+.tradeSuccessDetail {
+  .arrow-left-icon {
+    color: $text_color;
+  }
+
+  ::v-deep .van-nav-bar__right {
+    padding: 0;
+  }
+
+  ::v-deep .van-nav-bar__arrow {
+    color: #fff;
+  }
+
+  ::v-deep .greyBg .van-nav-bar {
+      background:$grey_bg;
+  }
+
+  ::v-deep .green .van-nav-bar {
+    background: #2EBD85;
+  }
+
+  ::v-deep .van-cell {
+    padding: 0 32px !important;
+      background: $c2c_tab_background;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  ::v-deep .van-cell-group {
+      background: $c2c_tab_background;
+  }
+
+  ::v-deep .van-cell__title {
+      color: $text_color1;
+  }
+
+  ::v-deep .van-cell__value {
+    color: $text_color;
+  }
+}
+
+.switch {
+  transform: scale(.7) translateX(20px);
+}
+
+.chat {
+  width: 232px;
+  height: 64px;
+  border-radius: 36px 0px 0px 36px;
+}
+
+.green {
+  background: #2EBD85;
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/components/c2cCollectionEmpty.vue b/src/views/C2C/c2c-trade/components/c2cCollectionEmpty.vue
new file mode 100644
index 0000000..d8f1dfe
--- /dev/null
+++ b/src/views/C2C/c2c-trade/components/c2cCollectionEmpty.vue
@@ -0,0 +1,13 @@
+<template>
+<div></div>
+</template>
+
+<script>
+export default {
+  name: "c2cCollectionEmpty"
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/index.vue b/src/views/C2C/c2c-trade/index.vue
new file mode 100644
index 0000000..1be3681
--- /dev/null
+++ b/src/views/C2C/c2c-trade/index.vue
@@ -0,0 +1,27 @@
+<template>
+  <div class="w-full">
+    <c2c-buy v-if="direction === 'buy'" />
+    <c2c-sell v-else />
+  </div>
+</template>
+
+<script>
+import c2cBuy from "./page/c2cBuy.vue";
+import c2cSell from "./page/c2cSell.vue";
+import { mapGetters } from "vuex";
+export default {
+  name: "c2cTradeBridge",
+  computed: {
+    ...mapGetters('c2c', ['direction'])
+  },
+  components: {
+    c2cBuy,
+    c2cSell,
+  },
+  created() {
+    console.log("c2c-trade",this.direction)
+  }
+}
+</script>
+
+<style scoped></style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/page/SellGenerate.vue b/src/views/C2C/c2c-trade/page/SellGenerate.vue
new file mode 100644
index 0000000..1b3f2e5
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/SellGenerate.vue
@@ -0,0 +1,281 @@
+<template>
+  <div id="full" class="w-full h-full">
+    <loading v-if="loading" />
+    <!--完成加载-->
+    <div v-else>
+      <order-nav />
+      <div class="px-32 pb-41 mainBackground">
+        <div class="flex justify-between c2cColor">
+          <div class="mt-10">
+            <div class="font-48">{{ $t('等待买家付款') }}</div>
+            <div class="mt-16 font-24">{{ $t('预计收到付款') }} <span style="color: #1D91FF">{{
+              orderDetail.expireTime
+            }}{{ $t('分钟') }}</span>
+            </div>
+          </div>
+          <div class="w-140 h-144">
+            <otc-circle :time="orderDetail.expireTime * 60" @finish="finish" class="w-full h-full" />
+          </div>
+        </div>
+        <div class="w-full mt-48 pt-46 pl-32 pb-42 box-border border-ra tabBackground c2cColor">
+          <div class="flex justify-between">
+            <div class="flex items-center">
+              <img class="w-38 h-38 mr-10" :src="orderDetail.c2cUserHeadImg" alt="">
+              <h3 class="font-32 font-400">{{ $t(orderDetail.c2cUserNickName) }}</h3>
+              <img class="w-30 h-30 ml-8 mr-20" src="@/assets/image/otc/buy/star.png" alt="">
+              <van-icon color="#9399A4" name="arrow" class="relative top-1 font-700 font-20" />
+            </div>
+            <div
+              style="background:linear-gradient(to right,#b6dbff,#1d91ff);border-top-left-radius: 40px;border-bottom-left-radius: 40px;"
+              class="flex items-center font-24 text-white py-10 px-14" @click="$router.push({ path: '/chat' })">
+              <img class="w-35 h-33 mr-10" src="@/assets/image/c2c/Vector-white.png" alt="" />
+              {{ $t('联系买家') }}
+            </div>
+          </div>
+          <div class="mt-60">
+            <div class="flex items-center mb-30 pr-185">
+              <img class="w-28 h-28 mr-12" src="@/assets/image/c2c/Vector2.png" alt="">
+              <p class="font-24">
+                <span class="text-grey">{{ $t('买家实名 :') }} </span>
+                <span>{{ $t(orderDetail.realName) }}</span>
+              </p>
+            </div>
+            <div class="flex justify-between">
+              <div class="flex items-center">
+                <img class="w-28 h-28 mr-12" src="@/assets/image/c2c/gou.png" alt="">
+                <p class="font-24">{{ $t('7x24小时客服支持') }}</p>
+              </div>
+              <div class="pr-40" @click="tokefu">
+                <van-icon color="#9399A4" name="arrow" class="relative top-1 font-700 font-20" />
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div>
+        <trade-data :title="$t('出售')" :detail="orderDetail" :count="orderDetail.coinAmount"
+          :total-price="orderDetail.amount" :order-number="orderDetail.orderNo" :trade-method="tradeMethod"
+          :method-name="fullMethodType(orderDetail.methodType)" :unit-price="orderDetail.symbolValue">
+          <template #trade-title>
+            <span>{{ $t('我的收款方式') }}</span>
+          </template>
+          <template #terms>
+            <van-collapse v-model="activeNames">
+              <van-collapse-item name="2">
+                <template #title>
+                  <span>{{ $t('交易条款') }}</span>
+                </template>
+                <van-divider />
+                <p class="font-28">{{ $t('资金绝对安全') }}</p>
+                <p class="mt-20 font-28">{{ $t('平时订单较多,看见了会立马打款。急单勿拍!') }}</p>
+              </van-collapse-item>
+            </van-collapse>
+          </template>
+        </trade-data>
+      </div>
+      <div class="flex justify-between px-40 pt-50 pb-41 mt-170 mainBackground">
+        <van-button class="w-244 h-80 mr-16 c2cColor tabBackground" type="primary"
+          @click="$router.push({ path: '/c2cHelp', query: { 'expireTimeRemain': orderDetail.expireTime * 60, 'state': orderDetail.state } })">{{
+            $t('帮助') }}
+        </van-button>
+        <van-button class="disable flex-1 h-80 enter" color="#CCCFD6" type="primary">{{ $t('我已确认收款') }}
+        </van-button>
+      </div>
+      <van-popup class="w-full h-full" position="right" v-model="isShowCancelOrder">
+        <cancel-success v-if="!timeout" :title="$t('出售')" :count="orderDetail.coinAmount"
+          :total-price="orderDetail.amount" :order-number="orderDetail.orderNo"
+          :create-order-time="fullTime(orderDetail.createTime)" :seller-name="orderDetail.c2cUserNickName"
+          :unit-price="orderDetail.symbolValue" />
+        <!--   已超时   -->
+        <cancel-success v-if="timeout" :title="$t('出售')" :count="orderDetail.coinAmount" :total-price="orderDetail.amount"
+          :order-number="orderDetail.orderNo" :create-order-time="fullTime(orderDetail.createTime)"
+          :seller-name="orderDetail.c2cUserNickName" :unit-price="orderDetail.symbolValue">
+          <template #title>{{ $t('已超时') }}</template>
+          <template #desc>{{ $t('买家付款超时,您的订单已取消') }}</template>
+        </cancel-success>
+      </van-popup>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapState } from "vuex";
+import { Button, Collapse, CollapseItem, Divider, Icon, Popup, showToast } from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import TradeData from "../../c2cOrder/components/trade-data/TradeData.vue";
+import OtcCircle from "@/components/otcCircle/index.vue";
+import CancelSuccess from "../../c2cOrder/components/order-generation/CancelSuccess.vue";
+import loading from "@/components/loading/index.vue";
+
+import otcApi from "@/service/otc";
+
+import { formatTime } from "@/utils/utis";
+import { SET_ORDER_INFO } from "@/store/const.store";
+
+export default {
+  name: "SellGenerate",
+  // props: ['orderNumber'],
+  data() {
+    return {
+      loading: false, // 请求中
+      isShowCancelOrder: false,// 显示取消订单
+      timeout: false, //是否已超时
+      activeNames: [],
+      // 交易方式
+      tradeMethod: [],
+      orderDetail: {},
+      orderNumber: '',
+      timeStatus: null
+    }
+  },
+  created() {
+    // console.log(this.orderNumber)
+    // this.orderNumber = this.$route.query.orderNumber
+    this.orderNumber = this.$store.state.c2c.order_no
+    this.getOrderDetail();
+  },
+  beforeDestroy() {
+    console.log('bbb')
+    if (this.timeStatus) {
+      clearTimeout(this.timeStatus)
+    }
+  },
+  methods: {
+    async getOrderDetail() {
+      console.log(this.orderNumber)
+      const res = await otcApi.ctcOrderGetDetail({ order_no: this.orderNumber, language: this.$i18n.locale });
+      this.orderDetail = res.data;
+      if (res.data.state / 1 === 0) {
+        this.timeStatus = setTimeout(() => {
+          this.getOrderDetail()
+        }, 3000)
+      } else {
+        if (this.timeStatus) {
+          clearTimeout(this.timeStatus)
+          this.$router.replace({
+            path: '/confirmedPaid'
+          })
+        }
+      }
+
+      // 保存订单数据
+      this.$store.commit(`c2cSell/${SET_ORDER_INFO}`, {
+        info: this.orderDetail
+      })
+      this.loading = false;
+    },
+    // 已确认收款
+    enter() {
+
+      // 跳转页面
+      this.$router.replace({
+        path: '/confirmedPaid'
+      })
+    },
+    // 已超时
+    finish() {
+      if (this.timeout) return
+
+      this.loading = true;
+      // 重新获取订单状态
+      //this.getOrderDetail();
+      this.isShowCancelOrder = false;
+      this.timeout = true;
+    },
+    // 取消订单
+    t() {
+      // this.isShowCancelOrder = true;
+
+      // 取消订单
+      // otcApi.ctcOrderCancel({order_no: this.orderInfo.orderNumber}).then(res => {
+      //   console.log(res)
+      // }).catch(err => {
+      //   console.log(err)
+      // })
+      // setTimeout(() => {
+      //   showToast("取消成功")
+      // }, 400)
+    },
+    // 支付方法
+    fullMethodType(num) {
+      const arr = [this.$t('其它'), this.$t('银行卡'), this.$t('虚拟货币'), this.$t('微信'), this.$t('支付宝'), 'paypal', this.$t('西联汇款'), this.$t('swift国际汇款')]
+      return arr[num];
+    },
+    fullTime(time) {
+      console.log(formatTime(new Date(time), 'yyyy-MM-dd hh:mm:ss'));
+      return formatTime(new Date(time), 'yyyy-MM-dd hh:mm:ss')
+    },
+    tokefu() {
+      this.$router.push('/customerService')
+    }
+  },
+  watch: {
+    orderDetail() {
+      this.tradeMethod.push({
+        label: this.$t('姓名'), value: this.orderDetail.realName
+      })
+      this.tradeMethod.push({
+        label: this.$t('银行卡号/账号'), value: this.orderDetail.paramValue1
+      })
+      this.tradeMethod.push({
+        label: this.$t('银行名称'),
+        value: this.orderDetail.methodName
+      })
+    }
+  },
+  computed: {
+    ...mapState('c2cSell', ['orderInfo']),
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Collapse.name]: Collapse,
+    [CollapseItem.name]: CollapseItem,
+    [Divider.name]: Divider,
+    [Button.name]: Button,
+    [Popup.name]: Popup,
+    OrderNav,
+    TradeData,
+    OtcCircle,
+    CancelSuccess,
+    loading,
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.border-ra {
+  border-radius: 20px;
+}
+
+::v-deep .order-data {
+  .title {
+    color: #E35461;
+  }
+
+}
+
+::v-deep {
+  .disable.van-button {
+    color: #7C838F !important
+  }
+
+  .van-button--primary {
+    border: none;
+  }
+}
+
+.loading {
+  background: #fff;
+
+  ::v-deep {
+    .van-loading {
+      color: #1D91FF;
+    }
+  }
+}
+
+.enter {
+  //color: #7C838F !important;
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/page/TradeSuccessBuyer.vue b/src/views/C2C/c2c-trade/page/TradeSuccessBuyer.vue
new file mode 100644
index 0000000..588f86b
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/TradeSuccessBuyer.vue
@@ -0,0 +1,48 @@
+<template>
+  <div class="w-full">
+    <trade-success>
+      <template #price>
+        <div class="w-full text-center">
+          <div class="info-tilte">
+            <span>{{ detail.symbol == 'usdt' ? Math.floor(detail.amountUsdt * 100) / 100 :
+              Math.floor(detail.amountUsdt * 10000) / 10000 }}</span>
+            <span class="ml-15 font-36">{{ detail.symbol && detail.symbol.toUpperCase() }}</span>
+          </div>
+          <div class="mt-14 font-400 font-28 text-grey">{{ $t('已存入您的资金账户') }}</div>
+        </div>
+      </template>
+      <template #desc>
+        <span>{{ $t('请您对买家进行评价') }}</span>
+      </template>
+    </trade-success>
+  </div>
+</template>
+
+<script>
+import TradeSuccess from "@/page/c2c-trade/components/TradeSuccess";
+import otcApi from '@/API/otc';
+
+export default {
+  name: "TradeSuccessBuyer",
+  components: {
+    TradeSuccess,
+  },
+  data() {
+    return {
+      detail: {}
+    }
+  },
+  created() {
+    const order_no = this.$store.state.c2c.order_no
+    otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale }).then(res => {
+      this.detail = res.data
+    })
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.info-tilte {
+  color: $text_color;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/page/TradeSuccessDetailBuyer.vue b/src/views/C2C/c2c-trade/page/TradeSuccessDetailBuyer.vue
new file mode 100644
index 0000000..bf24e7f
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/TradeSuccessDetailBuyer.vue
@@ -0,0 +1,27 @@
+<template>
+<div class="w-full h-full">
+  <trade-success-detail
+    :back="false"
+    :title="$t('购买')"
+  >
+  </trade-success-detail>
+</div>
+</template>
+
+<script>
+import TradeSuccessDetail from "@/page/c2c-trade/components/TradeSuccessDetail";
+export default {
+  name: "TradeSuccessDetailBuyer",
+  components: {
+    TradeSuccessDetail,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .order-data {
+  .title {
+    padding-left: 32px;
+  }
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/page/TradeSuccessDetailSell.vue b/src/views/C2C/c2c-trade/page/TradeSuccessDetailSell.vue
new file mode 100644
index 0000000..a888eed
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/TradeSuccessDetailSell.vue
@@ -0,0 +1,35 @@
+<template>
+  <div class="w-full h-full">
+    <trade-success-detail
+        :title="$t('出售')"
+    >
+      <template #price>
+        <div>{{$t('您已成功出售')}}<span class="mx-8">{{ orderInfo.coinAmount }}</span>{{ orderInfo.symbol.toLocaleUpperCase() }}</div>
+      </template>
+    </trade-success-detail>
+  </div>
+</template>
+
+<script>
+import {
+  mapState
+} from "vuex";
+import TradeSuccessDetail from "@/page/c2c-trade/components/TradeSuccessDetail";
+export default {
+  name: "TradeSuccessDetailSell",
+  computed: {
+    ...mapState('c2cSell', ['orderInfo'])
+  },
+  components: {
+    TradeSuccessDetail,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .order-data {
+  .title {
+    padding-left: 32px;
+  }
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/page/TradeSuccessSell.vue b/src/views/C2C/c2c-trade/page/TradeSuccessSell.vue
new file mode 100644
index 0000000..1553765
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/TradeSuccessSell.vue
@@ -0,0 +1,52 @@
+<template>
+<div>
+  <trade-success>
+    <template #price>
+      <div class="w-full text-center">
+        <div>
+          <span class="relative bottom-2 mr-15 font-36">{{ currencySymbol }}</span>
+          <span class="font-60">{{ detail.amount }}</span>
+        </div>
+        <div class="mt-14 font-400 font-28 text-grey">
+          {{$t('您已成功出售')}}
+          <span class="mx-8">{{ detail.symbol == 'usdt' ? Math.floor(detail.coinAmount * 100) / 100 : Math.floor(detail.coinAmount * 100000) / 100000 }}</span>
+          <span>{{ detail.symbol && detail.symbol.toLocaleUpperCase() }}</span>
+        </div>
+      </div>
+    </template>
+    <template #desc>
+      <span>{{$t('请您对买家进行评价')}}</span>
+    </template>
+  </trade-success>
+</div>
+</template>
+
+<script>
+import TradeSuccess from "@/page/c2c-trade/components/TradeSuccess";
+import otcApi from '@/API/otc';
+import { mapGetters } from "vuex";
+export default {
+  name: "TradeSuccessSell",
+  components: {
+    TradeSuccess,
+  },
+  data() {
+    return {
+      detail: {}
+    }
+  },
+  computed: {
+    ...mapGetters("c2c", ['currencySymbol']),
+  },
+  created() {
+    const order_no = this.$store.state.c2c.order_no
+    otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale }).then(res => {
+      this.detail = res.data
+    })
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/page/c2cBuy.vue b/src/views/C2C/c2c-trade/page/c2cBuy.vue
new file mode 100644
index 0000000..9fc0491
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/c2cBuy.vue
@@ -0,0 +1,279 @@
+<template>
+  <div class="c2cBuy w-full h-full">
+    <c2c-trade :title="$t('购买') + ' ' + symbol" :detail="detail" @refresh="fetchDetail" @payType="payType = $event"
+      v-if="detail.id">
+      <template #trade>
+        <div class="buy-item mt-40 w-full mainBackground c2cColor">
+          <div class="buy-item-title flex justify-between font-28 py-34 border-b-1 border-light-grey c2cColor">
+            <div class="flex-1 text-center" :class="{ 'text-grey': type === 'num' }" @click="typeSwitch('amount')">
+              {{ $t('按金额购买') }}
+            </div>
+            <div class="flex-1 text-center" :class="{ 'text-grey': type === 'amount' }" @click="typeSwitch('num')">
+              {{ $t('按数量购买') }}
+            </div>
+          </div>
+          <div class="px-32 mt-40">
+            <div class="w-full buy-item-input relative box-border" v-show="type === 'amount'">
+              <span class="font-28 absolute left-28 text font-700 c2cColor">{{ currencySymbol }}</span>
+              <input class="w-full font-36 h-110 border-none box-border pl-96 c2cColor" type="number"
+                :placeholder="$t('请输入金额')" v-model="money" @input="changeVal">
+              <span class="font-28 absolute right-19 text c2cColor" @click="all">{{ $t('全部') }}</span>
+            </div>
+            <div class="w-full buy-item-input relative box-border" v-show="type === 'num'">
+              <input class="w-full font-36 h-110 border-none box-border pl-30 c2cColor" type="number"
+                :placeholder="$t('请输入数量')" v-model="quantity" @input="changeValNum">
+              <span class="font-28 absolute right-19 text">
+                <span class="mr-16" style="color:#B8BCC5;">{{ symbol }}</span>
+                <span class="c2cColor" @click="all">{{ $t('全部') }}</span>
+              </span>
+            </div>
+            <div v-if="tips" class="flex mt-12 text-red font-28">
+              {{ tips }}
+            </div>
+            <div class="flex justify-between mt-40 mb-12 c2cColor">
+              <span class="text-grey">{{ $t('数量') }}</span>
+              <span>{{ totalQuantity }} {{ symbol }}</span>
+            </div>
+            <div class="flex justify-between c2cColor">
+              <span class="text-grey">{{ $t('总额') }}</span>
+              <span>{{ totalMoney }} {{ currencySymbol }}</span>
+            </div>
+            <div class="w-full mt-24 pb-30">
+              <van-button @click="buyClick" class="w-full font-30 buy-button" :disabled="loading" type="primary">
+                <span v-if="!loading">{{ $t('购买') }}&nbsp;{{ symbol }}</span>
+                <van-loading v-else type="spinner" />
+              </van-button>
+            </div>
+          </div>
+        </div>
+      </template>
+      <template #desc>
+        <div class="mt-36">
+          <h2 class="font-28 font-400 c2cColor">{{ $t('交易信息') }}</h2>
+          <div class="mt-30 font-26 text-grey">
+            <p class="lh-45">{{ $t('请先阅读以下内容:') }}</p>
+            <p class="lh-45">{{ $t('银行卡转账切勿备注,不然不给予放币和直接封其账号。付款后 需要提供打款后新的交易明细图(如果P图或者隐藏交易明细上报平台冻结账户)') }}</p>
+          </div>
+        </div>
+      </template>
+    </c2c-trade>
+  </div>
+</template>
+
+<script>
+import { formatTime } from "@/utils/utis";
+import { Button, Cell, DropdownItem, DropdownMenu, Field, Icon, Popup, Switch, showToast } from "vant";
+// import { SET_COUNT, SET_CREATE_ORDER_TIME, SET_ORDER_NUMBER, SET_TOTAL_PRICE, } from "@/store/const.store";
+import C2cTrade from "../components/C2cTrade.vue";
+import otcApi from "@/service/otc.js";
+import { mapGetters } from "vuex";
+export default {
+  name: "c2cBuy",
+  data() {
+    return {
+      type: 'amount', // 按金额/数量购买
+      detail: {},
+      payType: '',
+      tips: '',
+      money: '',
+      quantity: '',
+      totalMoney: '-',
+      totalQuantity: '-',
+      loading: false
+    }
+  },
+  created() {
+    this.fetchDetail()
+  },
+  methods: {
+    fetchDetail() { // 获取详情
+      const id = this.$store.state.c2c.adv_id
+      otcApi.ctcAdvertGetDetail({ id, language: this.$i18n.locale }).then(res => {
+        if (res.data.symbol_value == this.detail.symbol_value) {
+          showToast(this.$t('无价格更新'))
+        }
+        this.detail = res.data
+      })
+    },
+    async submitOrder() { // 发起订单
+      this.loading = true
+      const data = await otcApi.getSessionToken({ currency: this.exchangeCurrency })
+      // console.log("this.payType",this.payType,this.detail);
+      // return
+      
+      const params = {
+        session_token: data.data.session_token, // session_token
+        c2c_advert_id: this.detail.id,
+        payment_method_id: this.payType,
+        direction: 'buy',
+        order_type: this.type === 'amount' ? 'by_amount' : 'by_num', // 'by_num'
+        amount: this.type === 'amount' ? this.totalMoney / 1 : '', // 金额
+        coin_amount: this.type === 'amount' ? '' : this.totalQuantity / 1 // 数量
+      }
+      otcApi.ctcOrderOpen(params).then(res => {
+        this.loading = false
+        this.$store.commit('c2c/SET_ORDER_NO', res.data.order_no)
+        this.$router.push('/orderGeneration')
+      }).catch(err => {
+        this.loading = false
+      })
+    },
+    // 切换类型
+    typeSwitch(type) {
+      this.type = type;
+      this.tips = ''
+      this.money = ''
+      this.quantity = ''
+      this.totalMoney = '-'
+      this.totalQuantity = '-'
+    },
+    changeVal(e) {
+      // e.target.value = e.target.value.replace('-', ''); 不能输入小数了
+      //this[this.type] = e.target.value;
+      if (this.money == '') {
+        this.tips = ''
+        this.totalMoney = '-'
+        this.totalQuantity = '-'
+      } else {
+        if (this.money * 1 < this.detail.investment_min * 1) {
+          this.tips = this.$t('最小金额') + this.detail.investment_min + ' ' + this.exchangeCurrency
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else if (this.money * 1 > this.detail.investment_max * 1) {
+          this.tips = this.$t('最大金额') + this.detail.investment_max + ' ' + this.exchangeCurrency
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else {
+          this.tips = ''
+          this.totalMoney = this.money
+          if (this.symbol !== "USDT") {
+            this.totalQuantity = Math.floor((this.totalMoney / this.detail.symbol_value) * 1000000) / 1000000
+          } else {
+            this.totalQuantity = Math.floor((this.totalMoney / this.detail.symbol_value) * 100) / 100;
+          }
+        }
+      }
+    },
+    changeValNum() {
+      if (this.quantity == '') {
+        this.tips = ''
+        this.totalMoney = '-'
+        this.totalQuantity = '-'
+      } else {
+        let minNum = Math.floor((this.detail.investment_min / this.detail.symbol_value) * 1000000) / 1000000;
+        let maxNum = Math.floor((this.detail.investment_max / this.detail.symbol_value) * 1000000) / 1000000;
+        if (this.quantity * 1 < minNum * 1) {
+          this.tips = this.$t('最小数量') + minNum + ' '
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else if (this.quantity * 1 > maxNum * 1) {
+          this.tips = this.$t('最大数量') + maxNum + ' '
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else {
+          this.tips = ''
+          this.totalQuantity = this.quantity
+          if (this.symbol !== "USDT") {
+            this.totalMoney = (this.quantity * this.detail.symbol_value).toFixed(6)
+          } else {
+            this.totalMoney = (this.quantity * this.detail.symbol_value).toFixed(2)
+          }
+        }
+      }
+    },
+    // 购买
+    async buyClick() {
+      if (this.type == 'amount') {
+        if (this.money == '') {
+          showToast(this.$t('请输入金额'))
+        } else {
+          this.submitOrder()
+        }
+      } else {
+        console.log(this.quantity)
+        if (this.quantity == '') {
+          showToast(this.$t('请输入数量'))
+        } else {
+          this.submitOrder()
+        }
+      }
+    },
+    all() {
+      this.tips = ''
+      this.money = this.detail.investment_max
+      this.totalMoney = this.detail.investment_max
+      if (this.symbol !== "USDT") {
+        this.quantity = Math.floor((this.detail.investment_max / this.detail.symbol_value) * 1000000) / 1000000
+        this.totalQuantity = Math.floor((this.detail.investment_max / this.detail.symbol_value) * 1000000) / 1000000
+      } else {
+        this.quantity = Math.floor((this.detail.investment_max / this.detail.symbol_value) * 100) / 100
+        this.totalQuantity = Math.floor((this.detail.investment_max / this.detail.symbol_value) * 100) / 100
+      }
+    }
+  },
+  computed: {
+    ...mapGetters('c2c', ['symbol', "currencySymbol", "exchangeCurrency"]),
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Field.name]: Field,
+    [Popup.name]: Popup,
+    [Cell.name]: Cell,
+    [Switch.name]: Switch,
+    [DropdownMenu.name]: DropdownMenu,
+    [DropdownItem.name]: DropdownItem,
+    [Button.name]: Button,
+    C2cTrade,
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/mixin.scss";
+@import "@/assets/css/copy2.scss";
+
+.c2cBuy {
+  ::v-deep .van-button {
+    border-radius: 10px;
+    background: #2EBD85;
+  }
+}
+
+
+.buy-item {
+
+  border-radius: 25px;
+  box-shadow: 0 0 8px rgba(0, 0, 0, .2);
+}
+
+.border-ra {
+  border-radius: 10px;
+}
+
+.buy-item-title {
+  position: relative;
+
+  // &:after {
+  //   @include border-1px('bottom');
+  // }
+}
+
+.buy-item-input {
+  input {
+    border-radius: 10px;
+    background: $input_background;
+  }
+
+  .text {
+    top: 50%;
+    transform: translateY(-50%);
+  }
+}
+
+
+
+
+.tips {
+  border-radius: 8px;
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/page/c2cCollection.vue b/src/views/C2C/c2c-trade/page/c2cCollection.vue
new file mode 100644
index 0000000..a4ee6b0
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/c2cCollection.vue
@@ -0,0 +1,135 @@
+<template>
+  <div id="full" class="w-full h-full c2cCollection mainBackground">
+    <assets-head :title="$t('C2C收款方式')" :backFunc="() => $router.replace('/c2cTrade')" />
+    <!--  判断是否有收款方式  -->
+    <div v-if="paymentList.length === 0" class="pt-50 pb-78 text-center bg-white">
+      <div class="flex justify-center items-center">
+        <img class="w-170 h-170" src="@/assets/image/c2c/23@3x1.png" alt="">
+      </div>
+      <div class="mt-8 text-grey font-24">{{$t('暂无支持的收款方式')}}</div>
+    </div>
+    <div v-else>
+      <car-item
+          class="pb-36"
+          v-for="(item, index) in paymentList"
+          :key="index"
+          :item="item"
+          @click="enterCollection(item, $event)"
+      />
+    </div>
+
+  </div>
+</template>
+
+<script>
+import otcApi from "@/service/otc";
+import {Collapse, CollapseItem, Icon} from "vant";
+import CarItem from "../components/CarItem.vue";
+import assetsHead from "@/components/normal-head/index.vue";
+
+export default {
+  name: "c2cCollection",
+  props: ['isEmpty', 'id'],
+  data() {
+    return {
+      show: true,
+      activeNames: [],
+      paymentList: [],
+      // carData: [
+      //   {
+      //     title: "银行卡",
+      //     number: "4367421420489044633",
+      //     name: "James",
+      //     bankName: "中国农业银行",
+      //     desc: "北京朝阳路支行",
+      //     type: 'CN'
+      //   },
+      //   {
+      //     title: "银行卡",
+      //     number: "4367421420489041111",
+      //     name: "James",
+      //     bankName: "中国银行",
+      //     desc: "北京朝阳路支行",
+      //     type: 'CN'
+      //   },
+      // ]
+    }
+  },
+  created() {
+    // otcApi.ctcPaymentMethodPayList({id: this.id}).then(res => {
+    //   this.paymentList = res.data;
+    //   console.log(this.paymentList);
+    // })
+    otcApi.ctcPaymentMethodUserPay({ id: this.id, language: this.$i18n.locale }).then(res => {
+      console.log('d111', res)
+      this.paymentList = res.data;
+    })
+  },
+  methods: {
+    change() {
+      setTimeout(() => {
+        if (this.activeNames.length > 0) {
+
+          this.show = false;
+        } else {
+          this.show = true;
+        }
+      }, 200)
+    },
+    // 折叠面板隐藏
+    hide() {
+      this.$refs.collapseItem.toggle(false);
+      this.show = true;
+    },
+    // 返回出售界面
+    enterCollection(paymentItem, e) { // 获取银行卡号
+
+      if (e.target.className.indexOf('edit') === -1) {
+        this.$router.replace({
+          name: 'c2cTrade',
+          query: {
+            type: this.$route.query.type,
+            total: this.$route.query.total,
+            data:this.$route.query.data,
+            reciveType: JSON.stringify(paymentItem),
+          }
+        })
+      }
+    }
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Collapse.name]: Collapse,
+    [CollapseItem.name]: CollapseItem,
+    assetsHead,
+    CarItem,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.c2cCollection{
+  ::v-deep .van-cell{
+    background: #F5F5F5;
+  }
+  ::v-deep .van-cell {
+    background: #F5F5F5;
+  }
+  ::v-deep .van-collapse-item__wrapper {
+    background: #F5F5F5;
+  }
+  ::v-deep .van-collapse-item__content {
+    padding: 0;
+  }
+}
+::v-deep .van-cell {
+  background: #F5F5F5;
+}
+::v-deep .van-collapse-item__wrapper {
+  margin-top: 36px;
+}
+::v-deep .van-collapse-item__content {
+  padding: 0;
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/page/c2cHelp.vue b/src/views/C2C/c2c-trade/page/c2cHelp.vue
new file mode 100644
index 0000000..c9578fb
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/c2cHelp.vue
@@ -0,0 +1,93 @@
+<template>
+    <div class="w-full">
+        <assets-head :title="$t('帮助')" />
+        <div class="px-32 pt-40 pb-100 c2cColor">
+            <div class="text-center mb-40 font-700">
+                <div class="flex items-center justify-center" @click="$router.push({ path: '/chat' })">
+                    <van-badge class="w-35 h-33 mr-22">
+                        <img class="w-full h-full " src="@/assets/image/c2c/Vector.png" alt="">
+                    </van-badge>
+                    <div class="font-28">{{ $t('联系买家') }}</div>
+                </div>
+            </div>
+            <div class="mb-40">
+                <p class="text-grey mb-10">Q:{{ $t('买家不付款,也没有回复怎么办?') }}</p>
+                <p>
+                    A:{{ $t('此订单有付款时间限制') }}&nbsp;<van-count-down class="currentColor" style="display:inline-block"
+                        @finish="finish" :time="fullTime" format="mm:ss"></van-count-down>
+                </p>
+            </div>
+            <div class="mb-40">
+                <p class="text-grey mb-10">Q:{{ $t('我可以要求取消订单么?', { 'TITLE': TITLE }) }}</p>
+                <p>A:{{ TITLE }}&nbsp;{{ $t('无法帮助你取消订单。买家可能在下单后根据您选择的付款方式付款。') }}</p>
+            </div>
+            <div class="mb-40">
+                <p class="text-grey mb-10">Q:{{ $t('为什么订单支付时限这么长?') }}</p>
+                <p>A:{{ $t('付款时限由广告方设定。部分支付方式不支持实时支付。这使广告方有足够的时间来确认付款状态。提示:您可以在C2C自选区选择支付时限较短的广告进行下单。') }}</p>
+            </div>
+            <div class="mb-40">
+                <p class="text-grey mb-10">Q:{{ $t('我还没有收到货款,如果买家要求我提前放币怎么办?') }}</p>
+                <p>A:{{ $t('首先确保您已收到付款。一旦您点击我已确认收款,您的数字货币将立即被释放给买家。我们将无法追回您的资产损失。') }}</p>
+            </div>
+            <div class="mb-40">
+                <p class="text-grey mb-10">Q:{{ $t('收到买家付款后订单被取消了怎么办?') }}</p>
+                <p>A:{{ $t('与买家沟通再下单或退款给买家以避免申述') }}</p>
+            </div>
+        </div>
+        <template v-if="state == 0">
+            <button class="text-grey h-97 lh-97 w-762 rounded-lg text-center fixed" :disabled="!showBtn"
+                :class="showBtn ? 'btnMain' : 'grey_bg'" style="bottom:44px;left:16px;right:16px;border:0"
+                @click="toshensu">{{ $t('申述') }}</button>
+        </template>
+        <template v-else>
+            <button class="text-white h-97 lh-97 w-762 rounded-lg text-center fixed btnMain"
+                style="bottom:44px;left:16px;right:16px;border:0" @click="toshensu">{{ $t('申述') }}</button>
+        </template>
+    </div>
+</template>
+
+<script>
+import {
+    Badge,
+    CountDown
+} from "vant";
+import assetsHead from "@/components/assets-head";
+export default {
+    props: ['expireTimeRemain'],
+    computed: {
+        fullTime() {
+            return this.time * 1 * 1000;
+            // return parseInt(this.time) * 60
+        }
+    },
+    components: {
+        assetsHead,
+        [Badge.name]: Badge,
+        [CountDown.name]: CountDown,
+    },
+    created() {
+        this.time = this.$route.query.expireTimeRemain
+        this.state = this.$route.query.state
+    },
+    data() {
+        return {
+            showBtn: false,
+            state: '0'
+        }
+    },
+    methods: {
+        finish() {
+            this.showBtn = true
+        },
+        toshensu() {
+            this.$router.push('/appeal/page')
+        },
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.currentColor {
+    color: $color_main;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2c-trade/page/c2cSell.vue b/src/views/C2C/c2c-trade/page/c2cSell.vue
new file mode 100644
index 0000000..8a982c1
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/c2cSell.vue
@@ -0,0 +1,407 @@
+<template>
+  <div>
+    <c2c-trade :title="$t('出售') + ' ' + $store.state.c2c.symbol" :detail="data" v-if="data.id">
+      <template #trade>
+        <div class="buy-item mt-40 w-full mainBackground c2cColor">
+          <div class="buy-item-title flex justify-between font-28 py-34 border-b-1 border-light-grey">
+            <div class="flex-1 text-center" :class="{ 'text-grey': genre === 'num' }" @click="typeSwitch('amount')">
+              {{ $t("按金额出售") }}
+            </div>
+            <div class="flex-1 text-center" :class="{ 'text-grey': genre === 'amount' }" @click="typeSwitch('num')">
+              {{ $t("按数量出售") }}
+            </div>
+          </div>
+          <div class="px-32 mt-40">
+            <div class="w-full buy-item-input relative box-border" v-show="genre === 'amount'">
+              <span class="font-28 absolute left-28 text font-700">{{
+                currencySymbol
+              }}</span>
+              <input class="w-full font-36 h-110 border-none box-border pl-96" type="text"
+                :placeholder="`${data.investment_min} - ${data.investment_max}`" v-model="money" @input="changeVal" />
+              <span class="font-28 absolute right-19 text" style="color: #1a6ebd" @click="all">{{ $t("全部") }}</span>
+            </div>
+            <div class="w-full mb-40 buy-item-input relative box-border" v-show="genre === 'num'">
+              <input class="w-full font-36 h-110 border-none box-border pl-30 font-400" type="number"
+                :placeholder="$t('请输入数量')" v-model="quantity" @input="changeValNum" />
+              <span class="font-28 absolute right-19 text">
+                <span class="mr-16" style="color: #b8bcc5">{{ $store.state.c2c.symbol }}</span>
+
+                <span style="color: #1a6ebd" @click="all">{{
+                  $t("全部")
+                }}</span>
+              </span>
+            </div>
+            <div v-if="tips" class="flex mt-12 text-red font-28">
+              {{ tips }}
+            </div>
+            <div v-show="genre === 'amount'" class="mt-18 font-20 text-grey">
+              {{ $t('可用余额') }} {{ Math.floor(usableVolume * 1000000) / 1000000 }} {{ $store.state.c2c.symbol }} ≈ {{
+                (Math.floor(usableVolume * 100000) / 100000 * data.symbol_value / 1).toFixed(2) }}
+              {{ currencySymbol }}
+            </div>
+            <div
+              class="flex justify-between items-center w-full py-20 my-36 pl-30 pr-36 box-border rounded-md tabBackground"
+              @click="toc2cCollection">
+              <div>
+                <span v-if="!reciveInfo.uuid" class="font-32" style="color: #b8bcc5">{{ $t("选择收款方式") }}</span>
+                <div v-else class="flex items-center font-30 c2cColor">
+                  <div class="w-8 h-32 rounded-full" style="background: #e7bb41"></div>
+                  <span class="mx-20">{{ reciveInfo.methodName }}</span>
+                  <span>{{ fullBankCarNumber }}</span>
+                </div>
+              </div>
+              <van-icon class="font-700" color="#B8BCC5" name="arrow" />
+            </div>
+            <div class="flex justify-between mb-12">
+              <span class="text-grey">{{ $t("数量") }}</span>
+              <span>{{ totalQuantity }}
+                {{ data.symbol && data.symbol.toUpperCase() }}</span>
+            </div>
+            <div class="flex justify-between">
+              <span class="text-grey">{{ $t("总额") }}</span>
+              <span>{{ totalMoney }} {{ currencySymbol }}</span>
+            </div>
+            <div class="w-full mt-24 pb-30">
+              <van-button color="#E35461" @click="SellClick" class="w-full font-30 buy-button" :disabled="loading"
+                type="primary">
+                <span v-if="!loading">{{ $t("出售") }}&nbsp;{{ data.symbol && data.symbol.toUpperCase() }}</span>
+                <van-loading v-else type="spinner" />
+              </van-button>
+            </div>
+          </div>
+        </div>
+      </template>
+      <template #desc>
+        <div class="mt-36">
+          <h2 class="font-28 font-400 c2cColor">{{ $t("交易条款") }}</h2>
+          <div class="mt-30 font-26 text-grey">
+            <p>{{ data.transaction_terms }}</p>
+          </div>
+        </div>
+      </template>
+    </c2c-trade>
+  </div>
+</template>
+
+<script>
+import { mapState, mapGetters } from "vuex";
+import otcApi from "@/service/otc.js";
+
+import { Icon, showToast } from "vant";
+import C2cTrade from "../components/C2cTrade.vue";
+import { _getBalance } from "@/service/trade.api";
+// import { formatTime } from "@/utils/utis";
+import { _getAllWallet } from "@/service/fund.api";
+
+// keep-alive
+export default {
+  name: "c2cSell",
+  props: ["type"],
+  data() {
+    return {
+      id: "", // 广告id
+      genre: "amount", // 按金额/数量购买
+      amount: "", // 金额
+      num: "", // 数量
+      session_token: "",
+      usableVolume: "",
+      data: {},
+      passwd: "", // 资金密码
+      tips: '',
+      money: '',
+      quantity: '',
+      totalMoney: '-',
+      totalQuantity: '-',
+      loading: false,
+      // orderInfo: {
+      //   unitPrice: "", // 单价
+      //   count: "", // 数量
+      //   totalPrice: "", // 总价
+      //   orderNumber: "", // 订单号
+      //   orderCreateTime: "", // 创建时间
+      //   paymentMethodId: "", // 支付方式id
+      //   methodName: "", // 支付名称
+      //   bankNumber: "", // 银行卡号
+      //   realName: "", // 卖家姓名
+      //   bankName: "", // 银行名
+      //   expire_time: "", // 支付时效
+
+      // },
+      reciveInfo: {},
+    };
+  },
+  created() {
+    // this.id = this.$route.query.id
+    this.id = this.$store.state.c2c.adv_id;
+    let { reciveType } = this.$route.query; // 支付方式
+    if (reciveType) {
+      reciveType = JSON.parse(reciveType);
+      this.reciveInfo = reciveType;
+      console.log("reciveType", reciveType);
+      this.data = JSON.parse(this.$route.query.data)
+      if (this.$route.query.type == 'amount') {
+        this.money = this.$route.query.total
+        this.totalMoney = this.money * 1
+        if (this.symbol !== "USDT") {
+          console.log(this.data.symbol_value)
+          this.totalQuantity = Math.floor((this.totalMoney / this.data.symbol_value) * 1000000) / 1000000
+        } else {
+          this.totalQuantity = Math.floor((this.totalMoney / this.data.symbol_value) * 100) / 100;
+        }
+      } else {
+        this.quantity = this.$route.query.total * 1
+        this.totalQuantity = this.quantity
+        if (this.symbol !== "USDT") {
+          console.log(this.quantity)
+          console.log(this.data.symbol_value)
+          this.totalMoney = (this.quantity * this.data.symbol_value).toFixed(6)
+        } else {
+          this.totalMoney = (this.quantity * this.data.symbol_value).toFixed(2)
+        }
+      }
+      this.genre = this.$route.query.type
+    }
+    this.initData();
+    // 获取余额
+    _getAllWallet().then((res) => {
+      let walletList = res.extends;
+      let initObj = walletList.find(item => {
+        return item.symbol.toLowerCase() == this.$store.state.c2c.symbol.toLowerCase()
+      })
+      this.usableVolume = initObj.usable
+    });
+  },
+  mounted() {
+    // this.$bus.$on("returnPwd", (pwd) => {
+    //   this.passwd = pwd;
+    // });
+    // 设置关于订单的信息
+  },
+  beforeDestroy() {
+    // this.$bus.$off("returnPwd");
+  },
+  methods: {
+    toc2cCollection() {
+      let total = ''
+      if (this.genre == 'amount') {
+        total = this.money
+      } else {
+        total = this.quantity
+      }
+      this.$router.replace({ path: '/c2cCollection', query: { id: this.data.id, type: this.genre, total, data: JSON.stringify(this.data) } })
+    },
+    initData() {
+      otcApi.ctcAdvertGetDetail({ id: this.id, language: this.$i18n.locale }).then((res) => {
+        this.data = res.data;
+      });
+    },
+    // 切换类型
+    typeSwitch(type) {
+      this.genre = type;
+      this.tips = ''
+      this.money = ''
+      this.quantity = ''
+      this.totalMoney = '-'
+      this.totalQuantity = '-'
+    },
+    changeVal(e) {
+      // e.target.value = e.target.value.replace('-', ''); 不能输入小数了
+      //this[this.type] = e.target.value;
+      if (this.money == '') {
+        this.tips = ''
+        this.totalMoney = '-'
+        this.totalQuantity = '-'
+      } else {
+        if (this.money * 1 < this.data.investment_min * 1) {
+          this.tips = this.$t('最小金额') + this.data.investment_min + ' ' + this.exchangeCurrency
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else if (this.money * 1 > this.data.investment_max * 1) {
+          this.tips = this.$t('最大金额') + this.data.investment_max + ' ' + this.exchangeCurrency
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else {
+          this.tips = ''
+          this.totalMoney = this.money
+          if (this.symbol !== "USDT") {
+            this.totalQuantity = Math.floor((this.totalMoney / this.data.symbol_value) * 1000000) / 1000000
+          } else {
+            this.totalQuantity = Math.floor((this.totalMoney / this.data.symbol_value) * 100) / 100;
+          }
+        }
+      }
+    },
+    changeValNum() {
+      if (this.quantity == '') {
+        this.tips = ''
+        this.totalMoney = '-'
+        this.totalQuantity = '-'
+      } else {
+        let minNum = Math.floor((this.data.investment_min / this.data.symbol_value) * 1000000) / 1000000;
+        let maxNum = Math.floor((this.data.investment_max / this.data.symbol_value) * 1000000) / 1000000;
+        if (this.quantity * 1 < minNum * 1) {
+          this.tips = this.$t('最小数量') + minNum + ' '
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else if (this.quantity * 1 > maxNum * 1) {
+          this.tips = this.$t('最大数量') + maxNum + ' '
+          this.totalMoney = '-'
+          this.totalQuantity = '-'
+        } else {
+          this.tips = ''
+          this.totalQuantity = this.quantity
+          if (this.symbol !== "USDT") {
+            this.totalMoney = (this.quantity * this.data.symbol_value).toFixed(6)
+          } else {
+            this.totalMoney = (this.quantity * this.data.symbol_value).toFixed(2)
+          }
+        }
+      }
+    },
+    // 购买
+    async SellClick() {
+      if (!this.reciveInfo.uuid) {
+        showToast(this.$t('请选择收款方式'));
+        return;
+      }
+      // const index = this.data.pay_type_name.split(',').findIndex(item => item === this.reciveInfo.methodName)
+      console.log(this.exchangeCurrency)
+      this.loading = true
+      let res = await otcApi.getSessionToken({
+        currency: this.exchangeCurrency
+      });
+      this.session_token = res.data.session_token;
+      const params = {
+        session_token: this.session_token, // session_token
+        c2c_advert_id: this.data.id,
+        payment_method_id: this.reciveInfo.uuid, //this.data.pay_type.split(',')[index]
+        direction: "sell",
+        order_type: this.genre === "amount" ? "by_amount" : "by_num", // 'by_num'
+        amount: this.genre === "amount" ? this.totalMoney / 1 : "", // 金额
+        coin_amount: this.genre === "amount" ? "" : this.totalQuantity / 1, // 数量
+        remark: this.data.remark,
+      };
+
+      // 获取订单号
+      otcApi.ctcOrderOpen(params).then((res) => {
+        this.loading = false
+        this.$store.commit("c2c/SET_ORDER_NO", res.data.order_no);
+        this.$router.push({ path: "/sellGenerate" });
+      }).catch(err => {
+        this.loading = false
+      })
+    },
+    // 全部点击
+    all() {
+      this.tips = ''
+      let usableMoney = (Math.floor(this.usableVolume * 100000) / 100000 * this.data.symbol_value / 1).toFixed(2)
+      if (usableMoney * 1 <= this.data.investment_max) {
+        this.money = usableMoney
+        this.totalMoney = usableMoney
+        if (this.symbol !== "USDT") {
+          this.quantity = Math.floor((usableMoney / this.data.symbol_value) * 1000000) / 1000000
+          this.totalQuantity = Math.floor((usableMoney / this.data.symbol_value) * 1000000) / 1000000
+        } else {
+          this.quantity = Math.floor((usableMoney / this.data.symbol_value) * 100) / 100
+          this.totalQuantity = Math.floor((usableMoney / this.data.symbol_value) * 100) / 100
+        }
+      } else {
+        this.money = this.data.investment_max
+        this.totalMoney = this.data.investment_max
+        if (this.symbol !== "USDT") {
+          this.quantity = Math.floor((this.data.investment_max / this.data.symbol_value) * 1000000) / 1000000
+          this.totalQuantity = Math.floor((this.data.investment_max / this.data.symbol_value) * 1000000) / 1000000
+        } else {
+          this.quantity = Math.floor((this.data.investment_max / this.data.symbol_value) * 100) / 100
+          this.totalQuantity = Math.floor((this.data.investment_max / this.data.symbol_value) * 100) / 100
+        }
+      }
+    },
+  },
+  watch: {
+    // paymentMethod() {
+    //   if (Object.prototype.toString.call(this.paymentMethod) === '[object Object]') {
+    //     console.log(this.paymentMethod)
+    //     this.orderInfo.paymentMethodId = this.paymentMethod.id;
+    //     this.orderInfo.methodName = this.paymentMethod.methodName;
+    //     this.orderInfo.bankNumber = this.paymentMethod.paramValue1;
+    //     this.orderInfo.realName = this.paymentMethod.realName;
+    //     this.orderInfo.bankName = this.paymentMethod.paramName1;
+    //   }
+    // }
+  },
+  computed: {
+    ...mapState("home", ["currency"]),
+    ...mapGetters("c2c", ["symbol", "currencySymbol", "exchangeCurrency"]),
+    fullMethodName() {
+      if (this.paymentMethod) {
+        return this.paymentMethod.methodName;
+      } else {
+        return "";
+      }
+    },
+    fullBankCarNumber() {
+      if (!this.reciveInfo.uuid) return;
+      return this.reciveInfo.paramValue1.replace(
+        /^([0-9]{4})[0-9]*([0-9]{4})$/,
+        "$1******$2"
+      );
+    },
+  },
+  components: {
+    [Icon.name]: Icon,
+    C2cTrade,
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/mixin.scss";
+@import "@/assets/css/copy2.scss";
+
+::v-deep .van-button {
+  border-radius: 10px;
+  background: #2EBD85;
+}
+
+.buy-item {
+  border-radius: 25px;
+  box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
+}
+
+.border-ra {
+  border-radius: 10px;
+}
+
+.buy-item-title {
+  position: relative;
+
+  // &:after {
+  //   @include border-1px("bottom");
+  // }
+}
+
+.buy-item-input {
+  input {
+    border-radius: 10px;
+    background: $input_background;
+  }
+
+  .text {
+    top: 50%;
+    transform: translateY(-50%);
+  }
+}
+
+.border-bottom-1px {
+  position: relative;
+
+  // &:after {
+  //   @include border-1px("bottom");
+  // }
+}
+
+.tips {
+  border-radius: 8px;
+}
+</style>
diff --git a/src/views/C2C/c2c-trade/page/tradeOrderDetail.vue b/src/views/C2C/c2c-trade/page/tradeOrderDetail.vue
new file mode 100644
index 0000000..d53818b
--- /dev/null
+++ b/src/views/C2C/c2c-trade/page/tradeOrderDetail.vue
@@ -0,0 +1,41 @@
+<template>
+    <div class="w-full h-full">
+        <trade-success-detail :back="back">
+          
+        </trade-success-detail>
+    </div>
+</template>
+
+<script>
+import {
+    mapState
+} from "vuex";
+import TradeSuccessDetail from "@/page/c2c-trade/components/TradeSuccessDetail";
+export default {
+    name: "TradeSuccessDetailSell",
+    computed: {
+        ...mapState('c2cSell', ['orderInfo'])
+    },
+    components: {
+        TradeSuccessDetail,
+    },
+    data(){
+        return {
+            back:true
+        }
+    },
+    created(){
+        if (this.$route.query.back){
+            this.back = false
+        }
+    },
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .order-data {
+    .title {
+        padding-left: 32px;
+    }
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/appeal/Appeal.vue b/src/views/C2C/c2cOrder/appeal/Appeal.vue
new file mode 100644
index 0000000..8e64e9f
--- /dev/null
+++ b/src/views/C2C/c2cOrder/appeal/Appeal.vue
@@ -0,0 +1,241 @@
+<template>
+  <div id="full" class="w-full h-full">
+    <order-nav :title="$t('申诉')" />
+    <div class="pt-22 px-32 mainBackground pb-50">
+      <c2c-input class="mb-44" :label="$t('申诉理由 (必选)')" :placeholder="$t('我已付款,但订单已取消')" v-model:value="info.reason" />
+      <c2c-input :label="$t('申诉描述')">
+        <textarea class="w-full h-250 inputBackground c2cColor" :placeholder="$t('请尽可能完整的描述信息')"
+          v-model="info.description" />
+      </c2c-input>
+      <div class="mt-66">
+        <div class="font-28 mb-13 c2cColor">{{ $t('添加凭证 (必填)') }}</div>
+        <p class="font-22 text-grey">{{ $t('付款及沟通记录的截图或音视频,最多5个文件,总大小不超过50MB。') }}</p>
+        <div class="mt-32">
+          <van-uploader v-model="fileList" :afterRead="afterRead" multiple :max-count="1" :max-size="50000 * 1024"
+            accept="image/*,video/*" @oversize="oversize">
+            <div class="uploader">
+              <van-icon name="plus" />
+            </div>
+          </van-uploader>
+        </div>
+      </div>
+    </div>
+    <div class="px-32 mt-16 pt-28 pb-26 mainBackground connect">
+      <van-cell-group>
+        <van-cell>
+          <template #title>
+            <span class="font-28">{{ $t('联系人') }}</span>
+          </template>
+          <template #default>
+            <input class="w-244" type="text" :placeholder="$t('联系人')" v-model="info.name">
+          </template>
+        </van-cell>
+        <van-cell class="mt-88">
+          <template #title>
+            <span class="font-28">{{ $t('联系电话') }}</span>
+          </template>
+          <template #default>
+            <div class="flex items-center justify-end">
+              <input class="w-244" type="text" :placeholder="$t('请输入联系方式')" v-model="info.phone">
+              <img class="w-23 h-23 ml-16" src="@/assets/image/c2c/Group1222.png" alt="">
+            </div>
+          </template>
+        </van-cell>
+      </van-cell-group>
+    </div>
+    <div class="px-32 mt-200 mainBackground pt-36 pb-156">
+      <van-button :disabled="!fullDisabled" color="#1D91FF" class="w-full h-100 rounded-xl" type="info"
+        @click="onAppeal">{{ $t('我要申述') }}
+      </van-button>
+    </div>
+    <!--  弹窗  -->
+    <van-popup position="right" class="w-full h-full" v-model:show="show">
+      <appeal-waiting @back="back" />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+import {
+  Uploader,
+  Icon,
+  Toast,
+  CellGroup,
+  Cell,
+  Popup,
+  showToast,
+  showLoadingToast,
+  closeToast,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import C2cInput from "../../components/C2cInput.vue";
+import OtcCircle from "@/components/otcCircle/index.vue";
+import AppealWaiting from "../components/appeal/AppealWaiting.vue";
+import AppealSuccess from "../components/appeal/AppealSuccess.vue";
+import {
+  mapGetters,
+  mapMutations,
+} from "vuex";
+import {
+  REASON_FOR_CANCELLATION
+} from "@/store/const.store";
+import { _uploadImage } from "@/service/upload.api.js";
+import otcApi from "@/service/otc";
+
+export default {
+  name: "Appeal",
+  data() {
+    return {
+      show: false,
+      disable: false,
+      info: {
+        reason: '', // 理由
+        description: '', // 描述
+        name: '',
+        phone: '',
+      },
+      fileList: [],
+    }
+  },
+  computed: {
+    ...mapGetters('c2c', ['getReasonForCancellation', 'orderNo']),
+    fullDisabled() {
+      return this.disable && this.fileList.length > 0
+    }
+  },
+  created() {
+    this.info.reason = this.getReasonForCancellation
+  },
+  beforeDestroy() {
+    this[REASON_FOR_CANCELLATION]('');
+  },
+  methods: {
+    ...mapMutations('c2c', [REASON_FOR_CANCELLATION]),
+    afterRead(file) {
+      file.status = 'uploading'
+      file.message = this.$t('上传中...')
+      // 上传图片到服务器
+      _uploadImage(file).then(res => {
+        file.status = 'success';
+        file.message = this.$t('上传成功');
+        file.resURL = res
+      }).catch(err => {
+        file.status = 'failed';
+        file.message = this.$t('图片上传失败');
+      })
+    },
+    // 超出大小
+    oversize() {
+      showToast(this.$t('超出50MB!'))
+    },
+    back() {
+      this.show = false;
+      this.$router.push('/wantBuy')
+    },
+    // 申诉
+    async onAppeal() {
+      showLoadingToast({duration:0})
+      const params = {
+        order_no: this.orderNo,
+        ...this.info,
+        img: this.fileList[0].resURL
+      }
+
+      console.log(params);
+
+      const res = await otcApi.c2cAppeal(params);
+      closeToast();
+      this.show = true;
+    }
+  },
+  watch: {
+    info: {
+      deep: true,
+      handler() {
+        const res = Object.keys(this.info).filter(key => {
+          return this.info[key] === "" || this.info[key] === undefined
+        })
+        console.log(res);
+        this.disable = res.length === 0;
+      },
+      immediate: true
+    }
+  },
+  components: {
+    [Uploader.name]: Uploader,
+    [Icon.name]: Icon,
+    [CellGroup.name]: CellGroup,
+    [Cell.name]: Cell,
+    [Popup.name]: Popup,
+    OrderNav,
+    C2cInput,
+    OtcCircle,
+    AppealWaiting,
+    AppealSuccess,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+::v-deep .payment-input {
+  input {
+    height: 90px;
+  }
+}
+
+textarea {
+  &::placeholder {
+    color: #B8BCC5;
+  }
+}
+
+.uploader {
+  position: relative;
+  width: 180px;
+  height: 180px;
+  border: 2px dashed #EAEBEE;
+  background: $tab_background;
+
+  .van-icon {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    font-weight: 700;
+    font-size: 50px;
+    color: #9399A4;
+  }
+
+}
+
+.connect {
+  input {
+    margin: 0;
+    font-size: 28px;
+    box-sizing: border-box;
+    border: none;
+    background: $main_background;
+  }
+}
+
+#full {
+  ::v-deep {
+
+    .van-cell-group, .van-cell {
+      background: $main_background;
+      color: $text_color1;
+    }
+
+    .van-cell__value {
+      color: $text_color;
+    }
+
+    .van-button--info {
+      background: $btn_main;
+      border-color: $btn_main;
+    }
+  }
+
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/appeal/index.vue b/src/views/C2C/c2cOrder/appeal/index.vue
new file mode 100644
index 0000000..2eb0a65
--- /dev/null
+++ b/src/views/C2C/c2cOrder/appeal/index.vue
@@ -0,0 +1,102 @@
+<template>
+  <div id="full">
+    <order-nav :title="$t('对订单申诉')" />
+    <div class="px-32 mt-22">
+      <h2 class="font-29 font-400 c2cColor">{{ $t('联系对方协商解决') }}</h2>
+      <div class="rounded-lg px-32 pb-30 pt-49 mt-31 box-border tabBackground c2cColor">
+        <div class="mb-60 text-center">
+          <img class="w-128" src="@/assets/image/c2c/Vector1.png" alt="">
+        </div>
+        <div class="font-28 text-center">
+          <p>{{ $t('如存在交易问题,直接与对联系处理是最有效的方式。联系对方协商解决') }}</p>
+          <p class="py-5">{{ $t('您可在聊天窗口上传凭证及账号信息,联系对方协商解决') }}</p>
+          <p>{{ $t('以双方协商核实。联系对方协商解决') }}</p>
+        </div>
+        <van-button color="#1D91FF" class="w-full h-80 mt-60 font-30 rounded-xl" type="info" @click="contact">{{
+          $t('联系对方协商解决') }}</van-button>
+      </div>
+      <div class="mt-56">
+        <div class="mb-20 text-grey font-26" @click="$router.push('/chat')">{{ $t('申诉联系对方协商解决') }}</div>
+        <van-divider class="diviLine" />
+        <div class="mb-56 text-grey font-26 ">{{ $t('本次交易已结束,资产已不在平台托管中。平台无法帮您直接追回 资产,请知晓。联系对方协商解决') }}
+        </div>
+        <van-cell-group>
+          <van-cell @click="show = true">
+            <template #title>
+              <span class="textColor font-30">{{ $t('对订单有疑问联系对方协商解决') }}</span>
+            </template>
+            <template #default>
+              <van-icon class="font-700 text-grey" name="arrow" />
+            </template>
+          </van-cell>
+          <!-- <van-cell class="mt-88">
+            <template #title>
+              <span class="text-black font-30">{{$t('其他联系对方协商解决')}}</span>
+            </template>
+            <template #default>
+              <van-icon class="font-700 text-grey" name="arrow"/>
+            </template>
+          </van-cell> -->
+        </van-cell-group>
+      </div>
+    </div>
+
+    <!--  申诉  -->
+    <van-popup v-model:show="show">
+      <appeal-msg />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+import {
+  Button,
+  Divider,
+  CellGroup,
+  Cell,
+  Icon,
+  Popup,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import AppealMsg from "../components/appeal/AppealMsg.vue";
+
+export default {
+  name: "AppealPage",
+  data() {
+    return {
+      show: false,
+    }
+  },
+  methods: {
+    contact() { //
+      // console.log(11111)
+      this.$router.push('/chat')
+    }
+  },
+  components: {
+    [Button.name]: Button,
+    [Divider.name]: Divider,
+    [CellGroup.name]: CellGroup,
+    [Cell.name]: Cell,
+    [Icon.name]: Icon,
+    [Popup.name]: Popup,
+    OrderNav,
+    AppealMsg,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.van-popup {
+  border-radius: 10px;
+}
+
+.van-cell {
+  background: $main_background;
+}
+.van-button--info {
+  background: $btn_main;
+  border-color: $btn_main;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/cancel-order/cancelOrder.vue b/src/views/C2C/c2cOrder/cancel-order/cancelOrder.vue
new file mode 100644
index 0000000..6a55013
--- /dev/null
+++ b/src/views/C2C/c2cOrder/cancel-order/cancelOrder.vue
@@ -0,0 +1,193 @@
+<template>
+  <div class="w-full h-full">
+    <div class="w-full h-full">
+      <order-nav :title="$t('取消订单')" />
+      <div class="px-30 mt-30">
+        <div class="flex rounded-2xl box-border px-24 pt-24 pb-31 tabBackground">
+          <img class="w-32 h-32 mr-18" src="@/assets/image/c2c/Group41.png" alt="">
+          <div class="font-26 c2cColor">
+            <p class="font-28">{{ $t('温馨提示') }}</p>
+            <p class="my-20">{{ $t('1. 如果您已经向卖家付款,请千万不要取消订单。') }}</p>
+            <p>2. {{ $t('累计3笔取消,当日不可再购买。') }}</p>
+          </div>
+        </div>
+        <div class="mt-44">
+          <h2 class="font-30 font-400 c2cColor">{{ $t('请告诉我们您为什么要取消订单?') }}</h2>
+          <van-radio-group v-model="radio">
+            <van-radio class="mt-66" v-for="(item, index) in radioItems" :key="index" :name="item.title">
+              <span>{{ item.title }}</span>
+              <template #icon="props">
+                <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
+              </template>
+            </van-radio>
+            <div class="flex items-center h-100 mt-30 tabBackground">
+              <van-radio name="其他">
+                <span>{{ $t('其他') }}</span>
+                <template #icon="props">
+                  <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
+                </template>
+              </van-radio>
+            </div>
+          </van-radio-group>
+          <div class="textarea-wrapper relative mt-30 tabBackground">
+            <textarea @input="changeVal" class="rounded-xl textarea-text" :placeholder="$t('请输入取消理由')" maxlength="160"
+              v-model="other"></textarea>
+            <span class="absolute bottom-30 right-22 font-25 text-grey">{{ inputNum }}/160</span>
+          </div>
+        </div>
+        <div class="w-full mt-60 pb-100">
+          <van-button :disabled="isDisabled" class="w-full rounded-xl" color="#1D91FF" type="info"
+            @click="enterCancelOrder">{{ $t('确认取消订单') }}
+          </van-button>
+        </div>
+      </div>
+    </div>
+    <!-- 取消订单成功 -->
+    <van-popup class="w-full h-full" position="right" v-model:show="show">
+      <cancel-success :detail="detail" />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+import { Button, Popup, Radio, RadioGroup, showToast } from 'vant';
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import CancelSuccess from "../components/order-generation/CancelSuccess.vue";
+import otcApi from '@/service/otc'
+import {
+  mapMutations
+} from "vuex";
+
+import {
+  REASON_FOR_CANCELLATION
+} from "@/store/const.store";
+
+export default {
+  name: "cancelOrder",
+  data() {
+    return {
+      show: false, // 是否显示取消成功页面
+      radio: this.$t('我不想交易了'),
+      activeIcon: new URL('@/assets/image/c2c/Group1206.png', import.meta.url).href,
+      inactiveIcon: new URL('@/assets/image/c2c/Ellipse112.png', import.meta.url).href,
+      other: '', // 其他
+      detail: {}, //取消后详情
+      inputNum: 0,
+      radioItems: [
+        {
+          title: this.$t('我不想交易了'),
+        },
+        {
+          title: this.$t('我不满足广告交易条款的要求'),
+        },
+        {
+          title: this.$t('卖家要额外收取费用'),
+        },
+        {
+          title: this.$t('卖家收款方式右问题,无法成功打款'),
+        },
+      ]
+    }
+  },
+  methods: {
+    ...mapMutations('c2c', [REASON_FOR_CANCELLATION]),
+    changeVal(e) {
+      this.inputNum = e.target.value.length
+    },
+    enterCancelOrder() {
+      let cancelText;
+      if (this.radio === '其他') {
+        cancelText = this.other;
+      } else {
+        cancelText = this.radio;
+      }
+
+      this[REASON_FOR_CANCELLATION](cancelText);
+
+      const remark = this.other || this.radio
+      const order_no = this.$store.state.c2c.order_no
+      console.log(order_no, remark)
+      // 取消订单
+      otcApi.ctcOrderCancel({ order_no, remark }).then(async () => {
+        const res = await otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale });
+        this.detail = res.data
+        this.show = true
+        showToast(this.$t('取消成功'))
+      })
+    }
+  },
+  computed: {
+    // ...mapState('c2cBuy', ['count', 'totalPrice', 'createOrderTime', 'orderNumber'])
+    isDisabled() {
+      if (this.radio === '其他') {
+        return this.inputNum === 0
+      } else {
+        return false
+      }
+    }
+  },
+  created() {
+    // console.log(this.count, this.totalPrice, this.createOrderTime, this.orderNumber)
+    // const { detail } = this.$route.query
+    // this.detail = JSON.parse(detail)
+  },
+  components: {
+    [RadioGroup.name]: RadioGroup,
+    [Radio.name]: Radio,
+    [Button.name]: Button,
+    [Popup.name]: Popup,
+    OrderNav,
+    CancelSuccess,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.img-icon {
+  width: 32px;
+  height: 32px;
+}
+
+.textarea-wrapper {
+  textarea {
+    width: 100%;
+    height: 304px;
+    padding: 30px 22px;
+    box-sizing: border-box;
+    background: transparent;
+
+    &::placeholder {
+      color: #B8BCC5;
+    }
+  }
+}
+
+.w-full {
+  ::v-deep .order-data {
+    .title {
+      color: #5EBA89;
+    }
+  }
+
+  ::v-deep {
+
+    .van-radio {
+      align-items: flex-start;
+      padding: 8px 0;
+    }
+
+    .van-radio__label {
+      color: $text_color1;
+    }
+
+    .van-button--info {
+      background: $btn_main;
+      border-color: $btn_main;
+    }
+  }
+  .textarea-text{
+    color: $text_color;
+  }
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/components/appeal/AppealMsg.vue b/src/views/C2C/c2cOrder/components/appeal/AppealMsg.vue
new file mode 100644
index 0000000..b6d5b46
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/appeal/AppealMsg.vue
@@ -0,0 +1,66 @@
+<template>
+  <div class="w-600 p-50 box-border rounded-2xl c2cColor">
+    <div v-if="show">
+      <h2 class="font-35 font-400">{{ $t('温馨提示') }}</h2>
+      <div class="mt-38 mb-44 font-26">
+        <div>
+          <p class="lh-40">{{ $t('解决方案1:') }}</p>
+          <p class="lh-40">{{ $t('如果您付款但订单被取消,您的资产将无 法自动退回。请与卖家沟通并要求卖家退款。') }}</p>
+        </div>
+        <div class="mt-39">
+          <p class="lh-40">{{ $t('解决方案2:') }}</p>
+          <p class="lh-40">{{ $t('单击下面的按钮,从卖家的个人详情页再下一笔') }}<span style="color: #E35461">{{ $t('相同金额') }}</span>{{
+            $t('的订单。然后点击“我已付款,通知卖家”,通过聊天向卖家说明情况。如果卖家没有任何在线广告,请点击【申诉】按钮。') }}
+          </p>
+        </div>
+      </div>
+      <van-button color="#1D91FF" class="w-full h-80
+        rounded-xl" type="info" @click="$router.push({ path: '/wantBuy/c2cBuy' })">{{ $t('再下一单') }}</van-button>
+      <div class="mt-22 font-30 text-center c2cColor" @click="show = false">{{ $t('申诉') }}</div>
+    </div>
+    <div v-else>
+      <h2 class="font-35 font-400">{{ $t('温馨提示') }}</h2>
+      <div class="mt-38 mb-44 font-26">
+        <p>· {{ $t('如有疑问,请先联系对方处理。') }}</p>
+        <p class="my-40">· {{ $t('客服介入后会协助您处理纠纷,但不保证追回资金。') }}</p>
+        <p>· {{ $t('恶意申诉属于扰乱平台正常运营秩序的行为,情节严重将冻结账户。') }}</p>
+      </div>
+      <van-button color="#1D91FF" class="w-full h-80
+        rounded-xl" type="info" @click="$router.push({ path: '/appeal/page' })">{{ $t('我知道了') }}</van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  Button,
+} from "vant";
+
+export default {
+  name: "Appeal",
+  data() {
+    return {
+      show: true,
+    }
+  },
+  components: {
+    [Button.name]: Button,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.van-popup {
+  border-radius: 10px;
+}
+
+.van-cell {
+  background: $main_background;
+}
+
+.van-button--info {
+  background: $btn_main;
+  border-color: $btn_main;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/components/appeal/AppealSuccess.vue b/src/views/C2C/c2cOrder/components/appeal/AppealSuccess.vue
new file mode 100644
index 0000000..16fb525
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/appeal/AppealSuccess.vue
@@ -0,0 +1,54 @@
+<template>
+  <div class="w-full h-full">
+    <order-nav :title="$t('申述提交')" :back="false" @back="hide"/>
+    <div class="mt-70">
+      <div class="text-center">
+        <img class="w-122 h-122" src="@/assets/image/c2c/Group100.png" alt="">
+        <div class="mt-35 font-700 font-56 textColor">{{$t('申诉成功')}}</div>
+        <div class="mt-24 font-28 text-grey">
+          <p class="mb-15 font-600">100 USDT</p>
+          <p>{{$t('已返还至您的账户')}}</p>
+        </div>
+      </div>
+    </div>
+    <div class="px-33 mt-92">
+      <order-data
+        :count="count"
+        :total-price="totalPrice"
+        :order-number="orderNumber"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  mapState
+} from "vuex";
+
+import {Button} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import OrderData from "../order-data/OrderData.vue";
+
+export default {
+  name: "AppealWaiting",
+  methods: {
+    hide() {
+      console.log(213)
+      this.$emit("back");
+    }
+  },
+  computed: {
+    ...mapState('c2cBuy', ["count", "totalPrice", "orderNumber"])
+  },
+  components: {
+    [Button.name]:Button,
+    OrderNav,
+    OrderData,
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/components/appeal/AppealWaiting.vue b/src/views/C2C/c2cOrder/components/appeal/AppealWaiting.vue
new file mode 100644
index 0000000..6473dbd
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/appeal/AppealWaiting.vue
@@ -0,0 +1,50 @@
+<template>
+<div class="w-full h-full">
+  <order-nav :title="$t('申述提交')" :back="false" @back="hide"/>
+  <div class="mt-70">
+    <div class="text-center">
+      <img class="w-122 h-122" style="margin: 0 auto;" src="@/assets/image/c2c/Group100.png" alt="">
+      <div class="mt-35 font-700 font-56 textColor">{{$t('提交成功')}}</div>
+      <div class="mt-10 font-28 text-grey">
+        <p class="mb-15">{{$t('您的资料已成功上传!')}}</p>
+        <p>{{$t('系统将在三个工作日内审核完毕,请您耐心等候。')}}</p>
+      </div>
+    </div>
+  </div>
+  <div class="px-33 mt-92">
+    <van-button
+        color="#1D91FF"
+        class="w-full h-100 rounded-xl"
+        type="info"
+        @click="tokefu"
+    >{{$t('联系客服')}}
+    </van-button>
+    <div @click="hide" class="mt-34 font-36 text-center" style="color: #1D91FF">{{$t('返回')}}</div>
+  </div>
+</div>
+</template>
+
+<script>
+import {Button} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+export default {
+  name: "AppealWaiting",
+  components: {
+    [Button.name]:Button,
+    OrderNav,
+  },
+  methods:{
+    tokefu() {
+      this.$router.push('/customerService')
+    },
+    hide() {
+      console.log(213)
+      this.$emit("back");
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/C2C/c2cOrder/components/footer/OrderFooter.vue b/src/views/C2C/c2cOrder/components/footer/OrderFooter.vue
new file mode 100644
index 0000000..cddd47d
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/footer/OrderFooter.vue
@@ -0,0 +1,89 @@
+<template>
+  <van-tabbar
+    class="h-160"
+    v-model="active"
+    route
+    active-color="#000"
+    inactive-color="#B8BCC5"
+  >
+    <van-tabbar-item
+      v-for="(item, index) in footer"
+      :key="index"
+      replace
+      :to="item.path"
+    >
+      <span>{{ item.title }}</span>
+      <template #icon="props">
+        <img :src="props.active ? item.icon.active : item.icon.inactive" />
+      </template>
+    </van-tabbar-item>
+  </van-tabbar>
+</template>
+
+<script>
+import { Tabbar, TabbarItem } from 'vant'
+
+export default {
+  name: 'OrderFooter',
+  data() {
+    return {
+      active:'',
+      footer: [
+        {
+          title: 'c2c',
+          path: '/c2c/receivingBuy',
+          icon: {
+            active: require('@/assets/image/c2c/c2c2.png'),
+            inactive: require('@/assets/image/c2c/c2c1.png'),
+          },
+        },
+        {
+          title: '订单',
+          path: '/c2c/orderList',
+          icon: {
+            active: require('@/assets/image/c2c/order2.png'),
+            inactive: require('@/assets/image/c2c/order1.png'),
+          },
+        },
+        {
+          title: '广告',
+          path: '/c2c/advertise',
+          icon: {
+            active: require('@/assets/image/c2c/advertise2.png'),
+            inactive: require('@/assets/image/c2c/advertise1.png'),
+          },
+        },
+        {
+          title: '我的',
+          path: '/c2c/c2cUser',
+          icon: {
+            active: require('@/assets/image/c2c/user2.png'),
+            inactive: require('@/assets/image/c2c/user1.png'),
+          },
+        },
+      ],
+    }
+  },
+  components: {
+    [Tabbar.name]: Tabbar,
+    [TabbarItem.name]: TabbarItem,
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .van-tabbar {
+  box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.05);
+}
+
+::v-deep .van-tabbar-item__icon {
+  img {
+    width: 44px;
+    height: 44px;
+  }
+}
+
+::v-deep .van-tabbar-item__text {
+  font-size: 24px;
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/components/order-data/OrderData.vue b/src/views/C2C/c2cOrder/components/order-data/OrderData.vue
new file mode 100644
index 0000000..d957526
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/order-data/OrderData.vue
@@ -0,0 +1,127 @@
+<template>
+  <div class="order-data">
+    <div class="flex items-center font-31 mb-42 c2cColor">
+      <span class="title" :style="{ 'color': detail.direction === 'buy' ? '#2EBD85' : '#E35461' }">
+        {{ detail.direction === 'buy' ? $t('购买') : $t('卖出') }}
+      </span>
+      <span class="mx-15">{{ detail.symbol && detail.symbol.toUpperCase() }}</span>
+      <img class="w-36 h-36" src="@/assets/image/c2c/U1.png" alt="">
+    </div>
+    <van-cell-group>
+      <van-cell :title="$t('总额')">
+        <template #default>
+          <h2 class="font-700 font-36">{{ currencySymbol }} {{ detail.amount }}</h2>
+        </template>
+      </van-cell>
+      <van-cell :title="$t('单价')">
+        <template #default>
+          <span>{{ currencySymbol }} </span>
+          <span>{{ detail.symbolValue }}</span>
+        </template>
+      </van-cell>
+      <van-cell :title="$t('数量')"
+        :value="`${detail.symbol == 'usdt' ? Math.floor(detail.coinAmount * 100) / 100 : Math.floor(detail.coinAmount * 1000000) / 1000000} ${detail.symbol && detail.symbol.toUpperCase()}`" />
+      <slot name="default"></slot>
+      <van-cell class="order-number">
+        <template v-slot:title>
+          <div class="w-100">{{ $t('订单号') }}</div>
+        </template>
+        <div class="flex justify-end">
+          <span class="mr-14">{{ detail.orderNo }}</span>
+          <img class="relative top-4 w-30 h-34" src="@/assets/image/c2c/Group1168.png" alt=""
+            @click="copy(detail.orderNo)">
+        </div>
+      </van-cell>
+      <van-cell v-if="detail.createTime" :title="$t('创建时间')" :value="detail.createTime" />
+      <van-cell v-if="detail.sellerName">
+        <template #title>
+          <span>{{ clientType }}</span>
+        </template>
+        <template #default>
+          <span class="mr-20">{{ sellerName }}</span>
+          <van-icon class="font-700 text-grey" name="arrow" />
+        </template>
+      </van-cell>
+    </van-cell-group>
+  </div>
+</template>
+
+<script>
+import {
+  mapState,
+  mapGetters
+} from "vuex";
+import { Cell, CellGroup, Icon, showToast } from "vant"
+import useClipboard from "vue-clipboard3";
+const { toClipboard } = useClipboard();
+
+export default {
+  name: "OrderDate",
+  // props: ['count', 'totalPrice', 'orderNumber', 'sellerName', 'createOrderTime'],
+  props: {
+    clientType: {
+      default: '卖家昵称'
+    },
+    detail: {
+      type: Object,
+      default() {
+        return {}
+      }
+    },
+    // // count: {},
+    // totalPrice: {},
+    // // orderNumber: {},
+    // sellerName: {},
+    // createOrderTime: {},
+    // unitPrice: {
+    //   // required: true,
+    // }
+  },
+  filters: {
+    format(time) {
+      const _time = new Date(time)
+      return [_time.getFullYear(), _time.getMonth() + 1, _time.getDate()].join('/') + ' ' + [_time.getHours(), _time.getMinutes(), _time.getSeconds()].join(":")
+    }
+  },
+  methods: {
+    async copy(text) {
+      await toClipboard(text);
+      showToast(this.$t('复制成功'))
+    }
+  },
+  computed: {
+    ...mapState('home', ['currency']),
+    ...mapGetters('c2c', ['currencySymbol'])
+  },
+  components: {
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Icon.name]: Icon,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+::v-deep .van-cell {
+  margin-bottom: 46px;
+}
+
+::v-deep .order-number {
+  .van-cell__title {
+    flex: inherit;
+  }
+}
+
+.order-data {
+  ::v-deep .van-cell-group, .van-cell {
+    margin-bottom: 46px;
+    color: $text_color;
+    background: $main_background;
+  }
+
+  ::v-deep .van-cell__value {
+    color: $text_color;
+  }
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/components/order-generation/CancelSuccess.vue b/src/views/C2C/c2cOrder/components/order-generation/CancelSuccess.vue
new file mode 100644
index 0000000..309aac4
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/order-generation/CancelSuccess.vue
@@ -0,0 +1,117 @@
+<template>
+  <div id="full" class="cancel-success">
+    <div style="background: #D8DBE0;">
+      <order-nav :back="false" @back="onBack()">
+        <template>
+          <div class="flex items-center" @click="$router.push({
+            path: '/chat'
+          })">
+            <img class="w-35 h-33 mr-22" src="@/assets/image/c2c/Vector.png" alt="">
+            <span class="font-28">{{ $t('联系卖家') }}</span>
+          </div>
+        </template>
+      </order-nav>
+      <div class="">
+        <div class="flex justify-between items-center pb-33 px-32" style="background:#D8DBE0">
+          <div>
+            <p class="mb-8 font-48">
+              <slot name="title">{{ $t('已取消') }}</slot>
+            </p>
+            <p class="font-24">
+              <slot name="desc">{{ $t('您已取消订单') }}</slot>
+            </p>
+          </div>
+          <div>
+            <img class="w-80 h-80" src="@/assets/image/c2c/Group1212.png" alt="">
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="px-32 pt-40 mainBackground">
+      <order-data :detail="detail" />
+    </div>
+    <div class="w-full h-16 my-40 diviLine"></div>
+    <van-cell-group class="px-32">
+      <van-cell @click="enterAppeal">
+        <template #title>
+          <span class="c2cColor font-30">{{ $t('对订单存在疑问') }}</span>
+        </template>
+        <template #default>
+          <van-icon class="font-700 text-grey" name="arrow" />
+        </template>
+      </van-cell>
+    </van-cell-group>
+  </div>
+</template>
+
+<script>
+import { Cell, CellGroup, Icon } from 'vant';
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import OrderData from "../order-data/OrderData.vue";
+
+export default {
+  name: "CancelSuccess",
+  // props:['title','count', 'totalPrice', 'orderNumber', 'createOrderTime', 'sellerName', 'unitPrice'],
+  props: {
+    detail: {
+      type: Object,
+      default() {
+        return {}
+      }
+    }
+  },
+  methods: {
+    enterAppeal() {
+      this.$router.replace({
+        path: '/appeal'
+      })
+    },
+    onBack() {
+      this.$router.push('/wantBuy')
+    }
+  },
+  components: {
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Icon.name]: Icon,
+    OrderNav,
+    OrderData,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+#full {
+  ::v-deep .buy_nav{
+    .van-icon{
+      color: #000;
+    }
+  }
+  ::v-deep .van-nav-bar {
+    background: #D8DBE0;
+  }
+
+  ::v-deep .order-number {
+    margin-top: 100px;
+  }
+
+  ::v-deep .van-cell {
+    padding: 15px 20px !important;
+    background: $main_background;
+  }
+
+  ::v-deep {
+
+    .van-cell-group,
+    .van-cell {
+      color: $text_color1;
+      background: $main_background;
+    }
+
+    .van-cell__value {
+      color: $text_color;
+    }
+  }
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/components/trade-data/TradeData.vue b/src/views/C2C/c2cOrder/components/trade-data/TradeData.vue
new file mode 100644
index 0000000..12a9c34
--- /dev/null
+++ b/src/views/C2C/c2cOrder/components/trade-data/TradeData.vue
@@ -0,0 +1,147 @@
+<template>
+  <div>
+    <div class="relative px-32 order-msg mainBackground" :class="{ 'hide': !isShow && detail.sellName }">
+      <order-data class="w-full" :detail="detail">
+        <slot name="divider"></slot>
+      </order-data>
+      <van-icon v-if="detail.sellName" @click="show" name="arrow-down" class="absolute bottom-10 font-700 text-grey"
+        :class="{ 'rotateZ': isShow }" />
+    </div>
+    <div class="h-16 diviLine"></div>
+    <div class="px-32 pt-35 mainBackground">
+      <van-collapse v-model="activeNames">
+        <van-collapse-item name="1">
+          <template #title>
+            <div>
+              <p class="font-30 c2cColor">
+                <slot name="trade-title"></slot>
+              </p>
+              <van-divider />
+              <div class="flex items-center mb-28">
+                <div class="w-6 h-32 rounded-xl mr-20" style="background: #E7BB41;"></div>
+                <span class="ml-8 font-30 c2cColor">{{ $t(detail.methodName) }}</span>
+              </div>
+            </div>
+          </template>
+          <van-cell-group class="payment-method">
+            <van-cell v-for="(item, index) in detail.tradeMethod" :key="index" :title="item.label" :value="item.value" />
+          </van-cell-group>
+        </van-collapse-item>
+      </van-collapse>
+    </div>
+    <div class="h-16 diviLine"></div>
+    <div class="p-32 mainBackground">
+      <slot name="terms"></slot>
+    </div>
+  </div>
+</template>
+
+<script>
+import { Icon, Collapse, CollapseItem, Cell, CellGroup, Divider } from "vant"
+import OrderData from "../order-data/OrderData.vue";
+export default {
+  name: "TradeData",
+  // props: ['title', 'count', 'totalPrice', 'createOrderTime', 'orderNumber', 'sellName', 'clientType','tradeMethod','methodName','unitPrice'],
+  props: {
+    detail: {
+      type: Object,
+      default() {
+        return {}
+      }
+    }
+  },
+  data() {
+    return {
+      isShow: false,
+      activeNames: [],
+    }
+  },
+  methods: {
+    show() {
+      this.isShow = !this.isShow;
+    }
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Collapse.name]: Collapse,
+    [CollapseItem.name]: CollapseItem,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Divider.name]: Divider,
+    OrderData,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.mainBackground {
+  ::v-deep {
+
+    .van-cell-group,
+    .van-cell {
+      color: $text_color1;
+      background: $main_background;
+    }
+
+    .van-cell__value {
+      color: $text_color;
+    }
+
+    .order-msg {
+      transition: all .5s ease;
+      overflow: hidden;
+
+      .van-icon {
+        left: 50%;
+        transform: translateX(-50%);
+        transition: all .5s ease;
+      }
+    }
+
+    .payment-method {
+      .van-cell {
+        margin-bottom: 50px;
+        font-size: 28px;
+
+        &:last-child {
+          margin-bottom: 30px;
+        }
+
+        .van-cell__title {
+          color: #8A919E;
+        }
+      }
+    }
+
+
+
+    .rotateZ {
+      transform: translateX(-50%) rotateZ(180deg) !important;
+    }
+
+    .hide {
+      height: 365px;
+    }
+
+    .van-collapse-item__content {
+      padding: 0;
+      font-size: 28px;
+      color: $c2c_color;
+      background: $main_background;
+    }
+
+    .van-collapse-item {
+      .van-cell__title {
+        font-size: 28px;
+        color: $c2c_color;
+      }
+
+      .van-divider {
+        margin: 28px 0;
+        border-color: transparent !important;
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/order-generation/OrderBuy.vue b/src/views/C2C/c2cOrder/order-generation/OrderBuy.vue
new file mode 100644
index 0000000..249316d
--- /dev/null
+++ b/src/views/C2C/c2cOrder/order-generation/OrderBuy.vue
@@ -0,0 +1,13 @@
+<template>
+
+</template>
+
+<script>
+export default {
+  name: "OrderBuy"
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/order-generation/help.vue b/src/views/C2C/c2cOrder/order-generation/help.vue
new file mode 100644
index 0000000..a12e02b
--- /dev/null
+++ b/src/views/C2C/c2cOrder/order-generation/help.vue
@@ -0,0 +1,28 @@
+<template>
+    <div>
+
+    </div>
+</template>
+
+<script>
+    export default {
+        props: {
+
+        },
+        components: {
+
+        },
+        data(){
+            return {
+                
+            }
+        },
+        methods: {
+
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/order-generation/index.vue b/src/views/C2C/c2cOrder/order-generation/index.vue
new file mode 100644
index 0000000..0865040
--- /dev/null
+++ b/src/views/C2C/c2cOrder/order-generation/index.vue
@@ -0,0 +1,19 @@
+<template>
+<div>
+  <order-generation/>
+</div>
+</template>
+
+<script>
+import OrderGeneration from "./orderGeneration.vue";
+export default {
+  name: "oGeneration",
+  components: {
+    OrderGeneration,
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/order-generation/orderGeneration.vue b/src/views/C2C/c2cOrder/order-generation/orderGeneration.vue
new file mode 100644
index 0000000..6172380
--- /dev/null
+++ b/src/views/C2C/c2cOrder/order-generation/orderGeneration.vue
@@ -0,0 +1,171 @@
+<template>
+  <div id="order-generation" class="w-full">
+    <order-nav />
+    <div class="mt-40 px-32 c2cColor">
+      <h1 class="font-48 font-400">{{ $t('订单已生成') }}</h1>
+      <div class="flex items-center mt-16 font-28">
+        <span>{{ $t('请在倒计时时间内付款给卖家。') }}</span>
+        <van-count-down class="flex font-700 mx-10" :time="time">
+          <template #default="timeData">
+            <span class="block">{{ timeData.hours }}</span>
+            <span class="colon">:</span>
+            <span class="block">{{ timeData.minutes }}</span>
+            <span class="colon">:</span>
+            <span class="block">{{ timeData.seconds }}</span>
+          </template>
+        </van-count-down>
+      </div>
+      <div class="w-full mt-50 pt-46 pl-32 pb-42 box-border border-ra tabBackground">
+        <div class="flex justify-between">
+          <div @click="$router.push(`/advertiserDetail?uid=${orderDetail.c2cUserId}`)" class="flex items-center">
+            <img class="w-38 h-38 mr-10" :src="orderDetail.c2cUserHeadImg" alt="">
+            <h3 class="font-32 font-400">{{ orderDetail.realName }}</h3>
+            <img class="w-30 h-30 ml-8 mr-20" src="@/assets/image/otc/buy/star.png" alt=""
+              v-if="orderDetail.c2cUserType">
+            <van-icon color="#9399A4" name="arrow" class="relative top-1 font-700 font-20" />
+          </div>
+          <div
+            style="background:linear-gradient(to right,#b6dbff,#1d91ff);border-top-left-radius: 40px;border-bottom-left-radius: 40px;"
+            class="flex items-center font-24 text-white py-10 px-14" @click="gotoChat">
+            <img class="w-35 h-33 mr-10" src="@/assets/image/c2c/Vector-white.png" alt="" />
+            {{ $t('联系卖家') }}
+          </div>
+        </div>
+        <div class="mt-60">
+          <div class="flex items-center mb-30 pr- 185">
+            <img class="w-28 h-28 mr-12" src="@/assets/image/c2c/gou.png" alt="">
+            <p class="font-24">{{ $t('卖家的数字货币现已存入托管账户,请放心付款') }}</p>
+          </div>
+          <div class="flex justify-between">
+            <div class="flex items-center">
+              <img class="w-28 h-28 mr-12" src="@/assets/image/c2c/gou.png" alt="">
+              <p class="font-24">{{ $t('7x24小时客服支持') }}</p>
+            </div>
+            <div class="pr-40" @click="tokefu">
+              <van-icon color="#9399A4" name="arrow" class="relative top-1 font-700 font-20" />
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="w-full h-16 my-40 diviLine"></div>
+    <div class="px-32">
+      <order-data :title="$t('购买')" :detail="orderDetail" />
+    </div>
+    <div class="w-full h-16 my-40 diviLine"></div>
+    <div class="px-32">
+      <h2 class="font-400 font-30 c2cColor">{{ $t('交易方式') }}</h2>
+      <div class="flex items-center mt-28">
+        <div class="w-6 h-28 border-ra" style="background: #E7BB41;"></div>
+        <span class="ml-8 text-grey">{{ orderDetail.methodName }}</span>
+      </div>
+    </div>
+    <div class="w-full h-56 mt-32 mb-40 diviLine"></div>
+    <div class="flex px-40 pb-80 footer-box">
+      <van-button class="w-244 h-80 font-30 mr-16 text-black border-none" type="primary" style="background: #EAEBEE"
+        @click="cancelOrder">{{ $t('取消订单') }}</van-button>
+      <van-button class="flex-1 h-80 font-30 btnMain border-none" type="info" @click="goToPayment">{{ $t('去付款')
+      }}</van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  mapState
+} from "vuex";
+
+import { CountDown, Icon, Cell, CellGroup, Button, showToast } from 'vant';
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import OrderData from "../components/order-data/OrderData.vue";
+import otcApi from "@/service/otc";
+
+
+export default {
+  name: "orderGeneration",
+  data() {
+    return {
+      time: 0, //15 * 60 * 60 * 1000,
+      orderDetail: {},
+      interval: null
+      // orderNumber: ''
+    }
+  },
+  async created() {
+    const order_no = this.$store.state.c2c.order_no
+    const res = await otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale });
+    this.orderDetail = res.data;
+    this.time = this.orderDetail.autoCancelTimeRemain * 1000
+    this.interval = setInterval(() => {
+      this.time = this.time - 1000
+      if (this.time <= 0) {
+        clearInterval(this.interval)
+      }
+    }, 1000)
+  },
+  methods: {
+    // 取消订单
+    cancelOrder() {
+      if (this.time >= 0) {
+        this.$router.push({ path: '/cancelOrder' })
+      } else {
+        showToast({ type: 'warning', message: this.$t('订单不能取消') })
+      }
+    },
+    // 付款
+    goToPayment() {
+      this.$router.push({ path: '/paymentBuy' })
+    },
+    gotoChat() {
+      this.$router.push({ path: '/chat' })
+    },
+    tokefu() {
+      this.$router.push('/customerService')
+    }
+  },
+  computed: {
+    ...mapState('c2cBuy', ['count', 'totalPrice', 'orderNumber']),
+  },
+  components: {
+    [CountDown.name]: CountDown,
+    [Icon.name]: Icon,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Button.name]: Button,
+    OrderNav,
+    OrderData,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+@import "@/assets/css/copy2.scss";
+
+.border-ra {
+  border-radius: 20px;
+}
+
+#order-generation {
+
+  ::v-deep .van-count-down {
+    font-size: 28px;
+    color: $blue;
+  }
+
+  ::v-deep .van-cell-group,
+  .van-cell {
+    color: $text_color1;
+    background: $main_background;
+  }
+
+  ::v-deep .van-cell__value {
+    color: $text_color;
+  }
+
+  .footer-box {
+    background: $main_background;
+  }
+
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/payment/ConfirmedPaid.vue b/src/views/C2C/c2cOrder/payment/ConfirmedPaid.vue
new file mode 100644
index 0000000..384f2e5
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/ConfirmedPaid.vue
@@ -0,0 +1,430 @@
+<template>
+  <div id="full" class="flex flex-col w-full h-full">
+    <order-nav />
+    <div class="flex-1 tabBackground" style="overflow-y: auto">
+      <div class="pb-40 text-center c2cColor mainBackground">
+        <div>
+          <h1 class="font-600 font-36">{{ $t("请确认已收到付款") }}</h1>
+          <div class="flex justify-center items-center mt-42 font-60 font-600">
+            <span class="relative bottom-2 mr-10 font-44">{{
+              detail.currency
+            }}</span>
+            <span>{{ detail.amount }}</span>
+            <!--            <span class="relative bottom-5 ml-16 font-400 font-44">USDT</span>-->
+          </div>
+          <div class="mt-32">
+            <van-icon class="" color="#9399A4" name="arrow-down" />
+          </div>
+          <div class="flex justify-center items-center mt-50" @click="
+            $router.push({
+              path: '/chat',
+              query: JSON.stringify(),
+            })
+            ">
+            <van-badge class="w-36 h-34 mr-22">
+              <img class="w-full h-full" src="@/assets/image/c2c/Vector.png" alt="" />
+            </van-badge>
+            <span class="font-32">{{ $t("联系买家") }}</span>
+          </div>
+        </div>
+      </div>
+      <div class="w-full pt-50 pb-72 tabBackground">
+        <div class="ml-50 pl-38 pr-32 msg relative">
+          <div
+            class="circle absolute top-0 left-0 z-10 w-45 h-45 flex justify-center items-center bg-blue text-white font-26"
+            style="border-radius: 50%">
+            1
+          </div>
+          <div
+            class="circle absolute bottom-90 left-0 z-10 w-45 h-45 flex justify-center items-center bg-blue text-white font-26"
+            style="border-radius: 50%">
+            2
+          </div>
+          <div class="font-30 c2cColor">
+            {{ $t("登陆您下方的收款帐户,确认买家的付款已到账。") }}
+          </div>
+          <div class="mt-22 px-24 py-34 mainBackground rounded-2xl msg-wrapper">
+            <div class="flex items-center">
+              <div class="w-6 h-28 rounded-xl mr-20" style="background: #e7bb41"></div>
+              <span class="ml-8 font-30 c2cColor">{{ detail.methodName }}</span>
+            </div>
+            <van-cell-group>
+              <van-cell class="order-number " v-for="item in params" :key="item.id">
+                <template #title>
+                  <div>
+                    <span class="mr-14 textColor">{{ item.name }}</span>
+                  </div>
+                </template>
+                <template #default>
+                  <div class="flex justify-end">
+                    <span class="mr-14 textColor">{{ item.value }}</span>
+                  </div>
+                </template>
+              </van-cell>
+              <!-- <van-cell class="order-number" title="银行卡号">
+                <template #default>
+                  <div class="flex justify-end">
+                    <span class="mr-14">{{ orderInfo.paramValue1 }}</span>
+                  </div>
+                </template>
+              </van-cell>
+              <van-cell
+                class="order-number buyer"
+                style="background: #f5f5f5"
+                title="买家实名"
+              >
+                <template #default>
+                  <div class="flex justify-end">
+                    <span class="mr-14">{{ $t(orderInfo.realName) }}</span>
+                  </div>
+                </template>
+              </van-cell> -->
+            </van-cell-group>
+          </div>
+          <div class="mt-39 font-30 c2cColor">
+            {{
+              $t("确认收到款项后,返回平台,点击下方按钮「我已确认收款」。")
+            }}
+          </div>
+          <div class="flex items-center mt-24">
+            <img class="w-24 h-24" src="@/assets/image/c2c/Group41-2.png" alt="" />
+            <span class="ml-14 font-20 text-blue">{{
+              $t("若您未收到款项,请勿点击按钮,避免资产损失。")
+            }}</span>
+          </div>
+        </div>
+      </div>
+      <div class="px-32 my-34 mainBackground">
+        <van-collapse v-model="activeNames">
+          <van-collapse-item name="1">
+            <template #title>
+              <span class="c2cColor font-28">{{ $t("交易条款") }}</span>
+            </template>
+            <van-divider />
+            <p class="font-28 c2cColor pt-20">{{ $t("资金绝对安全") }}</p>
+            <p class="mt-20 font-28 c2cColor">
+              {{ $t("平时订单较多,看见了会立马打款。急单勿拍!") }}
+            </p>
+          </van-collapse-item>
+        </van-collapse>
+      </div>
+    </div>
+    <div class="px-40 pt-54 pb-40 flex font-30 mainBackground">
+      <van-button class="w-244 h-80 mr-16 rounded-2xl c2cColor greyBg border-none" type="primary"
+        @click="$router.push({ path: '/appeal/page' })">{{ $t("帮助") }}
+      </van-button>
+      <van-button class="flex-1 h-80 rounded-2xl bg-blue text-white border-none" type="primary" @click="handleClick">{{
+        $t("我已确认收款")
+      }}
+      </van-button>
+    </div>
+
+    <!--  弹窗  -->
+    <van-popup v-model="show" round position="bottom">
+      <div class="pt-44">
+        <div class="mb-42 font-600 font-32 text-center">
+          {{ $t("您是否已收到款项?") }}
+        </div>
+        <div class="">
+          <van-radio-group v-model="radio">
+            <van-radio name="1" class="p-32" :class="{ active: radio === '1' }">
+              <span>{{ $t("我还没登陆收款账户确认款项无误。") }}</span>
+              <img class="w-40 h-40 gou" src="@/assets/image/c2c/Group2318.png" alt="" />
+              <template #icon="props">
+                <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
+              </template>
+            </van-radio>
+            <van-radio name="2" class="p-32" :class="{ active: radio === '2' }">
+              <span>{{
+                $t(
+                  "我已确认收款无误,付款人与买家在DOME上的验证姓名一致,确认放行数字货币给买家。"
+                )
+              }}</span>
+              <img class="w-40 h-40 gou" src="@/assets/image/c2c/Group2318.png" alt="" />
+              <template #icon="props">
+                <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
+              </template>
+            </van-radio>
+          </van-radio-group>
+        </div>
+        <div class="mt-52">
+          <div class="flex box-border pl-24 pb-31 pr-52">
+            <img class="w-36 h-36 mr-14" src="@/assets/image/c2c/Group41.png" alt="" />
+            <div class="font-24">
+              <p class="font-28" style="color: #454649">{{ $t("温馨提示") }}</p>
+              <p class="my-14">
+                {{
+                  $t(
+                    "1.收款时,请勿盲目相信转账截图,务必打开收款账户核对款项无误。"
+                  )
+                }}
+              </p>
+              <p class="my-20">
+                {{ $t("2.若付款仍在进行中,请等待款项到账后再放币。") }}
+              </p>
+              <p>
+                {{
+                  $t(
+                    "3.请勿接受第三方付款。若收到与APP上的验证姓名不相匹配的款项,请立即退款,并避免因放行后遭银行拒付而造成财务损失。"
+                  )
+                }}
+              </p>
+            </div>
+          </div>
+        </div>
+        <div class="mt-78 px-34 pb-40 flex font-30 tabBackground">
+          <van-button class="w-244 h-80 mr-16 rounded-2xl c2cColor bg-grey border-none" type="primary">{{ $t("帮助") }}
+          </van-button>
+          <van-button class="flex-1 h-80 rounded-2xl bg-blue text-white border-none" type="primary"
+            :disabled="radio === '1'" @click="onConfirm">{{ $t("我已确认收款") }}
+          </van-button>
+        </div>
+      </div>
+    </van-popup>
+    <div v-if="isLoading" class="fixed top-0 left-0 w-full h-full loading-wrapper">
+      <van-loading color="#fff" />
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapState } from "vuex";
+import {
+  Badge,
+  Button,
+  Cell,
+  CellGroup,
+  Collapse,
+  CollapseItem,
+  CountDown,
+  Divider,
+  Icon,
+  Popup,
+  Radio,
+  RadioGroup,
+  Loading,
+  Toast,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import Question from "./components/Question.vue";
+import otcApi from "@/service/otc";
+
+export default {
+  name: "ConfirmedPaid",
+  data() {
+    return {
+      isLoading: false,
+      show: false,
+      activeNames: [],
+      radio: "1",
+      activeIcon: new URL('@/assets/image/c2c/Group23172.png', import.meta.url).href,
+      inactiveIcon: new URL('@/assets/image/c2c/Group2317.png', import.meta.url).href,
+      passwd: "",
+      detail: {},
+      params: [],
+    };
+  },
+  mounted() {
+
+  },
+  activated() {
+    const order_no = this.$store.state.c2c.order_no;
+    otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale }).then((res) => {
+      this.detail = res.data;
+      this.params = [{ id: 0, name: this.$t('姓名'), value: this.detail.realName }];
+      for (let i = 1; i < 16; i++) {
+        this.params.push({
+          id: i,
+          name: this.detail["paramName" + i],
+          value: this.detail["paramValue" + i],
+        });
+      }
+      this.params = this.params.filter((item) => item.name && item.value);
+      console.log(this.detail);
+    });
+    this.$bus.$on("returnPwd", (pwd) => {
+      this.passwd = pwd;
+      this.enterTrade();
+    });
+  },
+  methods: {
+    onConfirm() {
+      this.$router.push({
+        path: "/withdraw/securityVerification",
+        query: {
+          type: "sell",
+        },
+      });
+    },
+    back() {
+      this.show = false;
+    },
+    handleClick() {
+      console.log("handle");
+      this.show = true;
+    },
+    enterTrade() {
+      // 订单放行
+      otcApi.ctcOrderPass({
+        order_no: this.detail.orderNo,
+        safe_password: this.passwd,
+      }).then((res) => {
+        this.isLoading = false;
+        this.$router.replace({
+          path: "/tradeSuccessSell",
+        });
+      });
+    },
+  },
+  // watch: {
+  //   passwd() {
+  //     if (this.passwd === '000000') {
+  //       console.log(111);
+
+  //       this.isLoading = true;
+
+  //       // 发送请求
+  //       this.enterTrade();
+  //     }
+  //   }
+  // },
+  components: {
+    [CountDown.name]: CountDown,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Button.name]: Button,
+    [Popup.name]: Popup,
+    [Icon.name]: Icon,
+    [Badge.name]: Badge,
+    [Collapse.name]: Collapse,
+    [CollapseItem.name]: CollapseItem,
+    [Divider.name]: Divider,
+    [RadioGroup.name]: RadioGroup,
+    [Radio.name]: Radio,
+    [Loading.name]: Loading,
+    OrderNav,
+    Question,
+  },
+  beforeDestroy() {
+    this.$bus.$off("returnPwd");
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+@import "@/assets/css/copy2.scss";
+
+#full {
+  ::v-deep .van-count-down {
+    font-size: 26px;
+    color: $blue;
+  }
+
+  .msg-wrapper {
+    .van-cell {
+      margin-top: 28px;
+      color: #fff;
+
+      .van-cell__title,
+      .van-cell__value {
+        color: $text_color;
+        font-size: 26px;
+      }
+    }
+  }
+
+  ::v-deep .van-cell-group {
+    background: $main_background;
+  }
+
+  ::v-deep .van-cell,
+  ::v-deep .van-collapse-item__content {
+    background: $main_background;
+  }
+
+  ::v-deep .van-cell::after {
+    display: none;
+  }
+
+  ::v-deep .van-collapse-item__title--expanded::after {
+    display: none;
+  }
+
+  ::v-deep ::v-deep .van-collapse-item__content {
+    padding: 0;
+  }
+
+  ::v-deep .van-radio__label {
+    position: relative;
+    width: 664px;
+    margin-left: 20px;
+
+    .gou {
+      display: none;
+      position: absolute;
+      top: 50%;
+      right: -54px;
+      transform: translateY(-50%);
+    }
+  }
+
+  ::v-deep .loading-wrapper {
+    z-index: 20;
+    background: rgba(0, 0, 0, 0.3);
+
+    .van-loading {
+      position: absolute;
+      top: 50%;
+      left: 50%;
+      transform: translate(-50%, -50%);
+    }
+  }
+
+  ::v-deep .van-divider {
+    border-color: $line_color;
+  }
+}
+
+
+
+.active {
+  background: #fafafa;
+
+  .gou {
+    display: block !important;
+  }
+}
+
+.msg {
+  //border-left: 1px solid #EAEBEE;
+
+  &:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 1px;
+    height: 86%;
+    background: #eaebee;
+  }
+}
+
+.msg-wrapper {
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+}
+
+.circle {
+  transform: translateX(-50%);
+}
+
+.buyer {
+  padding: 10px 18px !important;
+  font-size: 28px;
+}
+
+.img-icon {
+  width: 32px;
+  height: 32px;
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/payment/Payment.vue b/src/views/C2C/c2cOrder/payment/Payment.vue
new file mode 100644
index 0000000..de2a6ec
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/Payment.vue
@@ -0,0 +1,178 @@
+<template>
+  <div id="full">
+    <order-nav/>
+    <div class="mt-10 text-center tabBackground text-black">
+      <div>
+        <h1 class="font-700 font-40">{{$t('请向卖家付款')}}</h1>
+        <div v-if="time" class="flex justify-center items-center mt-18 font-30 font-700">
+          <span>{{$t('订单将在')}}</span>
+          <van-count-down class="flex font-700" :time="time">
+            <template #default="timeData">
+              <span class="block">{{ timeData.hours }}</span>
+              <span class="colon">:</span>
+              <span class="block">{{ timeData.minutes }}</span>
+            </template>
+          </van-count-down>
+          <span>{{$t('后取消')}}</span>
+        </div>
+        <div class="flex justify-center items-end mt-42 font-64 font-700">
+          <span class="relative bottom-5 font-48">¥</span>
+          <span>{{ (totalPrice * 1).toLocaleString() }}.00</span>
+          <img class="relative bottom-10 left-25 w-30 h-33" src="@/assets/image/c2c/Group1168.png" alt="">
+        </div>
+        <div class="flex justify-center items-center mt-44">
+          <img class="w-36 h-34 mr-22" src="@/assets/image/c2c/Vector.png" alt="">
+          <span class=" font-32">{{$t('联系卖家')}}</span>
+        </div>
+      </div>
+    </div>
+    <div class="w-full pt-46 pb-58 mt-40" style="background: #fafafa">
+      <div class="ml-50 pl-38 pr-32 msg  relative">
+        <div class="circle absolute top-0 left-0 z-10 w-45 h-45 flex justify-center items-center bg-blue text-white font-26"
+             style="border-radius: 50%">1
+        </div>
+        <div
+            class="circle absolute bottom-28 left-0 z-10 w-45 h-45 flex justify-center items-center bg-blue text-white font-26"
+            style="border-radius: 50%">2
+        </div>
+        <div class="font-28">{{$t('离开APP,登录您与APP上的验证姓名相匹配的银行账户或其他支付方式,转到卖家的以下账户。')}}</div>
+        <div class="mt-50 pt-32 px-22 pb-38 bg-white rounded-2xl msg-wrapper">
+          <div class="flex items-center">
+            <div class="w-6 h-28 rounded-xl mr-20" style="background: #E7BB41;"></div>
+            <span class="ml-8 font-30 text-black">{{$t('银行卡')}}</span>
+          </div>
+          <van-cell-group>
+            <van-cell class="order-number"  :title="$t('姓名')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{$t('鸿运当头')}}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number"  :title="$t('银行卡号')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{$t('请点击右上角按钮联系商家索取')}}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" :title="$t('银行名称')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{$t('请仔细阅读下方交易条款')}}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" :title="$t('开户支行')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{$t('请按照下方交易条款提供相关资料')}}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </div>
+        <div class="mt-39 font-28">{{$t('付款后,返回 XX APP,务必点击下方按钮“我已付款”通知卖家。')}}</div>
+      </div>
+    </div>
+    <div class="mt-92 px-40 flex font-30">
+      <van-button
+          class="w-244 h-80 mr-16 rounded-2xl text-black bg-grey border-none"
+          type="primary"
+          @click="show = true"
+      >{{$t('遇到问题?')}}</van-button>
+      <van-button
+          class="flex-1 h-80 rounded-2xl bg-blue text-white border-none"
+          type="primary"
+          @click="$router.push({path: '/paymentDetail'})"
+      >{{$t('我已付款,通知卖家')}}</van-button>
+    </div>
+<!--  遇到问题  -->
+    <div>
+      <van-popup  class="w-full h-full" v-model="show" position="right">
+        <question @back="back" :time="time"/>
+      </van-popup>
+    </div>
+  </div>
+</template>
+
+<script>
+import {mapState} from "vuex";
+import {Cell, CellGroup, CountDown,Button,Popup,} from "vant"
+import OrderNav from "@/components/order-nav/OrderNav";
+import Question from "@/page/c2cOrder/payment/components/Question";
+
+export default {
+  name: "Payment",
+  props: ['time'],
+  data() {
+    return {
+     show: false,
+    }
+  },
+  methods: {
+    back() {
+      this.show = false;
+    }
+  },
+  computed: {
+    ...mapState('c2cBuy', ["totalPrice"])
+  },
+  components: {
+    [CountDown.name]: CountDown,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Button.name]:Button,
+    [Popup.name]:Popup,
+    OrderNav,
+    Question,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+
+::v-deep {
+  .van-count-down {
+    font-size: 26px;
+    color: $blue;
+  }
+
+  .van-cell {
+    margin-top: 28px;
+
+    .van-cell__title, .van-cell__value {
+      font-size: 26px;
+    }
+  }
+}
+
+.msg {
+
+  //border-left: 1px solid #EAEBEE;
+
+  &:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 1px;
+    height: 93%;
+    background: #EAEBEE;
+  }
+}
+
+.msg-wrapper {
+  box-shadow: 0 0 10px rgba(0, 0, 0, .1);
+}
+
+.circle {
+  transform: translateX(-50%);
+}
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/payment/PaymentBuy.vue b/src/views/C2C/c2cOrder/payment/PaymentBuy.vue
new file mode 100644
index 0000000..b4c5173
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/PaymentBuy.vue
@@ -0,0 +1,261 @@
+<template>
+  <div id="full">
+    <order-nav />
+    <div class="mt-10  text-center mainBackground c2cColor">
+      <div>
+        <h1 class="font-700 font-40">{{ $t("请向卖家付款") }}</h1>
+        <div v-if="time" class="flex justify-center items-center mt-18 font-30 font-700">
+          <span>{{ $t("订单将在倒计时结束时取消。") }}&nbsp;</span>
+          <van-count-down class="flex font-700" :time="time">
+            <template #default="timeData">
+              <span class="block" v-if="timeData.hours">{{
+                timeData.hours
+              }}</span>
+              <span class="colon" v-if="timeData.hours">:</span>
+              <span class="block">{{ timeData.minutes }}</span>
+              <span class="colon">:</span>
+              <span class="block">{{ timeData.seconds }}</span>
+            </template>
+          </van-count-down>
+        </div>
+        <div class="flex justify-center items-end mt-42 font-64 font-700">
+          <div class="flex justify-center">
+            <span class="font-48">
+              {{currencySymbol}}
+            </span>
+            <span class="px-10">{{
+              (orderInfo.amount && (orderInfo.amount / 1).toFixed(2)) || "--"
+            }}</span>
+          </div>
+          <img class="bottom-10 left-25 w-30 h-33" src="@/assets/image/c2c/Group1168.png" alt=""
+            @click="copy((orderInfo.amount && (orderInfo.amount / 1).toFixed(2)) || '--')" />
+        </div>
+        <div class="flex justify-center items-center mt-44" @click="$router.push({ path: '/chat' })">
+          <img class="w-36 h-34 mr-22" src="@/assets/image/c2c/Vector.png" alt="" />
+          <span class="font-32">{{
+            $t("联系卖家")
+          }}</span>
+        </div>
+      </div>
+    </div>
+    <div class="w-full pt-46 pb-58 mt-40 mainBackground">
+      <div class="ml-50 pl-38 pr-32 msg relative c2cColor">
+        <div
+          class="circle absolute top-0 left-0 z-10 w-45 h-45 flex justify-center items-center btnMain text-white font-26"
+          style="border-radius: 50%">
+          1
+        </div>
+        <div
+          class="circle absolute bottom-28 left-0 z-10 w-45 h-45 flex justify-center items-center btnMain text-white font-26"
+          style="border-radius: 50%">
+          2
+        </div>
+        <div class="font-28">
+          {{
+            $t(
+              "离开APP,登录您与APP上的验证姓名相匹配的银行账户或其他支付方式,转到卖家的以下账户。"
+            )
+          }}
+        </div>
+        <div class="mt-50 pt-32 px-22 pb-38 tabBackground rounded-2xl msg-wrapper c2cColor">
+          <div class="flex items-center">
+            <div class="w-6 h-28 rounded-xl mr-20" style="background: #e7bb41"></div>
+            <span class="ml-8 font-30 c2cColor">{{ detail.methodName }}</span>
+          </div>
+          <van-cell-group>
+            <van-cell class="order-number" :title="item.name" v-for="item in params" :key="item.id">
+              <template #default>
+                <div class="flex justify-end c2cColor">
+                  <span class="mr-14">{{ item.value }}</span>
+                  <img class="relative top-1 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt=""
+                    @click="copy(item.value)" />
+                </div>
+              </template>
+            </van-cell>
+            <!-- <van-cell class="order-number" :title="$t('银行卡号')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{ detail.paramValue1 }}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" :title="$t('银行名称')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{ detail.paramValue2 }}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" :title="$t('开户支行')">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">{{ detail.paramValue3 }}</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell> -->
+          </van-cell-group>
+        </div>
+        <div class="mt-39 font-28">
+          {{ $t("付款后,返回 XX APP,务必点击下方按钮“我已付款”通知卖家。") }}
+        </div>
+      </div>
+    </div>
+    <div class="mt-92 px-40 flex font-30">
+      <van-button class="w-244 h-80 mr-16 rounded-2xl text-black bg-grey border-none" type="primary"
+        @click="show = true">{{ $t("遇到问题?") }}</van-button>
+      <van-button class="flex-1 h-80 rounded-2xl btnMain text-white border-none" type="primary" @click="onPayed">
+        {{ $t("我已付款,通知卖家") }}</van-button>
+    </div>
+    <!--  遇到问题  -->
+    <div>
+      <van-popup class="w-full h-full" v-model:show="show" position="right">
+        <question @back="back" :time="time" />
+      </van-popup>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapState, mapGetters } from "vuex";
+import { Cell, CellGroup, CountDown, Button, Popup, showToast } from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import Question from "./components/Question.vue";
+import otcApi from "@/service/otc";
+import useClipboard from "vue-clipboard3";
+const { toClipboard } = useClipboard();
+
+export default {
+  name: "payMent",
+  // props: ['time'],
+  data() {
+    return {
+      time: null,
+      show: false,
+      interval: null,
+      detail: {},
+      params: [],
+      orderInfo: {},
+    };
+  },
+  async created() {
+    const advId = this.$store.state.c2c.adv_id;
+    const order_no = this.$store.state.c2c.order_no;
+    let res = await otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale });
+    this.orderInfo = res.data;
+    this.time = this.orderInfo.autoCancelTimeRemain * 1000;
+    const methodType = this.orderInfo.methodType; // 支付方式
+    this.interval = setInterval(() => {
+      this.time -= 1000;
+    }, 1000);
+    otcApi.ctcPaymentMethodPayList({ id: advId, language: this.$i18n.locale }).then((res) => {
+      // 获取支付方式
+      const payMethod = res.data.find(
+        (item) => item.methodType === methodType / 1
+      );
+      if (payMethod) {
+        this.detail = payMethod;
+        console.log(this.detail);
+        this.params = [{ id: 0, name: this.$t('姓名'), value: this.detail.realName }];
+        for (let i = 1; i < 16; i++) {
+          this.params.push({
+            id: i,
+            name: this.detail["paramName" + i],
+            value: this.detail["paramValue" + i],
+          });
+        }
+        this.params = this.params.filter((item) => item.name && item.value);
+      }
+    });
+
+  },
+  methods: {
+    back() {
+      this.show = false;
+    },
+    onPayed() {
+      // 我已支付
+      this.$router.push("/withdraw/securityVerification?type=buy");
+      // this.$router.push("/cryptos/withdraw/securityVerification?type=buy");
+    },
+    async copy(text) {
+      await toClipboard(text);
+      showToast(this.$t('copySuccess'));
+    },
+  },
+  computed: {
+    ...mapState("c2cBuy", ["totalPrice"]),
+    ...mapGetters('c2c', ['currencySymbol'])
+  },
+  components: {
+    [CountDown.name]: CountDown,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Button.name]: Button,
+    [Popup.name]: Popup,
+    OrderNav,
+    Question,
+  },
+  beforeDestory() {
+    clearInterval(this.interval);
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+@import "@/assets/css/copy2.scss";
+
+#full {
+  ::v-deep {
+    .van-count-down {
+      font-size: 26px;
+      color: $blue;
+    }
+
+    .van-cell {
+      margin-top: 28px;
+      color: $text_color1;
+      background: $tab_background;
+
+      .van-cell__title,
+      .van-cell__value {
+        font-size: 26px;
+      }
+    }
+
+    .van-cell::after {
+      display: none;
+    }
+
+    .van-cell-group {
+      color: $text_color1;
+      background: $tab_background;
+    }
+  }
+}
+
+.msg {
+  //border-left: 1px solid #EAEBEE;
+
+  &:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 1px;
+    height: 93%;
+    background: #eaebee;
+  }
+}
+
+.msg-wrapper {
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+}
+
+.circle {
+  transform: translateX(-50%);
+}
+</style>
diff --git a/src/views/C2C/c2cOrder/payment/PaymentDetail.vue b/src/views/C2C/c2cOrder/payment/PaymentDetail.vue
new file mode 100644
index 0000000..3a8e14f
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/PaymentDetail.vue
@@ -0,0 +1,154 @@
+<template>
+  <div id="full" class="w-full h-full flex flex-col ">
+    <order-nav :back="false" @back="$router.push('/wantBuy')">
+      <template #right>
+        <div class="flex items-center" @click="$router.push({ path: '/chat' })">
+          <van-badge class="w-35 h-33 mr-22" :content="unreadMsg">
+            <img class="w-full h-full " src="@/assets/image/c2c/Vector.png" alt="">
+          </van-badge>
+          <div class="font-28">{{ $t('联系卖家') }}</div>
+        </div>
+      </template>
+    </order-nav>
+    <div style="overflow-y: auto" class="flex-1 mainBackground">
+      <div class="flex justify-between items-center pt-30 px-32 pb-100 mainBackground">
+        <div class="mainBackground">
+          <p class="font-48 c2cColor">{{ $t('等待卖家确认收款') }}</p>
+          <!-- <p class="mt-16 font-24"> {{$t('此卖家95%的订单会在')}}<span style="color: #1D91FF">02</span> {{$t('分钟内完成')}}</p> -->
+        </div>
+        <div class="w-140 h-144">
+          <otc-circle :time="time" :expireTime="expireTime" class="w-full h-full" />
+        </div>
+      </div>
+      <div class="">
+        <trade-data title="购买" :count="count" :total-price="totalPrice" :create-order-time="createOrderTime"
+          :order-number="orderNumber" sell-name="钱多多爱妞商行" client-type="买家昵称" :detail="detail" :trade-method="tradeMethod">
+          <template #divider>
+            <van-divider class="order-msg-divider" />
+          </template>
+          <template #trade-title>
+            <span>{{ $t('交易方式') }}</span>
+          </template>
+          <template #terms>
+            <van-collapse v-model="activeNames">
+              <van-collapse-item name="2">
+                <template #title>
+                  <span>{{ $t('交易条款') }}</span>
+                </template>
+                <van-divider />
+                <p>{{ $t('敢打黑钱者,虽远逼诛!') }}</p>
+                <p class="mt-20">{{ $t('急单勿拍!') }}</p>
+              </van-collapse-item>
+            </van-collapse>
+          </template>
+        </trade-data>
+      </div>
+    </div>
+    <div class="px-40 pt-46 h-172 box-border flex font-30 mainBackground">
+      <van-button class="flex-1 h-80 mr-16 rounded-2xl c2cColor tabBackground border-none" type="primary"
+        @click="$router.push({ path: '/cancelOrder?order_no=' + $route.query.order_no })">{{ $t('取消订单') }}
+      </van-button>
+      <van-button class="flex-1 h-80 rounded-2xl tabBackground c2cColor border-none" type="primary"
+        @click="$router.push({ path: '/appeal' })">{{ $t('申诉') }}
+      </van-button>
+    </div>
+    <!--  交易成功  -->
+    <!--        <trade-success/>-->
+    <!--  交易成功详情  -->
+    <!--        <trade-success-detail/>-->
+  </div>
+</template>
+
+<script>
+import { mapState } from "vuex"
+import { Badge, Collapse, CollapseItem, Divider, } from "vant"
+import OrderNav from "@/components/order-nav/OrderNav";
+import OtcCircle from "@/components/otcCircle";
+// import TradeSuccess from "@/page/c2c-trade/components/TradeSuccess";
+// import TradeSuccessDetail from "@/page/c2c-trade/components/TradeSuccessDetail";
+import TradeData from "@/page/c2cOrder/components/trade-data/TradeData";
+import otcApi from '@/API/otc';
+
+export default {
+  name: "PaymentDetail",
+  data() {
+    return {
+      activeNames: [],
+      // 交易方式
+      tradeMethod: [
+        { label: this.$t('姓名'), value: this.$t('刘德华') },
+        { label: this.$t('银行卡号/账号'), value: this.$t('1122 3344 5566 7788') },
+        { label: this.$t('银行名称'), value: this.$t('中国工商银行') },
+        { label: this.$t('开户支行'), value: this.$t('北京海淀支行') },
+      ],
+      detail: {},
+      time: 0,
+      expireTime: 0,
+      timeout: null,
+      unreadMsg: 0
+    }
+  },
+  computed: {
+    ...mapState('c2cBuy', ['count', 'totalPrice', 'createOrderTime', 'orderNumber'])
+  },
+  created() {
+    this.fetchState()
+    // otcApi.ctcOrderGetDetail({order_no: this.$route.query.order_no}).then(res => {
+    //   this.detail = res.data
+    //   this.time = this.detail.expireTimeRemain
+    //   console.log(this.detail)
+    // })
+  },
+  methods: {
+    fetchState() {
+      const order_no = this.$store.state.c2c.order_no
+      otcApi.ctcOrderGetDetail({ order_no, language: this.$i18n.locale }).then(res => {
+        const state = res.data.state / 1
+        if (state === 1) { // 已付款
+          // TOOD: 完成
+          this.detail = res.data
+          this.time = this.detail.expireTimeRemain
+          this.expireTime = this.detail.expireTime * 60
+          this.unreadMsg = this.detail.unreadMsg
+          console.log(this.expireTime)
+          if (this.timeout) {
+            clearTimeout(this.timeout)
+          }
+          this.timeout = setTimeout(() => {
+            this.fetchState()
+          }, 3000)
+        } else if (state == 3) { // 已成功
+          // TODO 跳转到
+          clearTimeout(this.timeout)
+          this.$router.push('/tradeSuccessBuyer')
+        } else if (state == 5) {
+          clearTimeout(this.timeout)
+          this.$router.push({ path: '/tradeOrderDetail', query: { back: false } })
+        } else {
+          console.log(this.detail)
+        }
+      })
+    }
+  },
+  beforeDestroy() {
+    clearTimeout(this.timeout)
+  },
+  components: {
+    [Badge.name]: Badge,
+    [Divider.name]: Divider,
+    [Collapse.name]: Collapse,
+    [CollapseItem.name]: CollapseItem,
+    OrderNav,
+    OtcCircle,
+    TradeData,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep {
+  .order-msg-divider {
+    margin: 48px 0;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/payment/components/Evaluation.vue b/src/views/C2C/c2cOrder/payment/components/Evaluation.vue
new file mode 100644
index 0000000..55950bc
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/components/Evaluation.vue
@@ -0,0 +1,44 @@
+<template>
+  <div class="text-center">
+    <div class="pt-80 pb-50 font-28">
+      <slot name="desc"></slot>
+    </div>
+    <div class="flex justify-between px-72 ">
+      <div class="relative w-320 h-80 box-border py-16 border-radius">
+        好评
+        <div class="circle flex justify-center items-center">
+          <img class="w-32 h-32" src="@/assets/image/c2c/el_thumbs-up.png" alt="">
+        </div>
+      </div>
+      <div class="relative w-320 h-80 box-border py-16 border-radius">
+        差评
+        <div class="circle flex justify-center items-center">
+          <img class="w-32 h-32" src="@/assets/image/c2c/el_thumbs-up(2).png" alt="">
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "Evaluation"
+}
+</script>
+
+<style lang="scss" scoped>
+.border-radius {
+  border-radius: 60px;
+  background: #EAEBEE;
+}
+
+.circle {
+  position: absolute;
+  top: 4px;
+  left: 4px;
+  width: 72px;
+  height: 72px;
+  border-radius: 50%;
+  background: #fff;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/payment/components/Question.vue b/src/views/C2C/c2cOrder/payment/components/Question.vue
new file mode 100644
index 0000000..8038a0d
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/components/Question.vue
@@ -0,0 +1,73 @@
+<template>
+  <div class="w-full h-full c2cPay-page">
+    <order-nav :back="false" @back="hide"/>
+    <div class="text-center">
+      <div class="font-48 ">{{ $t('付款遇到问题?')}}</div>
+      <!-- <div class="flex justify-center items-center mt-18 font-28">
+        <span class="mr-6">{{ $t('付款剩余时间')}}</span>
+        <van-count-down class="flex font-700" :time="time">
+          <template #default="timeData">
+            <span class="font-26 block" v-if="timeData.hours">{{ timeData.hours }}</span>
+            <span class="font-26 colon" v-if="timeData.hours">:</span>
+            <span class="font-26 block">{{ timeData.minutes }}</span>
+            <span class="font-26 colon">:</span>
+            <span class="font-26 block">{{ timeData.seconds }}</span>
+          </template>
+        </van-count-down>
+      </div> -->
+    </div>
+    <div class="px-32 font-32 mt-18">
+      <div class="mt-100">
+        <p class="text-grey">Q:{{ $t('不知道如何付款?')}}</p>
+        <p class="mt-28">A:{{ $t('为保障交易安全,部分卖家可能先需要您提供额外资料来证明您的身份,资金来源等真是可信。请与卖家聊天沟通获取交易方式。')}}</p>
+      </div>
+      <div class="mt-80">
+        <p class="text-grey">Q:{{ $t('向卖家提供的收款方式付款,但支付失败了')}}</p>
+        <p class="mt-28">A:{{ $t('请联系卖家确认卖家是否支持其他交易方式。')}}</p>
+      </div>
+      <div class="mt-80">
+        <p class="text-grey">Q:{{ $t('我不想交易了?')}}</p>
+        <p class="mt-28">A:{{ $t('您可以点击取消订单按钮取消该笔订单。')}}</p>
+      </div>
+    </div>
+    <div class="mt-492 px-30">
+      <van-button class="w-full h-96  mr-16 font-32 rounded-2xl text-white bg-blue border-none"
+        type="primary" @click="$router.push('/chat')">{{ $t('联系卖家')}}
+      </van-button>
+      <van-button
+          class="w-full h-96  mt-42 font-32 rounded-2xl bg-grey text-black border-none"
+          type="primary"
+          @click="$router.push({path: '/cancelOrder'})"
+      >{{$t('取消订单')}}
+      </van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import {Button, CountDown} from "vant"
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+
+export default {
+  name: "Question",
+  props: ["time"],
+  methods: {
+    hide() {
+      console.log(123)
+      this.$emit('back')
+    }
+  },
+  components: {
+    [CountDown.name]: CountDown,
+    [Button.name]: Button,
+    OrderNav,
+  }
+}
+</script>
+
+<style scoped>
+@import "@/assets/css/copy2.scss";
+.c2cPay-page{
+  color: #333;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/payment/components/TradeSuccessDetail.vue b/src/views/C2C/c2cOrder/payment/components/TradeSuccessDetail.vue
new file mode 100644
index 0000000..1ae7adf
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/components/TradeSuccessDetail.vue
@@ -0,0 +1,149 @@
+<template>
+  <div style="z-index: 100;overflow: auto;background: rgb(245, 245, 245)"
+       class="fixed top-0 left-0 w-full h-full bg-white">
+    <div class="pt-12" style="background: #1D91FF">
+      <order-nav>
+        <template #default>
+          <div class="flex items-center chat flex justify-center">
+            <van-badge class="w-35 h-33 mr-22" :content="6">
+              <img class="w-full h-full" src="@/assets/image/c2c/Vector-white.png" alt="">
+            </van-badge>
+            <span class="font-28 text-white">{{ $t('联系卖家')}}</span>
+          </div>
+        </template>
+      </order-nav>
+      <div class="flex justify-between items-center mt-20 px-32 pb-50 text-white">
+        <div>
+          <div class="font-52">交易成功</div>
+          <div class="mt-26 font-26">您已成功购买 2,352.22 USDT</div>
+        </div>
+        <div>
+          <img class="w-92 h-92" src="@/assets/image/c2c/Group181.png" alt="">
+        </div>
+      </div>
+    </div>
+    <div class="pt-46 pb-30 bg-white">
+      <order-data
+          :count="count"
+          :total-price="totalPrice"
+          :order-number="orderNumber"
+          :create-order-time="createOrderTime"
+          client-type="买家昵称"
+          seller-name="钱多多爱妞商行"
+      >
+        <div class="w-full h-16 mb-40" style="background: rgb(245, 245, 245)"></div>
+      </order-data>
+    </div>
+    <div class="px-32 mt-16 bg-white py-39">
+      <h2 class="font-400 font-30">交易方式</h2>
+      <div class="flex items-center mt-28">
+        <div class="w-6 h-28 border-ra" style="background: #E7BB41;"></div>
+        <span class="ml-9 font-22 text-grey">银行卡</span>
+      </div>
+    </div>
+    <van-divider/>
+    <evaluation class="pb-60 bg-white"/>
+    <div class="mt-16">
+      <div class="flex justify-between items-center h-100 px-32 bg-white">
+        <div>
+          <span class="font-30 text-black">关注此用户</span>
+        </div>
+        <div class="switch">
+          <van-switch v-model="checked"/>
+        </div>
+      </div>
+      <div class="flex justify-between items-center h-100 px-32 mt-16 bg-white">
+        <div>
+          <span class="font-30 text-black">对订单存在疑问</span>
+        </div>
+        <div>
+          <van-icon name="arrow" class="font-700"/>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  mapState
+} from "vuex";
+import {
+  Badge,
+  Divider,
+  Cell,
+  CellGroup,
+  Switch,
+  Icon,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav";
+import OrderData from "@/page/c2cOrder/components/order-data/OrderData";
+import Evaluation from "@/page/c2cOrder/payment/components/Evaluation";
+
+export default {
+  name: "TradeSuccessDetail",
+  data() {
+    return {
+      checked: false,
+    }
+  },
+  computed: {
+    ...mapState('c2cBuy', ['count', 'totalPrice', 'orderNumber', 'createOrderTime'])
+  },
+  components: {
+    [Badge.name]: Badge,
+    [Divider.name]: Divider,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Switch.name]: Switch,
+    [Icon.name]: Icon,
+    OrderNav,
+    OrderData,
+    Evaluation,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+
+::v-deep {
+  .van-nav-bar__right {
+    padding: 0;
+  }
+
+  .van-nav-bar__arrow {
+    color: #fff;
+  }
+
+  .van-nav-bar {
+    background: #1D91FF;
+  }
+
+  .van-cell {
+    padding: 0 32px !important;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  .order-data {
+    .title {
+      padding: 0 32px;
+    }
+  }
+}
+
+.switch {
+  transform: scale(.7) translateX(20px);
+}
+
+.chat {
+  width: 232px;
+  height: 64px;
+  background: linear-gradient(310.03deg, #1D91FF 14.76%, #B6DBFF 84.98%);
+  border-radius: 36px 0px 0px 36px;
+}
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/c2cOrder/payment/index.vue b/src/views/C2C/c2cOrder/payment/index.vue
new file mode 100644
index 0000000..02fb00b
--- /dev/null
+++ b/src/views/C2C/c2cOrder/payment/index.vue
@@ -0,0 +1,194 @@
+<template>
+  <div id="full">
+    <order-nav/>
+    <div class="mt-10 text-center tabBackground text-black">
+      <div>
+        <h1 class="font-700 font-40">请向卖家付款</h1>
+        <div class="flex justify-center items-center mt-18 font-30 font-700">
+          <span>订单将在</span>
+          <van-count-down class="flex font-700" :time="time">
+            <template #default="timeData">
+              <span class="block">{{ timeData.hours }}</span>
+              <span class="colon">:</span>
+              <span class="block">{{ timeData.minutes }}</span>
+            </template>
+          </van-count-down>
+          <span>后取消</span>
+        </div>
+        <div class="flex justify-center items-end mt-42 font-64 font-700">
+          <span class="relative bottom-5 font-48">¥</span>
+          <span>{{ (totalPrice * 1).toLocaleString() }}.00</span>
+          <img class="relative bottom-10 left-25 w-30 h-33" src="@/assets/image/c2c/Group1168.png" alt="">
+        </div>
+        <div class="flex justify-center items-center mt-44">
+          <img class="w-36 h-34 mr-22" src="@/assets/image/c2c/Vector.png" alt="">
+          <span class=" font-32">联系卖家</span>
+        </div>
+
+      </div>
+    </div>
+    <div class="w-full pt-46 pb-58 mt-40" style="background: #fafafa">
+      <div class="ml-50 pl-38 pr-32 msg  relative">
+        <div class="circle absolute top-0 left-0 z-10 w-45 h-45 flex justify-center items-center bg-blue text-white font-26"
+             style="border-radius: 50%">1
+        </div>
+        <div
+            class="circle absolute bottom-28 left-0 z-10 w-45 h-45 flex justify-center items-center bg-blue text-white font-26"
+            style="border-radius: 50%">2
+        </div>
+        <div class="font-28">离开APP,登录您与APP上的验证姓名相匹配的银行账户或其他支付方式,转到卖家的以下账户。</div>
+        <div class="mt-50 pt-32 px-22 pb-38 bg-white rounded-2xl msg-wrapper">
+          <div class="flex items-center">
+            <div class="w-6 h-28 rounded-xl mr-20" style="background: #E7BB41;"></div>
+            <span class="ml-8 font-30 text-black">银行卡</span>
+          </div>
+          <van-cell-group>
+            <van-cell class="order-number" title="姓名">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">鸿运当头</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" title="银行卡号">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">请点击右上角按钮联系商家索取</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" title="银行名称">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">请仔细阅读下方交易条款</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+            <van-cell class="order-number" title="开户支行">
+              <template #default>
+                <div class="flex justify-end">
+                  <span class="mr-14">请按照下方交易条款提供相关资料</span>
+                  <img class="relative top-8 w-25 h-29" src="@/assets/image/c2c/Group1168.png" alt="">
+                </div>
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </div>
+        <div class="mt-39 font-28">付款后,返回 XX APP,务必点击下方按钮“我已付款”通知卖家。</div>
+      </div>
+    </div>
+    <div class="mt-92 px-40 flex font-30">
+      <van-button
+          class="w-244 h-80 mr-16 rounded-2xl text-black bg-grey border-none"
+          type="primary"
+          @click="show = true"
+      >遇到问题?</van-button>
+      <van-button
+          class="flex-1 h-80 rounded-2xl bg-blue text-white border-none"
+          type="primary"
+          @click="onPayed"
+      >我已付款,通知卖家</van-button>
+    </div>
+<!--  遇到问题  -->
+    <div>
+      <van-popup  class="w-full h-full" v-model="show" position="right">
+        <question @back="back" :time="time"/>
+      </van-popup>
+    </div>
+  </div>
+</template>
+
+<script>
+import {mapState} from "vuex";
+import {Cell, CellGroup, CountDown,Button,Popup,} from "vant"
+import OrderNav from "@/components/order-nav/OrderNav";
+import Question from "@/page/c2cOrder/payment/components/Question";
+import otcApi from '@/API/otc';
+
+export default {
+  name: "payMent",
+  props: {
+    time: {},
+    detail: {
+      type: Object,
+      default() {
+        return {}
+      }
+    }
+  },
+  data() {
+    return {
+     show: false,
+    }
+  },
+  methods: {
+    back() {
+      this.show = false;
+    },
+    onPayed() {
+      otcApi.ctcOrderPayFinish({}).then(res => {
+        console.log(res)
+        this.$router.push({path: '/paymentDetail?id=' + this.$route.query.order_no})
+      })
+    }
+  },
+  computed: {
+    ...mapState('c2cBuy', ["totalPrice"])
+  },
+  components: {
+    [CountDown.name]: CountDown,
+    [Cell.name]: Cell,
+    [CellGroup.name]: CellGroup,
+    [Button.name]:Button,
+    [Popup.name]:Popup,
+    OrderNav,
+    Question,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/init.scss";
+
+::v-deep {
+  .van-count-down {
+    font-size: 26px;
+    color: $blue;
+  }
+
+  .van-cell {
+    margin-top: 28px;
+
+    .van-cell__title, .van-cell__value {
+      font-size: 26px;
+    }
+  }
+}
+
+.msg {
+
+  //border-left: 1px solid #EAEBEE;
+
+  &:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 1px;
+    height: 93%;
+    background: #EAEBEE;
+  }
+}
+
+.msg-wrapper {
+  box-shadow: 0 0 10px rgba(0, 0, 0, .1);
+}
+
+.circle {
+  transform: translateX(-50%);
+}
+
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/components/BuyInput.vue b/src/views/C2C/components/BuyInput.vue
new file mode 100644
index 0000000..0b36f60
--- /dev/null
+++ b/src/views/C2C/components/BuyInput.vue
@@ -0,0 +1,60 @@
+<template>
+  <div class="buy-input relative">
+    <img class="w-40 h-40 absolute left-24" src="@/assets/image/payment/search.png" alt="" />
+    <input class="w-full box-border pl-80 pt-10 pb-10" :readonly="readonly" type="text" :value="value" :placeholder="placeholder" @input="changeVal"
+      @focus="focus" />
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'BuyInput',
+  props: ['value', 'placeholder','isReadonly'],
+  data() {
+    return {
+      readonly: false
+    }
+  },
+  mounted() {
+    if(this.isReadonly) {
+        this.readonly = this.isReadonly
+      } else {
+        this.readonly = false
+      }
+  },
+  methods: {
+    focus(e) {
+      this.$emit('focus', e.target.value)
+    },
+    changeVal(e) {
+      this.$emit('input', e.target.value)
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+input {
+  border: none;
+  outline: none;
+}
+
+.buy-input {
+  width: 100%;
+  height: 100%;
+
+  img {
+    top: 50%;
+    transform: translateY(-50%);
+  }
+
+  input {
+    width: 100%;
+    height: 100%;
+    border-radius: 50px;
+    background: $input_background;
+    color: $text_color;
+  }
+}
+</style>
diff --git a/src/views/C2C/components/C2cInput.vue b/src/views/C2C/components/C2cInput.vue
new file mode 100644
index 0000000..ca51674
--- /dev/null
+++ b/src/views/C2C/components/C2cInput.vue
@@ -0,0 +1,74 @@
+<template>
+<div class="payment-input-wrapper">
+  <div class="label font-28 mb-18 textColor2">
+    {{ $t(label) }}
+  </div>
+  <div class="payment-input w-full" >
+    <slot>
+      <input v-if="!isTextArea"
+          :readonly="disabled"
+          class="w-full h-full inputBackground c2cColor"
+          type="text"
+          :value="$t(value)"
+          @input="changeValue"
+          :placeholder="$t(placeholder)"
+      >
+      <textarea  v-else
+          class="w-full h-full inputBackground c2cColor"
+          type="text"
+          :value="$t(value)"
+          @input="changeValue"
+          :placeholder="$t(placeholder)"
+          cols="30" rows="6"
+       ></textarea>
+    </slot>
+  </div>
+</div>
+</template>
+
+<script>
+export default {
+  name: "PaymentInput",
+  // props: ["label", "color", "value"]
+  props: {
+    label: {
+      redirect: true
+    },
+    color: {
+      default: "#000000"
+    },
+    value: {
+
+    },
+    placeholder: {
+      default: ""
+    },
+    disabled: {
+      default() {
+        return false
+      }
+    },
+    isTextArea:{
+      default:false
+    }
+  },
+  methods: {
+    changeValue(e) {
+      this.$emit("input", e.target.value)
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+input, textarea {
+  box-sizing: border-box;
+  padding: 32px 24px;
+  border: none;
+  border-radius: 8px;
+}
+
+textarea {
+  resize: none;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/components/SelectItem.vue b/src/views/C2C/components/SelectItem.vue
new file mode 100644
index 0000000..fee59d1
--- /dev/null
+++ b/src/views/C2C/components/SelectItem.vue
@@ -0,0 +1,115 @@
+<template>
+  <div class="px-32">
+    <div class="flex justify-between box-border items-center">
+      <div class="text-grey font-26">{{ $t(title) }}</div>
+      <div class="font-26" @click="show = !show">
+        <span class="mr-17 text-color">{{ $t('全部') }}</span>
+        <van-icon name="arrow-down" class="text-color" />
+      </div>
+    </div>
+    <div class="select-wrapper mt-35" :class="{ 'show': show }">
+      <div v-if="dataType() === '[object Object]'"
+        class="relative h-82 lh-82 text-center rounded-xl font-28 c2cColor box-border tabBackground"
+        @click="handlerClick({ code: 99 })" :class="{ 'active': value === 99 }">
+        <img v-show="value === 99" class="absolute top-0 left-0 w-full h-full"
+          src="@/assets/image/c2c/Group317.png" alt="">
+        {{ $t('全部') }}
+      </div>
+      <div class="relative text-center rounded-xl font-28 c2cColor box-border tabBackground px-6 py-10"
+        v-for="(item, index) in options" :key="index" @click="handlerClick(item)" :class="{ 'active': a(value, item) }">
+        <img v-show="a(value, item)" class="absolute top-0 left-0 w-full h-full"
+          src="@/assets/image/c2c/Group317.png" alt="">
+        {{ item.title || item.name }}
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  Icon
+} from "vant";
+
+export default {
+  name: "SelectItem",
+  props: ['title', 'options', 'value'],
+  data() {
+    return {
+      activeIndex: 0,
+      show: false,
+    }
+  },
+  created() {
+    console.log(this.options);
+    // const type = Object.prototype.toString.call(this.options)
+    // if (type === '[object Array]') {
+    //   this.activeIndex = 0;
+    // } else {
+    //   const keys = Object.keys(this.options)
+    //   console.log(keys[0]);
+    //   this.activeIndex = this.options[keys[0]].code;
+    // }
+  },
+  methods: {
+    handlerClick(item) {
+      let val;
+      if (item.method_type || item.method_type === 0) {
+        console.log(item.method_type);
+        val = item.method_type
+      } else {
+        val = item.code
+      }
+      console.log(val);
+      // this.activeIndex = index;
+      this.$emit('update:value', val)
+    },
+    dataType() {
+      return Object.prototype.toString.call(this.options)
+    },
+    a(a, item) {
+      let val;
+      if (item.method_type || item.method_type === 0) {
+        val = item.method_type
+      } else {
+        val = item.code
+      }
+      return a === val;
+    }
+  },
+  components: {
+    [Icon.name]: Icon,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.text-color {
+  color: #868D9A;
+}
+
+.show {
+  height: 310px !important;
+}
+
+.active {
+  border-color: #1D91FF !important;
+}
+
+.select-wrapper {
+  overflow-y: scroll;
+  height: 82px;
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 32px;
+  transition: all ease .4s;
+  //background: #00ff33;
+
+  &>div {
+    border-width: 1px;
+    border-style: solid;
+    background-color: #888;
+    border-color: $tab_background;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/components/adScreening.vue b/src/views/C2C/components/adScreening.vue
new file mode 100644
index 0000000..cbe24ed
--- /dev/null
+++ b/src/views/C2C/components/adScreening.vue
@@ -0,0 +1,204 @@
+<template>
+  <div id="full" class="adScreening">
+    <div class="flex box-border items-center justify-between px-36 w-full mt-26 font-36 font-700 text-center">
+      <div></div>
+      <span class="c2cColor">{{ $t('广告筛选') }}</span>
+      <van-icon class="c2cColor" name="cross" @click="handlerBack" />
+    </div>
+    <div class="font-27 mb-35 text-grey ml-32 mt-40">{{ $t('总额') }}</div>
+    <div class="px-32">
+      <van-field v-model="amount" :size="large" :placeholder="$t('请输入总额')">
+        <template #extra>
+          <div class="tabBackground pr-30 box-border textColor">
+            {{ exchangeCurrency }}
+          </div>
+        </template>
+      </van-field>
+    </div>
+    <select-item class="mt-64" :title="$t('交易方式')" :options="fullPayMethods" v-model:value="method_type" />
+    <select-item class="mt-64" :title="$t('国家/地区')" :options="countries" v-model:value="country_code" />
+    <div class="px-32">
+      <van-cell class="c2cColor" center :title="$t('仅显示商家发布的广告')">
+        <template #right-icon>
+          <van-switch v-model="checked" size="24" @click="showAd = !showAd" />
+        </template>
+      </van-cell>
+      <van-collapse v-model="activeNames" v-show="showAd">
+        <van-collapse-item>
+          <template #title>
+            <div class="flex items-center">
+              <img class="w-24 h-24 mr-18" src="@/assets/image/otc/wantBuyHead/tip_ico.png" alt="">
+              <span class="mr-16 font-24 text-grey">{{ $t('广告筛选说明') }}</span>
+              <van-icon name="arrow-down" class="block relative top-1 font-24 font-700"
+                :class="{ 'rotateZ': activeNames.length > 0 }" />
+            </div>
+          </template>
+          <template #right-icon><i></i></template>
+          <template #default>
+            <div class="font-28 c2cColor">
+              <div><span>{{ $t('交易方式:') }}</span><span class="font-700">{{ $t('仅显示可用的交易方式') }}</span></div>
+              <div class="mt-6"><span>{{ $t('国家/地区') }}</span><span class="font-700">{{ $t('仅显示可用的国家 / 地区') }}</span>
+              </div>
+            </div>
+          </template>
+        </van-collapse-item>
+      </van-collapse>
+      <div class="flex mt-56 mb-36 justify-center ">
+        <button class="w-370 h-82 tabBackground c2cColor rounded-lg font-400 font-30 border-none mr-21"
+          @click="onReset">{{ $t('重置') }}
+        </button>
+        <button class="w-370 h-82 bg-grey rounded-lg font-400 font-30 border-none"
+          :class="[{ 'btnMain': tabindex === 1 }, { 'text-white': tabindex === 1 }]" @click="onConfirm">{{ $t('确认') }}
+        </button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import SelectItem from "./SelectItem.vue";
+import { Cell, Icon, Popup, DropdownMenu, DropdownItem, Field, Switch, Collapse, CollapseItem } from 'vant';
+
+import { mapGetters, mapState } from 'vuex'
+import countries from '@/components/country-list/countryList.js'
+// import { timeStamp } from 'console';
+
+export default {
+  name: "adScreening",
+  components: {
+    [Icon.name]: Icon,
+    [Field.name]: Field,
+    [Popup.name]: Popup,
+    [Cell.name]: Cell,
+    [Switch.name]: Switch,
+    [DropdownMenu.name]: DropdownMenu,
+    [DropdownItem.name]: DropdownItem,
+    [Collapse.name]: Collapse,
+    [CollapseItem.name]: CollapseItem,
+    SelectItem,
+  },
+  computed: {
+    ...mapGetters('c2c', ['payMethods']),
+    ...mapGetters('c2c', ['symbolList', 'payMethods', 'exchangeCurrency']),
+    // 处理交易方式对象
+    fullPayMethods() {
+      const payMethods = [];
+      Object.keys(this.payMethods).forEach((key) => {
+        payMethods.push({
+          method_type: key,
+          title: this.payMethods[key]
+        })
+      })
+      payMethods.unshift({
+        method_type: 99,
+        title: this.$t('全部')
+      })
+
+      return payMethods;
+    }
+  },
+  created() {
+  },
+  data() {
+    return {
+      countries, // 国家列表
+      activeNames: [],
+      amount: '',
+      // 0 代表全部
+      method_type: '', // 支付方式
+      country_code: 99, // 国家
+      tradeList: [
+        {
+          '': this.$t('全部'),
+          // Bank_card: '银行卡',
+          // Coin_collection: '币收款',
+        }
+      ],
+      large: '80',
+      checked: false,
+      tabindex: 1,
+      showAd: false,
+    }
+  },
+  methods: {
+    onChooseType(key) { // 选择支付方式
+      this.method_type = key
+      this.$refs.paymentMethod[0].toggle()
+    },
+    onSelectCountry(item) {
+      this.country_code = item.code;
+      this.$refs.country.toggle()
+    },
+    onReset() { // 重置
+      this.amount = ''
+      this.method_type = 99
+      this.country_code = 99
+    },
+    onConfirm() { // 确认
+      console.log(this.amount, this.method_type, this.country_code, this.checked)
+      this.$emit('confirm', {
+        amount: this.amount,
+        method_type: this.method_type
+      })
+
+      this.$emit('back')
+    },
+    handlerBack() {
+      this.$emit('back')
+    },
+    payMethod(val) {
+      console.log(val);
+      this.method_type = val
+    },
+    address(val) {
+      this.country_code = val
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.active_trade {
+  color: #ffffff;
+  // background-color: #888;
+  background:$color_main;
+}
+
+.rotateZ {
+  transform: rotateZ(180deg);
+}
+
+::v-deep {
+  .van-dropdown-menu__bar {
+    background: none;
+    box-shadow: none;
+  }
+
+  .van-collapse-item__content {
+    padding: 0;
+  }
+}
+
+#full {
+  ::v-deep .van-cell {
+    background: $main_background;
+  }
+
+  ::v-deep .van-cell::after {
+    border-bottom: 1px solid $divi_line;
+  }
+
+  .van-switch {
+    background: $btn_main;
+  }
+
+  ::v-deep .van-collapse-item__content {
+    background: $main_background;
+  }
+
+  ::v-deep .van-field__control {
+    color: $text_color;
+  }
+}
+</style>
diff --git a/src/views/C2C/components/buy.vue b/src/views/C2C/components/buy.vue
new file mode 100644
index 0000000..9724012
--- /dev/null
+++ b/src/views/C2C/components/buy.vue
@@ -0,0 +1,394 @@
+<template>
+  <div style="overflow: hidden" class="absolute left-0 right-0 bottom-0 top-122 box-ra flex flex-col"
+    :class="fullBottom">
+    <div class="flex justify-between mt-46 mb-40 items-center">
+      <div class="flex ml-32 text-grey">
+        <div class="font-400 font-36 mr-89 " @click="switchDirection('buy')" :class="{ 'textColor': buyTab === 'buy' }">
+          {{ $t('我要买') }}
+        </div>
+        <div class="font-400 font-36 " @click="switchDirection('sell')" :class="{ 'textColor': buyTab === 'sell' }">
+          {{ $t('我要卖') }}
+        </div>
+      </div>
+      <img @click="$router.push({ path: '/wantBuy/c2cOrderList' })" class="w-22 h-30 mr-55"
+        src="@/assets/image/otc/buy/subtract.png" alt="">
+    </div>
+    <!-- <div class="flex"> -->
+    <!-- <div class="flex flex-col mr-80 ml-32" @click="tab = 0" :class="{'text-blue': tab === 0}" v-for="(item, index) in symbol" :key="index">
+      <div class="font-400 font-26 mb-18">{{item}}</div>
+      <div class="h-4 w-48 text-white" :class="{'text-blue': tab === 0}">一</div>
+    </div> -->
+    <!-- <div class="flex flex-col " @click="tab = 1" :class="{'text-blue': tab === 1}">
+      <div class="font-400 font-26 mb-18 mr-80">BTC</div>
+      <div class="h-4 w-48 text-white" :class="{'text-blue': tab === 1}">一</div>
+    </div>
+    <div class="flex flex-col " @click="tab = 2" :class="{'text-blue': tab === 2}">
+      <div class="font-400 font-26 mb-18">ETH</div>
+      <div class="h-4 w-48 text-white" :class="{'text-blue': tab === 2}">一</div>
+    </div> -->
+    <!-- </div> -->
+    <!--    <van-tabs v-model="tab" @change="onchange">-->
+    <!--      <van-tab :title="item" v-for="(item, index) in symbol" :key="index"></van-tab>-->
+    <!--    </van-tabs>-->
+    <div class="tabs flex px-32 items-center" style="overflow-x: auto;touch-action: auto;">
+      <div :class="{ 'active': tab === index }" @click="onchange(index)" style="flex-shrink: inherit;touch-action: auto;"
+        v-for="(item, index) in symbol" :key="index" class="mr-80 item flex flex-col items-center  textColor1">
+        <span class="font-26">{{ item }}</span>
+        <div v-if="tab === index" class="w-48 h-4 mt-20" style="background: #1194F7"></div>
+        <div v-else class="w-48 h-4 mt-20"></div>
+      </div>
+    </div>
+    <div class="mt-26 flex justify-between">
+      <div class="flex ml-16">
+        <div class="mr-80">
+          <van-dropdown-menu active-color="#1989fa">
+            <van-dropdown-item :title="$t('金额')" ref="amountItem">
+              <van-field v-model="value1" :placeholder="$t('请输入总额')">
+                <template #extra>
+                  {{ exchangeCurrency }}
+                </template>
+              </van-field>
+              <div class="flex flex-wrap justify-between px-20 box-border mb-62 mt-12">
+                <div class="font-400 font-28 w-248 h-72 mb-12 rounded-md tabBackground c2cColor text-center lh-72 mr-12"
+                  :class="{ 'active_trade': index === numListActive }" v-for="(item, index) in numList"
+                  :key="'num' + index" @click="onQuickAmount(item, index)">
+                  {{ item.num }}
+                </div>
+              </div>
+              <div class="flex mb-36 justify-center ">
+                <button class="w-370 h-82 tabBackground c2cColor rounded-lg font-400 font-30 border-none mr-21"
+                  :class="[{ 'bg-blue': tabindex === 0 }, { 'text-white': tabindex === 0 }]" @click="onResetMoney">{{
+                    $t('重置')
+                  }}
+                </button>
+                <button class="w-370 h-82 btnMain c2cColor rounded-lg font-400 font-30 border-none"
+                  :class="[{ 'bg-blue': tabindex === 1 }, { 'text-white': tabindex === 1 }]" @click="onConfirmMoney">
+                  {{ $t('确认') }}
+                </button>
+              </div>
+            </van-dropdown-item>
+          </van-dropdown-menu>
+        </div>
+        <div class="  ">
+          <van-dropdown-menu active-color="#1989fa">
+            <van-dropdown-item :title="$t('交易方式')" ref="payTypeItem">
+              <div class="flex mb-72 justify-center mt-44 flex-wrap">
+                <button v-show="showTab !== 0"
+                  class="w-232 h-82 tabBackground c2cColor rounded-lg font-400 font-28 border-none mr-32"
+                  @click="onAllType">
+                  {{ $t('全部') }}
+                </button>
+                <div class="relative" v-show="showTab === 0" @click="showTab = 2">
+                  <button class="w-232 h-82 tabBackground c2cColor rounded-lg font-400 font-28 border-none mr-32">{{
+                    $t('全部')
+                  }}
+                  </button>
+                  <img class="absolute top-0 right-0 w-232 h-82 mr-32"
+                    src="@/assets/image/otc/wantBuyHead/trade_bg.png" alt="">
+                </div>
+                <button class="w-232 minh-82 tabBackground c2cColor rounded-lg font-400 font-24 border-none mr-32 mb-20"
+                  :class="{ 'active_trade': showTab == index + 1 }" @click="onShowTab(index)"
+                  v-for="(item, index) in payMethods" :key="index">{{ item }}
+                </button>
+                <!-- <button class="w-232 h-82 bg-grey rounded-lg font-400 font-28 border-none "
+                        :class="{'active_trade' : showTab === 2} " @click="showTab = 2">币收款
+                </button> -->
+              </div>
+              <div class="font-22 text-center mb-30 text-grey">{{ $t('仅展示可用的交易方式') }}</div>
+            </van-dropdown-item>
+          </van-dropdown-menu>
+        </div>
+      </div>
+      <div class="flex mr-32 items-center" @click="selectClick">
+        <div class="mr-10 font-24 font-400 textColor">{{ $t('筛选') }}</div>
+        <img class="w-18 h-21" src="@/assets/image/otc/buy/Vector.png" alt="">
+      </div>
+    </div>
+    <div class="flex justify-center mb-52">
+      <div class="w-full h-2 diviLine mt-28 box-border mx-32 "></div>
+    </div>
+    <!-- loading / empty -->
+    <!--      <div class="flex justify-center" :class="{'pt-100': !buyList.length}">-->
+    <!--        <van-loading color="#1989fa" v-if="loading"/>-->
+    <!--        <van-empty description="没有广告" v-if="!loading && !buyList.length"/>-->
+    <!--      </div>-->
+    <div class="flex-1 roll-section" style="overflow-y: auto">
+      <slot></slot>
+    </div>
+
+    <van-popup class="w-600 rounded-xl" v-model:show="showRemoved">
+      <div class="flex flex-col items-center pt-46 pb-40 px-34  bg-white">
+        <img class="w-76 h-76" src="@/assets/image/c2c/Group41-3.png" alt="">
+        <div>
+          <p class="mt-36 mb-50 font-28">{{ $t('该广告已下架。请选择其他广告。') }}</p>
+          <van-button @click="showRemoved = false" class="w-full h-80 rounded-lg bg-blue" type="info">
+            {{ $t('确认') }}
+          </van-button>
+        </div>
+      </div>
+    </van-popup>
+
+    <!--筛选-->
+    <van-popup class="w-full popHeight" round v-model:show="showSelect" position="bottom">
+      <ad-screening @back="handlerBack" @confirm="confirm" />
+    </van-popup>
+  </div>
+</template>
+<script>
+import { Cell, Icon, Popup, DropdownMenu, DropdownItem, Field, Button, Tabs, Tab } from 'vant';
+import adScreening from "./adScreening.vue";
+import { mapGetters } from 'vuex'
+
+export default {
+  name: "BuyPage",
+  components: {
+    [Icon.name]: Icon,
+    [Field.name]: Field,
+    [Popup.name]: Popup,
+    [Cell.name]: Cell,
+    [DropdownMenu.name]: DropdownMenu,
+    [DropdownItem.name]: DropdownItem,
+    [Button.name]: Button,
+    [Tabs.name]: Tabs,
+    [Tab.name]: Tab,
+    adScreening,
+  },
+  props: {
+    buyList: { // 承兑商列表
+      type: Array,
+      default() {
+        return []
+      }
+    },
+    symbol: {
+      type: Array,
+      default() {
+        return []
+      }
+    },
+    loading: {
+      type: Boolean,
+      default: false
+    },
+    finished: {
+      type: Boolean,
+      default: false
+    },
+    isLoading: {
+      type: Boolean,
+      default: false
+    },
+  },
+  created() {
+    // 设置选中tab
+    const index = this.symbol.findIndex(item => item === this.$store.state.c2c.symbol)
+    // this.tab = index
+    this.tab = 0
+    // direction
+    this.buyTab = this.$store.state.c2c.direction
+
+  },
+  data() {
+    return {
+      showSelect: false, // 显示筛选
+      showRemoved: false, // 显示已下架弹窗
+      tabindex: 1,
+      tab: 0,
+      showTab: 0,
+      buyTab: 0,
+      // buyList1: [
+      //   {
+      //     name: 'BitcomTxm',
+      //     unit_price: '0.960',
+      //     quantity: '498.6 USDT',
+      //     limit: '$200.50 - $483.64',
+      //     volume: '158',
+      //     Transaction_rate: '78%',
+      //     bgm: require('@/assets/image/otc/buy/B.png'),
+      //     bgm2: require('@/assets/image/otc/buy/star.png'),
+      //     uid: 'dsadas',
+      //   },
+      //   {
+      //     name: 'ETHCoin',
+      //     unit_price: '0.960',
+      //     quantity: '498.6 USDT',
+      //     limit: '$200.50 - $483.64',
+      //     volume: '158',
+      //     Transaction_rate: '78%',
+      //     bgm: require('@/assets/image/otc/buy/E.png'),
+      //     bgm2: require('@/assets/image/otc/buy/star.png'),
+      //     uid: 'sss',
+      //     isRemoved: true, // 已下架
+      //   },
+      //   {
+      //     name: 'BitcomTxm',
+      //     unit_price: '0.960',
+      //     quantity: '498.6 USDT',
+      //     limit: '$200.50 - $483.64',
+      //     volume: '158',
+      //     Transaction_rate: '78%',
+      //     bgm: require('@/assets/image/otc/buy/B.png'),
+      //     bgm2: require('@/assets/image/otc/buy/star.png'),
+      //     uid: '333',
+      //   },
+      //   {
+      //     name: 'BitcomTxm',
+      //     unit_price: '0.960',
+      //     quantity: '498.6 USDT',
+      //     limit: '$200.50 - $483.64',
+      //     volume: '158',
+      //     Transaction_rate: '78%',
+      //     bgm: require('@/assets/image/otc/buy/B.png'),
+      //     bgm2: require('@/assets/image/otc/buy/star.png'),
+      //     uid: '5444',
+      //   },
+      // ],
+      value: 0,
+      value1: '',
+      switch1: false,
+      switch2: false,
+      numListActive: -1,
+      numList: [
+        {
+          num: '100',
+          value: '100'
+        }, {
+          num: '1000',
+          value: '1000'
+        }, {
+          num: '5000',
+          value: '5000'
+        }, {
+          num: this.$i18n.locale === 'CN' || this.$i18n.locale === 'zh-CN' ? '1万' : '10k',
+          value: '10000'
+        }, {
+          num: this.$i18n.locale === 'CN' || this.$i18n.locale === 'zh-CN' ? '10万' : '100k',
+          value: '100000'
+        }, {
+          num: this.$i18n.locale === 'CN' || this.$i18n.locale === 'zh-CN' ? '20万' : '200k',
+          value: '200000'
+        }
+      ]
+    }
+  },
+  methods: {
+    onAllType() { //全部
+      this.showTab = 0
+      this.$emit('change', { method_type: '' })
+      this.$refs.payTypeItem.toggle()
+    },
+    onShowTab(index) { // 选择交易方式
+      this.showTab = index + 1
+      this.$emit('change', { method_type: index })
+      this.$refs.payTypeItem.toggle()
+    },
+    onResetMoney() { // 重置金额
+      this.value1 = ''
+      this.numListActive = -1
+    },
+    onConfirmMoney() { // 确定金额
+      this.$emit('change', { amount: this.value1 })
+      this.$refs.amountItem.toggle()
+    },
+    onQuickAmount(item, index) { // 快捷金额
+      this.numListActive = index
+      this.value1 = item.value
+      // console.log(item)
+    },
+    // 筛选
+    selectClick() {
+      this.showSelect = true;
+    },
+    // 隐藏筛选
+    handlerBack() {
+      this.showSelect = false;
+    },
+    // 筛选确定
+    confirm(params) {
+      console.log(params)
+      this.$emit('confirm', params)
+    },
+
+    switchDirection(direction) { // 我要买/卖
+      this.buyTab = direction
+      this.$store.commit('c2c/SET_DIRECTION', direction)
+      this.$emit('change', { direction })
+    },
+    onchange(index) { // tab改变
+      this.tab = index
+      this.$store.commit('c2c/SET_SYMBOL', this.symbolList[index])
+      this.$emit('change', { symbol: this.symbolList[index] })
+    }
+  },
+  computed: {
+    ...mapGetters('c2c', ['symbolList', 'payMethods', 'exchangeCurrency']),
+    fullBottom() {
+      return this.$route.path === '/wantBuy' ? 'bottom-0' : 'bottom-160';
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+  color: transparent;
+}
+
+.tabs {
+  .item:last-child {
+    margin-right: 0;
+  }
+}
+
+.popHeight {
+  height: calc(100% - 122px);
+}
+
+.box-ra {
+  border-radius: 80px 80px 0 0;
+}
+
+.col {
+  color: #E7BB41;
+}
+
+.cl {
+  color: var(--theme-color);
+}
+
+.active {
+  color: var(--theme-color);
+}
+
+.active_all {
+  background: url("@/assets/image/otc/wantBuyHead/trade_bg.png");
+  border: 2px solid #2C78F8;
+}
+
+.active_trade {
+  color: #ffffff;
+  background-color: #555 !important;
+}
+
+::v-deep {
+  .van-dropdown-menu__bar {
+    background: none;
+    box-shadow: none;
+  }
+}
+
+.minh-82 {
+  min-height: 82px;
+}
+
+.mb-52 {
+  margin-bottom: 52px;
+}
+
+.tabBackground{
+  background-color: #999;
+}
+</style>
diff --git a/src/views/C2C/quick/EnterTrade.vue b/src/views/C2C/quick/EnterTrade.vue
new file mode 100644
index 0000000..ff95b99
--- /dev/null
+++ b/src/views/C2C/quick/EnterTrade.vue
@@ -0,0 +1,219 @@
+<template>
+  <div class="py-50 px-52">
+    <order-nav>
+      <template #left><i></i></template>
+      <template #title>
+        <div class="header-box">
+          <span v-if="type === 'buy'" class="font-36 header-title">{{ $t('确认购买') }}</span>
+          <span v-else class="font-36 header-title">{{ $t('确认出售') }}</span>
+        </div>
+      </template>
+      <template #default>
+        <van-icon @click="$emit('close')" name="cross" class="font-600" color="#868D9A" />
+      </template>
+    </order-nav>
+    <div class="text-center">
+      <div v-if="type === 'buy'">
+        <div v-if="info.type === 'Amount'">
+          <div class="flex items-end justify-center font-700">
+            <span class="relative bottom-3 mr-15 font-40">{{ currencySymbol }}</span>
+            <span class="font-52">{{ fullTotalPrice }}</span>
+          </div>
+          <div class="mt-16 font-28">{{ $t('我将收到') }}&nbsp;<span style="color:#2C78F8;">{{ fullNum
+          }}</span>&nbsp;{{ symbol }}</div>
+        </div>
+        <div v-else>
+          <div class="flex items-end justify-center font-700">
+            <span class="relative bottom-3 mr-15 font-40">{{ currencySymbol }}</span>
+            <span class="font-52">{{ fullTotalPrice }}</span>
+          </div>
+          <div class="mt-16 font-28">{{ $t('我将收到') }}&nbsp;<span style="color:#2C78F8;">{{ fullNum
+          }}</span>&nbsp;{{ symbol }}</div>
+        </div>
+      </div>
+      <div v-else>
+        <div v-if="info.type === 'Amount'">
+          <div class="flex items-end justify-center font-700">
+            <span class="relative bottom-3 mr-15 font-40">{{ currencySymbol }}</span>
+            <span class="font-52">{{ fullTotalPrice }}</span>
+          </div>
+          <div class="mt-16 font-28">{{ $t('我将出售') }}&nbsp;<span style="color:#2C78F8;">{{ fullNum
+          }}</span>&nbsp;{{ symbol }}</div>
+        </div>
+        <div v-else>
+          <div class="flex items-end justify-center font-700">
+            <span class="relative bottom-3 mr-15 font-40">{{ currencySymbol }}</span>
+            <span class="font-52">{{ fullTotalPrice }}</span>
+          </div>
+          <div class="mt-16 font-28">{{ $t('我将出售') }}&nbsp;<span style="color:#2C78F8;">{{ fullNum
+          }}</span>&nbsp;{{ symbol }}</div>
+        </div>
+      </div>
+    </div>
+    <div class="mt-64">
+      <div class="text-grey">{{ $t('选择支付方式') }}</div>
+      <div class="mt-18">
+        <div
+          class="relative flex items-center justify-between mb-19 pl-36 pr-62 py-28 bg-f5 rounded-xl font-28 box-border bank-item"
+          :class="{ 'active': active === index }" @click="handleClick(index, item)" v-for="(item, index) in paymentMethod"
+          :key="index">
+          <div class="flex items-center h-30">
+            <img :src="item.method_img_path" alt="" class="w-40 h-40 mr-20" />
+            <span>{{ $t(item.method_name) }}</span>
+          </div>
+          <div>
+            <p>{{ currencySymbol }} {{ item.advert_price }}</p>
+            <p class="mt-12 font-20" style="color: #1A6EBD" v-if="goodPrice">{{ $t('价格最优') }}</p>
+          </div>
+          <img v-show="active === index" class="absolute right-0 top-0 w-310 h-110"
+            src="@/assets/image/c2c/Group317.png" alt="">
+        </div>
+        <!-- <div
+            class="relative flex justify-between pl-36 pr-62 py-28 bg-f5 rounded-xl font-28 box-border bank-item"
+            :class="{'active': active === 1}"
+            @click="handleClick(1)"
+        >
+          <div class="flex items-center">
+            <span class="w-5 h-21 mr-13 rounded-2xl" style="background: #4BA6EB"></span>
+            <span>{{$t(paymentMethod[1].methodName)}}</span>
+          </div>
+          <div>
+            <p>¥ 6.73</p>
+          </div>
+          <img v-show="active === 1" class="absolute right-0 top-0 w-310 h-110"
+               src="@/assets/image/c2c/Group317.png" alt="">
+        </div> -->
+      </div>
+    </div>
+    <div>
+      <van-button v-if="type === 'buy'" class="w-full h-80 mt-56 font-32 rounded-xl" type="primary" color="#2EBD85"
+        @click="trade">{{ $t('确认购买') }}
+      </van-button>
+      <van-button v-else class="w-full h-80 mt-56 font-32 rounded-xl" type="primary" color="#E35461" @click="trade">{{
+        $t('确认出售') }}
+      </van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  Icon,
+  Button,
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import otcApi from "@/service/otc";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "EnterTrade",
+  props: ['type', 'paymentMethod', 'info', 'sessionToken', 'symbol', 'exchangeCurrency'],
+  data() {
+    return {
+      advert_price: '', // 测试单价
+      active: 0,
+      goodPrice: true,
+      advert_id: ''
+    }
+  },
+  watch: {
+    paymentMethod: {
+      handler: function (val) {
+        this.advert_price = this.paymentMethod[this.active].advert_price
+        this.advert_id = this.paymentMethod[this.active].advert_id
+      },
+      immediate: true
+    }
+  },
+  methods: {
+    handleClick(num, item) {
+      this.active = num;
+      this.advert_price = item.advert_price
+      this.advert_id = item.advert_id
+    },
+    async trade() {
+      const params = {
+        session_token: this.sessionToken,
+        payment_method_id: this.paymentMethod[this.active].payment_method_id,
+        order_type: this.info.type === 'Amount' ? 'by_amount' : 'by_num',
+        amount: this.fullTotalPrice,
+        coin_amount: this.fullNum,
+        direction: this.type,
+        currency: this.exchangeCurrency,
+        symbol: this.symbol.toLowerCase(),
+        remark: '',
+        c2c_advert_id: this.advert_id
+      }
+
+      otcApi.ctcOrderOpenQuick(params).then(res => {
+        this.$store.commit('c2c/SET_ORDER_NO', res.data.order_no)
+        if (this.type == 'buy') {
+          this.$router.push('/orderGeneration')
+        } else {
+
+          this.$router.push('/sellGenerate')
+        }
+      }).catch(err => {
+        // if(err.code==1){
+        //   this.$emit('updataToken',true)
+        // }
+      })
+    }
+  },
+  computed: {
+    ...mapGetters("c2c", ["currencySymbol"]),
+    fullTotalPrice() {
+      if (this.info.type === 'Amount') {
+        return this.info.num
+      } else {
+        console.log((this.info.num * 1))
+        console.log(this.advert_price)
+        return ((this.info.num * 1) * this.advert_price).toFixed(2)
+      }
+    },
+    fullNum() {
+      if (this.info.type === 'Amount') {
+        return ((this.info.num * 1) / this.advert_price).toFixed(4)
+      } else {
+        return this.info.num
+      }
+    }
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Button.name]: Button,
+    OrderNav,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+
+.header-box {
+  color: $text_color;
+}
+
+.bank-item {
+  border-width: 1px;
+  border-style: solid;
+  // border-color: #F5F5F5;
+
+  background: $main_background;
+  color: $text_color;
+  border-color: $line_color;
+
+  img {
+    right: -1px;
+    top: -1px;
+  }
+}
+
+.active {
+  border-color: #1D91FF !important;
+}
+
+.text-center {
+  color: $text_color;
+}
+</style>
diff --git a/src/views/C2C/quick/index.vue b/src/views/C2C/quick/index.vue
new file mode 100644
index 0000000..58ac76e
--- /dev/null
+++ b/src/views/C2C/quick/index.vue
@@ -0,0 +1,408 @@
+<template>
+  <div id="wantBuy" class="flex flex-col w-full h-full">
+    <div>
+      <div class="w-full h-122 pl-40 pr-31 box-border flex text-white items-center">
+        <van-icon class="c2cColor" name="arrow-left" @click="$router.back()" />
+        <div class="flex-1 text-right mr-100" @click="showPopup">
+          <span class="font-35 font-700 mr-8 titleColor">{{ $t('快捷区') }}</span>
+          <van-icon name="arrow-down" class="c2cColor" />
+        </div>
+        <van-popup round position="top" v-model:show="show" :closeable="true">
+          <span class="w-232 font-28 c2cColor font-500 ml-32 block mt-20">{{
+            $t('选择交易区')
+          }}</span>
+          <div class="flex justify-around c2cColor mt-40 pb-48">
+            <div class="flex flex-col items-center" @click="show = false">
+              <img class="w-56 h-56" src="@/assets/image/otc/wantBuyHead/fast.png" alt="" />
+              <span class="font-24 mt-10 h-32 font-500">{{ $t('快捷区') }}</span>
+            </div>
+            <div class="flex flex-col items-center" @click="$router.push({
+              path: '/wantBuy'
+            })">
+              <img class="w-56 h-56" src="@/assets/image/otc/wantBuyHead/optional.png" alt="" />
+              <span class="font-24 mt-10 font-500">{{ $t('自选区') }}</span>
+            </div>
+          </div>
+        </van-popup>
+        <div class="w-232 h-64 px-23 box-border box-radius textColor flex justify-around items-center tabBackground">
+          <div class="flex items-center" @click="$router.push({
+            path: '/selectLegalCurrency'
+          })">
+            <span class="mr-15 font-31 font-400">{{ exchangeCurrency }}</span>
+            <img class="w-24 h-20" src="@/assets/image/otc/wantBuyHead/Group.png" alt="" />
+          </div>
+          <template>
+            <span class="w-2 h-36">|</span>
+            <van-popover get-container="#quick" v-model="showPopover" :actions="actions" @select="onSelect"
+              placement="bottom-end" theme="dark" :offset="[20, 20]">
+              <template #reference>
+                <img @click="showPopover = !showPopover" class="relative bottom-4 w-24 h-6 list-img"
+                  src="@/assets/image/otc/wantBuyHead/Group2.png" alt="" />
+              </template>
+            </van-popover>
+          </template>
+        </div>
+      </div>
+      <div class="px-32 pb-42 type">
+        <div class="flex items-center font-36 ">
+          <div :class="{ 'active': isBuy }" @click="isBuy = true">{{ $t('我要买') }}
+          </div>
+          <div class="w-34 h-1 mx-20" style="transform: rotate(90deg);background:#EAEBEE"></div>
+          <div :class="{ 'active': !isBuy }" @click="isBuy = false">{{ $t('我要卖') }}
+          </div>
+        </div>
+        <div class="flex mt-40 currency text-center">
+          <div v-for="(item, index) in currency" :key="index" :class="{ 'active': activeCurrency === item.title }"
+            @click="changeTab(item)">
+            <p>{{ item.title }}</p>
+            <p>{{ item.label }}</p>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="w-full flex-1 px-32 pt-36 box-border mainBackground">
+      <div class="px-32 py-40 c2cTabBackground item" v-show="isBuy">
+        <div v-show="order_type === 'Amount'">
+          <div class="mb-18 textColor1">{{ $t('购买金额') }}</div>
+          <div class="w-full relative box-border rounded-xl inputBackground1 input">
+            <span class="font-32 absolute left-22 text font-700 c2cColor">{{ currencySymbol }}</span>
+            <input class="w-full font-36 h-110 rounded-xl border-none box-border pl-94 inputBackground1 c2cColor"
+              type="number" :placeholder="$t('最小金额') + 100" v-model="buyAmount">
+          </div>
+          <div class="flex justify-between mt-28 font-24">
+            <div class="text-grey">{{ $t('参考单价') }}&nbsp;{{ currencySymbol }}{{ referPrice }} </div>
+            <div class="flex items-center text-blue" @click="changeOrderType('Num')">
+              <span class="mr-11">{{ $t('按数量购买') }}</span>
+              <img class="w-24 h-24" src="@/assets/image/c2c/Group241.png" alt="">
+            </div>
+          </div>
+        </div>
+        <div v-show="order_type === 'Num'">
+          <div class="flex justify-between mb-18">
+            <span class="textColor1">{{ $t('购买数量') }}</span>
+          </div>
+          <div class="w-full relative box-border rounded-xl inputBackground1 input">
+            <input class="w-full font-36 h-110 rounded-xl border-none box-border pl-38 inputBackground1 c2cColor"
+              type="number" :placeholder="$t('请输入数量')" v-model="buyNum">
+            <span class="font-28 absolute right-19 text" style="color: #1A6EBD;">
+              <span class="mr-22 c2cColor">{{ activeCurrency }}</span>
+            </span>
+          </div>
+          <div class="flex justify-between mt-28 font-24">
+            <div class="text-grey">{{ $t('参考单价') }}&nbsp;{{ currencySymbol }}{{ referPrice }}</div>
+            <div class="flex items-center text-blue" @click="changeOrderType('Amount')">
+              <span class="mr-11">{{ $t('按金额购买') }}</span>
+              <img class="w-24 h-24" src="@/assets/image/c2c/Group241.png" alt="">
+            </div>
+          </div>
+        </div>
+        <div class="mt-76">
+          <van-button class="w-full h-80 font-32 rounded-xl" type="primary" color="#2EBD85" @click="handleClick">{{
+            $t('0手续费购买') }}
+          </van-button>
+        </div>
+      </div>
+      <div class="px-32 py-40 c2cTabBackground item" v-show="!isBuy">
+        <div v-show="order_type === 'Num'">
+          <div class="flex justify-between mb-18">
+            <span class="textColor1">{{ $t('出售数量') }}</span>
+            <span class="font-24 text-blue" style="text-decoration: underline" @click="isBuy = !isBuy">{{
+              $t('划转') }}</span>
+          </div>
+          <div class="w-full relative box-border rounded-xl inputBackground1 input">
+            <input class="w-full font-36 h-110 rounded-xl border-none box-border pl-38 inputBackground1 c2cColor"
+              type="number" :placeholder="$t('请输入数量')" v-model="sellNum">
+            <span class="font-28 absolute right-19 text" style="color: #1A6EBD;">
+              <span class="mr-22 c2cColor">{{ activeCurrency }}</span>
+            </span>
+          </div>
+          <div class="flex justify-between mt-28 font-24">
+            <div class="text-grey">{{ $t('参考单价') }}&nbsp;{{ currencySymbol }}{{ referPrice }}</div>
+            <div class="flex items-center text-blue" @click="order_type = 'Amount'">
+              <span class="mr-11">{{ $t('按金额出售') }}</span>
+              <img class="w-24 h-24" src="@/assets/image/c2c/Group241.png" alt="">
+            </div>
+          </div>
+        </div>
+        <div v-show="order_type === 'Amount'">
+          <div class="flex justify-between mb-18" style="color: #595C61">
+            <span class="textColor1">{{ $t('出售金额') }}</span>
+            <span class="font-24 text-blue" style="text-decoration: underline"
+              @click="$router.push('/my/transfer')">{{ $t('划转') }}</span>
+          </div>
+          <div class="w-full relative box-border rounded-xl inputBackground1 input">
+            <div class="w-full relative box-border rounded-xl inputBackground1 input">
+              <span class="font-32 absolute left-22 text font-700 c2cColor">{{ currencySymbol }}</span>
+              <input class="w-full font-36 h-110 rounded-xl border-none box-border pl-94 inputBackground1 c2cColor"
+                type="number" :placeholder="$t('最小金额') + 100" v-model="sellAmount">
+            </div>
+          </div>
+          <div class="flex justify-between mt-28 font-24">
+            <div class="text-grey">{{ $t('参考单价') }}&nbsp;{{ currencySymbol }}{{ referPrice }}</div>
+            <div class="flex items-center text-blue" @click="order_type = 'Num'">
+              <span class="mr-11">{{ $t('按数量出售') }}</span>
+              <img class="w-24 h-24" src="@/assets/image/c2c/Group241.png" alt="">
+            </div>
+          </div>
+        </div>
+        <div class="mt-76">
+          <van-button class="w-full h-80 font-32 rounded-xl" type="primary" color="#E35461" @click="handleClick">{{
+            $t('0手续费出售') }}
+          </van-button>
+        </div>
+      </div>
+    </div>
+
+    <van-popup v-model:show="enterTrade" position="bottom">
+      <enter-trade v-if="paymentMethod.length" :type="fullType" :payment-method="paymentMethod" :info="info"
+        :session-token="session_token" :symbol="activeCurrency" :exchangeCurrency="exchangeCurrency"
+        @updataToken="updataToken" @close="enterTrade = false" />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+import otcApi from "@/service/otc";
+
+import {
+  Icon,
+  Popup,
+  Popover,
+  Button,
+  showToast,
+} from "vant";
+
+import EnterTrade from "./EnterTrade.vue";
+import { mapGetters } from "vuex";
+export default {
+  name: "index",
+  data() {
+    return {
+      referPrice: '--',
+      paymentMethod: [],
+      order_type: 'Amount',
+      enterTrade: false,
+      isBuy: true, // 模式
+      activeCurrency: 'USDT',
+      show: false,
+      showPopover: false,
+      currency: [
+        {
+          title: 'USDT',
+          label: this.$t('计价币种')
+        },
+        {
+          title: 'BTC',
+          label: this.$t('最知名币种')
+        },
+        {
+          title: 'ETH',
+          label: this.$t('以太坊')
+        }
+      ],
+      actions: [
+        {
+          text: this.$t('收款方式'),
+          icon: new URL('@/assets/image/otc/buy/collection_icon.png', import.meta.url).href,
+          path: '/paymentMethod',
+        },
+        // {
+        //   text: this.$t('c2c帮助中心'),
+        //   icon: new URL('@/assets/image/otc/buy/help_icon.png', import.meta.url).href,
+        //   path: '/c2cHelpCenter',
+        // },
+        // {
+        //   text: 'c2c用户中心',
+        //   icon: new URL('@/assets/image/otc/buy/user_icon.png', import.meta.url).href,
+        //   path: '/c2c/c2cUser',
+        // },
+        // {
+        //   text: this.$t('接单模式'),
+        //   icon: new URL('@/assets/image/otc/buy/order_icon.png', import.meta.url).href,
+        // },
+      ],
+      session_token: '',
+
+      buyAmount: '',
+      buyNum: '',
+      sellAmount: '',
+      sellNum: '',
+      info: {},
+      all_price: {},
+      isPay: false
+    }
+  },
+  created() {
+    otcApi.getSessionToken({
+      currency: this.exchangeCurrency
+    }).then(res => {
+      this.session_token = res.data.session_token;
+      console.log(this.activeCurrency.toLowerCase())
+      this.all_price = res.data.all_price
+      this.referPrice = this.all_price[this.activeCurrency.toLowerCase()]
+    })
+
+    otcApi.ctcPaymentMethodList({ language: this.$i18n.locale }).then(res => {
+      if (res.data.length) {
+        this.isPay = true
+      } else {
+        this.isPay = false
+      }
+    })
+
+  },
+  methods: {
+    changeOrderType(order_type) {
+      this.buyAmount = ''
+      this.buyNum = ''
+      this.sellAmount = ''
+      this.sellNum = ''
+      this.order_type = order_type
+    },
+    getPriceList(type) {
+      //获取承兑商支付方式列表
+      otcApi.c2cgetBestPrice({
+        order_type: this.order_type == 'Amount' ? 'by_amount' : 'by_num',
+        amount: this.isBuy ? this.buyAmount : this.sellAmount,
+        coin_amount: this.isBuy ? this.buyNum : this.sellNum,
+        direction: this.isBuy ? 'buy' : 'sell',
+        currency: this.exchangeCurrency,
+        symbol: this.activeCurrency.toLowerCase(),
+        language: this.$i18n.locale
+      }).then(data => {
+        this.paymentMethod = data
+        if (this.paymentMethod.length == 0) {
+          showToast(this.$t('无匹配的承兑商'))
+          return
+        } else {
+          this.enterTrade = true;
+          this.info = {
+            type: this.order_type,
+            num: this[type + this.order_type]
+          }
+        }
+      })
+    },
+    changeTab(item) {
+      this.buyAmount = ''
+      this.buyNum = ''
+      this.sellAmount = ''
+      this.sellNum = ''
+      this.activeCurrency = item.title
+      this.referPrice = this.all_price[this.activeCurrency.toLowerCase()]
+    },
+    updataToken() {
+      otcApi.getSessionToken({
+        currency: this.exchangeCurrency
+      }).then(res => {
+        this.session_token = res.data.session_token;
+      })
+    },
+    showPopup() {
+      this.show = true
+    },
+    onSelect(action) {
+
+      if (action.text == this.$t('接单模式')) {
+        this.showJie = true
+        return
+      }
+
+      this.$router.push({
+        path: action.path,
+      })
+    },
+    handleClick() {
+      const type = this.isBuy ? 'buy' : 'sell';
+      if (!this[type + this.order_type]) {
+        const text = this.order_type === 'Amount' ? this.$t('金额') : this.$t('数量')
+        showToast(this.$t('请输入') + text)
+      } else {
+        if (this.isPay) {
+          this.getPriceList(type)
+        } else {
+          showToast(this.$t('请添加收款方式'))
+          setTimeout(() => {
+            this.$router.push('/paymentMethod/list')
+          }, 500);
+        }
+      }
+    }
+  },
+  computed: {
+    ...mapGetters("c2c", ["exchangeCurrency", 'currencySymbol']),
+    fullType() {
+      return this.isBuy ? 'buy' : 'sell'
+    }
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Popup.name]: Popup,
+    [Popover.name]: Popover,
+    [Button.name]: Button,
+    EnterTrade,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.box-radius {
+  border-radius: 40px;
+}
+
+.van-icon{
+    font-size: 2rem;
+}
+.type {
+  color: #B8BCC5;
+
+  .active {
+    // color: red;
+    color: $c2c_color;
+  }
+}
+
+.currency {
+  .active {
+    p {
+      color: #1A6EBD !important;
+    }
+  }
+
+  &>div {
+    padding: 10px 50px;
+    margin-right: 30px;
+    border-radius: 12px;
+    // background-color: #888;
+    background: $tab_background;
+
+
+    &:last-child {
+      margin: 0;
+    }
+  }
+
+  p:first-child {
+    margin-bottom: 8px;
+    font-weight: 500;
+    color: $text_color;
+  }
+
+  p:last-child {
+    color: $text_color;
+  }
+}
+
+.item {
+  box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.1);
+  border-radius: 10px;
+}
+
+.input {
+  span {
+    top: 50%;
+    transform: translateY(-50%);
+  }
+}
+</style>
diff --git a/src/views/C2C/selectLegalCurrency/index.vue b/src/views/C2C/selectLegalCurrency/index.vue
new file mode 100644
index 0000000..7cf4ee2
--- /dev/null
+++ b/src/views/C2C/selectLegalCurrency/index.vue
@@ -0,0 +1,321 @@
+<template>
+  <div style="display: flex;
+        flex-direction: column;
+        align-items: center;
+        width: 100%;
+        height: 100%;
+      ">
+    <div class="top w-full">
+      <order-nav class="mb-20" :title="$t('选择法币')" />
+      <div class="h-72 pl-32 pr-32 pb-24" @click="showSearch = true">
+        <buy-input :isReadonly="true" :placeholder="$t('请输入法币')" />
+      </div>
+    </div>
+    <!-- <div style="width: 100%">
+      <p class="jiao">
+        <span>{{$t('您可交易的法币')}}</span>
+        <img class="tan" src="@/assets/image/tan.png" alt="" />
+      </p>
+
+      <div class="ke">
+        <p class="ke-li">
+          <span class="yang">¥</span>
+          <span>CNY</span>
+        </p>
+      </div>
+    </div> -->
+    <div style="width: 100%">
+      <p class="jiao line_color">{{ $t('全部法币') }}</p>
+    </div>
+    <div style="width: 100%; flex: 1; overflow: auto">
+      <van-index-bar :sticky-offset-top="100" :sticky="false">
+        <div v-for="(item, index) in items" :key="index">
+          <van-index-anchor class="pt-10 pb-10" :index="item.title" />
+          <div class="payment_method_cell flex items-center ml-50 pt-8 pb-8" v-for="(label, labelIndex) in item.labels"
+            :key="labelIndex" @click="onSelectCurrency(label)">
+            <span class="first">{{ label.fLabel }}</span>
+            <van-cell :title="label.label" />
+          </div>
+        </div>
+      </van-index-bar>
+    </div>
+
+    <div v-show="showSearch" class="fixed-search c2cBackground">
+      <div class="search h-110 pb-24 flex justify-between items-center">
+        <buy-input v-model="searchValue" :placeholder="$t('请输入法币')" @input="inputChange" />
+        <span class="close-q" @click="showSearch = false">{{ $t('取消') }}</span>
+      </div>
+      <div class="search-main main_background">
+        <div v-if="searchValue.length === 0 || searchList.length === 0" class="clear">
+          <p>{{ $t('历史搜索') }}</p>
+          <p>{{ $t('没有历史记录') }}</p>
+        </div>
+        <div v-else class="search-li text_color">
+          <p v-html="filterStr(item.label)" v-for="(item, index) in searchList" :key="index"
+            @click="onSelectCurrency(item)"></p>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { IndexBar, IndexAnchor, Cell } from 'vant'
+import OrderNav from '@/components/order-nav/OrderNav.vue'
+import BuyInput from '../components/BuyInput.vue'
+import { mapActions, mapGetters, mapMutations } from 'vuex'
+
+export default {
+  name: 'AddPaymentMethod',
+  data() {
+    return {
+      showSearch: false,
+      searchValue: '',
+      list: [
+        'A',
+        'B',
+        'C',
+        'D',
+        'E',
+        'F',
+        'G',
+        'H',
+        'I',
+        'J',
+        'K',
+        'L',
+        'M',
+        'N',
+        'O',
+        'P',
+        'Q',
+        'R',
+        'S',
+        'T',
+        'U',
+        'V',
+        'W',
+        'X',
+        'Y',
+        'Z',
+        '#',
+      ],
+      // items: [
+      //   {
+      //     title: 'A',
+      //     labels: [
+      //       { fLabel: 'ARS', label: 'ARS', type: 'EN' }, // type 国外、国内标识
+      //       { fLabel: 'A', label: 'AUD', type: 'EN' },
+      //     ],
+      //   },
+      //   {
+      //     title: 'B',
+      //     labels: [
+      //       { fLabel: 'B', label: 'BOB', type: 'EN' }, // type 国外、国内标识
+      //     ],
+      //   },
+      // ],
+      searchList: [],
+    }
+  },
+  async created() {
+    await this.SET_FIAT_LIST()
+    // console.log(this.fiatList)
+  },
+  computed: {
+    ...mapGetters('c2c', ['fiatList']),
+    items() {
+      return this.fiatList
+    }
+  },
+  methods: {
+    ...mapActions('c2c', ['SET_FIAT_LIST']),
+    ...mapMutations('c2c', ['SET_CURRENCY', 'SET_CURRENCY_SYMBOL']),
+    filterStr(val) {
+      return this.heightLight(val, this.searchValue)
+    },
+    heightLight(str, key) {
+      const reg = new RegExp(key, 'ig')
+      return str.replace(reg, (val) => {
+        return `<span style="color:#1D91FF">${val}</span>`
+      })
+    },
+    inputChange(val) {
+      let arr = []
+      this.items.forEach((item) => {
+        arr = arr.concat(item.labels)
+      })
+      // console.log('arr', arr, val)
+      this.searchList = arr.filter((item) => item.label.indexOf(val.toUpperCase()) !== -1)
+      // console.log('searchList',this.searchList)
+    },
+    onSelectCurrency(item) {
+      console.log('item', item)
+      this.SET_CURRENCY(item.currency)
+      this.SET_CURRENCY_SYMBOL(item.currency_symbol)
+      this.$router.go(-1)
+    }
+  },
+  components: {
+    [IndexBar.name]: IndexBar,
+    [IndexAnchor.name]: IndexAnchor,
+    [Cell.name]: Cell,
+    OrderNav,
+    BuyInput,
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+::v-deep .van-index-bar__sidebar {
+  display: none;
+}
+::v-deep .van-index-anchor {
+  color: $text_color4;
+}
+
+.top {
+  position: relative;
+  top: 0;
+  left: 0;
+}
+
+.payment_method_cell {
+  position: relative;
+
+  &:after {
+    position: absolute;
+    box-sizing: border-box;
+    content: ' ';
+    pointer-events: none;
+    right: 16px;
+    bottom: 0;
+    left: 16px;
+    border-bottom: 1px solid $line_color;
+
+    -webkit-transform: scaleY(0.5);
+    transform: scaleY(0.5);
+  }
+
+  ::v-deep {
+    .van-index-anchor {
+      font-size: 36px;
+      font-weight: 500;
+      color: #868d9a;
+    }
+
+    .van-cell__title {
+      font-size: 32px;
+    }
+
+    .van-cell {
+      padding-left: 8px;
+    }
+
+    .van-index-bar__sidebar {
+      color: #7cbfff;
+
+      span {
+        margin-bottom: 4px;
+        font-size: 26px;
+      }
+    }
+
+    .van-cell {
+      // background: $tab_background;
+      // color: $text_color2;
+    }
+  }
+}
+
+
+
+.jiao {
+  color: #868d9a;
+  font-size: 32px;
+  padding: 40px 0 20px 0;
+  margin-left: 30px;
+
+  text-align: left;
+  display: flex;
+  align-items: center;
+
+  .tan {
+    margin-left: 12px;
+    width: 24px;
+    height: 24px;
+  }
+}
+
+.ke {
+  padding: 30px;
+
+  .ke-li {
+    padding: 30px 70px;
+    font-size: 28px;
+    color: #21262f;
+
+    .yang {
+      margin-right: 38px;
+      color: #868d9a;
+    }
+  }
+}
+
+.first {
+  color: #868d9a;
+  margin-right: 40px;
+  width: 80px;
+  text-align: right;
+}
+
+.fixed-search {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 100000;
+
+  .search {
+    padding: 24px 30px;
+  }
+
+  .search-main {
+    min-height: calc(100% - 72px);
+
+    padding: 0 30px;
+
+    .search-li {
+      padding-left: 70px;
+
+      p {
+        height: 100px;
+        line-height: 100px;
+        border-bottom: 1px solid #484756;
+      }
+    }
+  }
+}
+
+.close-q {
+  display: inline-block;
+  width: 80px;
+  margin-left: 29px;
+  color: #444;
+}
+
+.clear {}
+
+.clear> :first-child {
+  font-size: 26.5px;
+  margin-bottom: 116px;
+  color: $text_color;
+}
+
+.clear> :last-child {
+  text-align: center;
+  color: #868d9a;
+  font-size: 28px;
+}</style>
diff --git a/src/views/C2C/wantBuy.vue b/src/views/C2C/wantBuy.vue
new file mode 100644
index 0000000..11b3aec
--- /dev/null
+++ b/src/views/C2C/wantBuy.vue
@@ -0,0 +1,400 @@
+<template>
+  <div id="wantBuy" class=" fixed left-0 right-0 top-0 bottom-0 wantBuy">
+    <div
+        class="w-full h-122 pl-40 pr-31 box-border flex items-center"
+    >
+      <van-icon name="arrow-left" @click="goback"/>
+      <div class="flex-1 text-right mr-100" @click="showPopup">
+        <span class="font-35 mr-8">{{ $t('自选区') }}</span>
+        <van-icon name="arrow-down" />
+      </div>
+      <van-popup round position="top" class="pt-30" v-model:show="show" :closeable="true">
+        <div class="flex justify-around mt-40 pb-48">
+          <div class="flex flex-col items-center" @click="$router.push({ path: '/wantBuy/quick' })">
+            <img class="w-56 h-56" src="@/assets/image/otc/wantBuyHead/fast.png" alt="" />
+            <span class="font-24 mt-10 h-32 font-500" >{{ $t('快捷区') }}</span>
+          </div>
+          <div class="flex flex-col items-center" @click="show=false">
+            <img class="w-56 h-56" src="@/assets/image/otc/wantBuyHead/optional.png" alt="" />
+            <span class="font-24 mt-10 font-500">{{ $t('自选区') }}</span>
+          </div>
+        </div>
+      </van-popup>
+      <div class="w-232 h-64 px-23 box-border box-radius text-black flex justify-around items-center"
+        style="background: #c2e1ff">
+        <div class="flex items-center" @click="$router.push({ path: '/selectLegalCurrency' })">
+          <span class="mr-15 font-31 font-400">{{ exchangeCurrency }}</span>
+          <img class="w-24 h-20" src="@/assets/image/otc/wantBuyHead/Group.png" alt="" />
+        </div>
+        <template >
+          <span class="mx-28 w-2 h-36">|</span>
+          <van-popover get-container="#quick" v-model="showPopover" :actions="actions" @select="onSelect" placement="bottom-end"
+            theme="dark" :offset="[20, 20]">
+            <template #reference>
+              <img @click="showPopover = !showPopover" class="relative bottom-4 w-24 h-6 list-img"
+                src="@/assets/image/otc/wantBuyHead/Group2.png" alt="" />
+            </template>
+          </van-popover>
+        </template>
+      </div>
+    </div>
+    <buy :loading="loading" :symbol="['USDT']" @change="onChange" @change-direction="handleDirection"
+      @confirm="selectConfirm">
+      <van-pull-refresh :pulling-text="$t('下拉即可刷新')" :loosing-text="$t('释放即可刷新')" :loading-text="$t('加载中')"
+        v-model="isLoading" @refresh="onRefresh">
+        <template v-if="list.length > 0">
+          <van-list v-model:loading="loading" :immediate-check="false" :finished="finished" :finished-text="$t('没有更多了')"
+            @load="onLoad">
+            <div class="flex flex-col ml-32  mr-32" v-for="(item, index) in list" :key="'buy' + index">
+              <div class="flex">
+                <div class="flex-1 textColor">
+                  <div class="flex items-center">
+                    <img class="w-32 h-32 mr-10" @click="handleGoUserHome(item)" :src="item.head_img" alt="">
+                    <div class="font-400 font-26 mr-10">{{ item.nick_name }}</div>
+                    <img class="w-22 h-22" src="@/assets/image/otc/buy/star.png" alt="">
+                  </div>
+                  <div class="font-22 text-grey mt-31">{{ $t('单价') }}</div>
+                  <div class="mt-10">
+                    <span class="font-22 mr-10">{{ item.currency }}</span>
+                    <span class="font-40">{{ (item.symbol_value / 1).toFixed(2) }}</span>
+                  </div>
+                  <div class="mt-26">
+                    <span class="font-22 text-grey mr-10">{{ $t('数量') }}</span>
+                    <span>{{ item.coin_amount && (item.coin_amount / 1).toFixed(item.symbol.toUpperCase() === 'USDT' ? 2 : 4) }}</span>
+                  </div>
+                  <div class="mt-13">
+                    <span class="font-22 text-grey mr-10">{{ $t('限额') }}</span>
+                    <span class="font-22 ">{{ currencySymbol }} {{ (item.investment_min / 1).toFixed(2) }} - {{ currencySymbol }} {{ (item.investment_max / 1).toFixed(2) }}</span>
+                  </div>
+                  <div class="flex mt-36">
+                    <section v-for="(_item, _index) in (item.pay_type_name.split(','))" :key="_index" class="flex">
+                      <div class="w-5 h-20 col  mr-9">|</div>
+                      <div class="mr-19">{{ _item }}</div>
+                    </section>
+                    <!-- <div class="w-5 h-20 cl mr-9">|</div>
+                    <div>币交易</div> -->
+                  </div>
+                </div>
+                <div class="flex flex-col justify-between items-end">
+                  <div class="text-grey flex font-24 ">
+                    <div class="flex items-center">
+                      <span>{{ $t('成交量') }} {{ item.thirty_days_order }}</span>
+                      <span class="w-1 h-16 mx-8" style="background: #EAEBEE"></span>
+                      <span>{{ item.thirty_days_order_ratio }}%</span>
+                    </div>
+                  </div>
+                  <div class="w-250 h-54 font-24 greyBg lh-54 text-center textColor px-10"
+                    v-if="item.direction === 'sell'&&!methodAvaiable(item.pay_type_name, payMethods)">{{ $t('不满足广告方要求') }}</div>
+                  <div v-if="item.direction === 'sell'" @click="trade('sell', item)"
+                    class="w-160 h-58 font-29 rounded-lg bg-red text-center lh-58">{{ $t('出售') }}
+                  </div>
+                  <div v-if="item.direction === 'buy'" @click="trade('buy', item)"
+                    class="w-160 h-58 font-29 rounded-lg bg-green text-center lh-58">{{ $t('购买') }}
+                  </div>
+                </div>
+              </div>
+              <div class="flex justify-center mb-12">
+                <div class="w-full h-8 diviLine mt-40 mb-45 box-border"></div>
+              </div>
+            </div>
+          </van-list>
+        </template>
+        <template v-if="list.length === 0 && loading === false && isLoading === false">
+          <div>
+            <van-empty class="custom-image" :image="emptyImg"
+              :description="$t('暂无广告')">
+            </van-empty>
+          </div>
+
+        </template>
+      </van-pull-refresh>
+    </buy>
+    <van-dialog v-model="showJie" :showConfirmButton="false">
+      <div class="dia-main">
+        <p class="dia-change">{{$t('切换到接单模式')}}</p>
+        <p class="dia-text">{{$t('接单模式适用于有发布广告交易需求的用户。')}}</p>
+        <div class="dia-btn">
+          <div @click="showJie = false">{{$t('取消')}}</div>
+          <div style="background: #1d91ff; color: #ffffff" @click="linkToC2C">
+            {{$t('确认')}}
+          </div>
+        </div>
+      </div>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  SET_ORDER_MODE
+} from "@/store/const.store";
+import { Icon, Popup, Popover, Dialog, List, PullRefresh, Empty, showToast  } from 'vant'
+import listLoadMixins from '@/utils/list-load-mixins'
+import Buy from './components/buy.vue'
+import otcApi from "@/service/otc.js";
+import { mapActions, mapGetters, mapMutations } from 'vuex'
+// import payment from "@/store/modules/payment";
+
+export default {
+  // beforeRouteEnter(to, from, next) {
+  //   next(vm => {
+  //     // 回到原来的位置
+
+  //     // const position = JSON.parse(window.sessionStorage.getItem('position'))
+  //     // document.querySelector('.roll-section').scrollTop = position
+  //     setTimeout(() => {
+  //       // console.log( document.querySelector('.roll-section') )
+  //     })
+  //   })
+  // },
+  beforeRouteLeave(to, from, next) {
+    // 保存离开页面时的列表的位置
+    const position = document.querySelector('.roll-section').scrollTop
+    window.sessionStorage.setItem('position', JSON.stringify(position))
+    next()
+  },
+  props: {
+    showDot: {
+      type: Boolean,
+      default: true
+    }
+  },
+  name: 'wantBuy',
+  mixins: [listLoadMixins],
+  components: {
+    [Icon.name]: Icon,
+    [Popup.name]: Popup,
+    [Popover.name]: Popover,
+    [Dialog.name]: Dialog,
+    [List.name]: List,
+    [Empty.name]: Empty,
+    [PullRefresh.name]: PullRefresh,
+    Buy,
+  },
+  computed: {
+    ...mapGetters('c2c', ['symbolList', 'exchangeCurrency', 'symbol','currencySymbol']),
+    ...mapGetters('home', ['currency'])
+  },
+  async created() {
+    console.log('created')
+    await this.SET_SYMBOL_LIST()
+    await this.SET_PAY_METHODS({ language: this.$i18n.locale })
+    if (!this.exchangeCurrency) {
+      console.log(this.currency.currency);
+      this.SET_CURRENCY(this.currency.currency)
+    }
+
+    if (!this.currencySymbol) {
+      this.SET_CURRENCY_SYMBOL(this.currency.currency_symbol)
+    }
+
+    otcApi.ctcPaymentMethodList({ language: this.$i18n.locale }).then(res => {
+      res.data.map(item => {
+        this.payMethods.push(item.methodName)
+      })
+    })
+    this.params = {
+      page_no: this.page_no, // 页码
+      direction: this.$store.state.c2c.direction, // 买 or 卖
+      currency: this.exchangeCurrency, // 法币
+      symbol: this.symbol, // 配置的加密货币
+      amount: '', // 兑换金额
+      method_type: '', // 支付方式
+      language: this.$i18n.locale
+    }
+    this.get()
+  },
+  data() {
+    return {
+      showJie: false,
+      show: false,
+      showPopover: false,
+      page_no: 1,
+      list: [],
+      direction: 'buy', //
+      params: {},
+      loading: false,
+      payMethods: [],
+      emptyImg:new URL('@/assets/image/otc/nodatas.png', import.meta.url).href,
+      actions: [
+        {
+          text: this.$t('收款方式'),
+          icon: new URL('@/assets/image/otc/buy/collection_icon.png', import.meta.url).href,
+          path: '/paymentMethod',
+        },
+        // {
+        //   text: this.$t('c2c帮助中心'),
+        //   icon: new URL('@/assets/image/otc/buy/help_icon.png', import.meta.url).href,
+        //   path: '/c2cHelpCenter',
+        // },
+        // {
+        //   text: 'c2c用户中心',
+        //   icon: new URL('@/assets/image/otc/buy/user_icon.png', import.meta.url).href,
+        //   path: '/c2c/c2cUser',
+        // },
+        // {
+        //   text: this.$t('接单模式'),
+        //   icon: new URL('@/assets/image/otc/buy/order_icon.png', import.meta.url).href,
+        // },
+      ],
+    }
+  },
+  methods: {
+    ...mapActions('c2c', ['SET_SYMBOL_LIST', 'SET_PAY_METHODS']),
+    ...mapMutations('c2c', ['SET_CURRENCY','SET_CURRENCY_SYMBOL']),
+    onChange(params) { // 买卖变化
+      this.params = Object.assign(this.params, params)
+      this.list = []
+      this.get()
+    },
+    methodAvaiable(payStr, arr) {
+      console.log("methodAvaiable",payStr,'-', arr)
+      let exist = false
+      for (let i = 0; i < arr.length; i++) {
+        if (payStr.indexOf(arr[i]) > -1) {
+          exist = true
+          break
+        }
+      }
+      return exist
+    },
+    get() {
+      if(this.params.method_type == 99) this.params.method_type = ''
+      otcApi.ctcAdvertList(this.params).then(res => {
+        this.handleData(res.data)
+      })
+    },
+    linkToC2C() {
+      // if (this.$store.state.user.userInfo.c2c_user_type === 0) { // 普通用户
+      //   showToast('你不是平台认证商家')
+      //   return
+      // }
+      this.$router.push('/c2c/receivingBuy')
+      this.$store.commit(`c2c/${SET_ORDER_MODE}`, {
+        state: true,
+      })
+    },
+    showPopup() {
+      this.show = true
+    },
+    onSelect(action) {
+      if (action.text === '接单模式') {
+        this.showJie = true
+        return
+      }
+      this.$router.push({
+        path: action.path,
+      })
+    },
+    handleDirection(direction) {
+      console.log(direction);
+      this.direction = direction;
+      this.params.direction = this.direction;
+      // 发送请求
+      this.get()
+    },
+    handleGoUserHome(item) {
+      console.log('去买卖用户首页', item)
+      this.$router.push({
+        path: '/advertiserDetail',
+        query: {
+          uid: item.c2c_user_id
+        }
+      })
+    },
+    trade(type, data) {
+      console.log('trade', type, data);
+        
+      // 支付方式是否满足
+      if (type=='sell'&&!this.methodAvaiable(data.pay_type_name, this.payMethods)) {
+        console.log(data.pay_type_name)
+        console.log(this.payMethods)
+          showToast(this.$t('请添加相应的收款方式'))
+          setTimeout(() => {
+            this.$router.push('/paymentMethod/list')
+          }, 500);
+         //Notify({ type: 'danger', message: '不满足广告方要求' })
+        return
+      }
+      //
+      if (data && data.isRemoved) {
+        this.showRemoved = true;
+        return;
+      }
+      this.$store.commit('c2c/SET_ADV_ID', data.id) // 保存广告id
+      this.$router.push({
+        name: 'c2cTrade'
+        // query: {
+        //   type,
+        //   id: data.id
+        // }
+      })
+    },
+    selectConfirm(params) {
+      this.params = Object.assign(this.params,params)
+      this.list = []
+      this.get();
+    },
+    goback(){
+      let frompath = this.$route.query.frompath
+      if (frompath){
+        this.$router.push(frompath)
+      }else{
+        this.$router.push('/')
+      }
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.van-icon{
+    font-size: 2rem;
+}
+
+.wantBuy {
+  width: 100%;
+  box-sizing: border-box;
+}
+
+.dia-main {
+  padding: 50px;
+  color: #000;
+
+  .dia-change {
+    text-align: center;
+    margin-bottom: 32px;
+    font-size: 35px;
+    font-weight: bold;
+  }
+
+  .dia-text {
+    margin-bottom: 40px;
+  }
+
+  .dia-btn {
+    display: flex;
+    justify-content: space-between;
+
+    div {
+      width: 240px;
+      height: 80px;
+      text-align: center;
+      line-height: 80px;
+      background: #eaebee;
+      color: #21262f;
+      font-size: 32px;
+      border-radius: 8px;
+    }
+  }
+}
+
+.box-radius {
+  border-radius: 40px;
+}
+
+.list-img {
+  top: -6px;
+}
+</style>
diff --git a/src/views/C2C/withdraw/withdrawDetail.vue b/src/views/C2C/withdraw/withdrawDetail.vue
new file mode 100644
index 0000000..090774f
--- /dev/null
+++ b/src/views/C2C/withdraw/withdrawDetail.vue
@@ -0,0 +1,31 @@
+<template>
+    <div class="pl-30 pr-30 withdrawDetail">
+        <detail type="提现" />
+    </div>
+</template>
+
+<script>
+import Detail from '@/page/recharge/rechargeDetail.vue'
+export default {
+    components: {
+        Detail
+    },
+    data() {
+        return {
+
+        }
+    },
+    created() {
+
+    },
+    methods: {
+
+    }
+}
+</script>
+<style lang="scss" scoped>
+.withdrawDetail {
+    width: 100%;
+    box-sizing: border-box;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/C2C/withdraw/withdrawPage.vue b/src/views/C2C/withdraw/withdrawPage.vue
new file mode 100644
index 0000000..7b241e7
--- /dev/null
+++ b/src/views/C2C/withdraw/withdrawPage.vue
@@ -0,0 +1,442 @@
+<template>
+    <div class="withdrawl-page">
+        <assets-head title="">
+            <img src="../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
+                @click="goRouter('/assetsCenter/rechargeWithdrawRecord?back=1')" />
+        </assets-head>
+        <div class="px-32 pb-48">
+            <!--<h1 class="font-52 pt-40 textColor">{{ $t('提币') }} USDT</h1>-->
+            <h1 class="font-52 pt-40 textColor">{{ $t('提币 ') + value }} </h1>
+            <!--<p class="text-grey font-30 mt-26">{{ $t('提币 USDT 到数字币地址') }}</p>-->
+            <p class="text-grey font-30 mt-26">{{ $t('提币 ') + value + $t(' 到数字币地址') }}</p>
+            <div @click="showSymbol = true"
+                class="flex border-grey items-center items-center justify-between rounded-lg mt-42 inputBackground textColor">
+                <input v-model="value" class="flex-1 h-100 border-none px-16 inputBackground textColor" />
+                <p class="flex items-center">
+                    <span>{{ $t('选择币种') }}</span>
+                    <img src="@/assets/image/icon-left_arrow.png" alt="logo" class="w-20 h-33 ml-30 mr-40"
+                        style="transform: rotate(-90deg)" />
+                </p>
+            </div>
+            <p class="font-35 mt-44 textColor">{{ $t('区块链网络') }}</p>
+            <ul class="flex mt-22  flex-wrap">
+                <li class="w-210 h-96 mb-20 mr-40 rounded rounded-lg border border-solid flex justify-center items-center textColor"
+                    :class="blockchainIndex == index ? 'active' : ''" v-for="(item, index) in blockList" :key="item.id"
+                    @click="changeBlockchain(item, index)">{{ item.blockchain_name }}</li>
+            </ul>
+            <p class="font-35 mt-22 textColor">{{ $t('地址') }}</p>
+            <div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
+                <input :placeholder="$t('长按粘贴')" class="h-full flex-1 border-none bg-none px-16 textColor"
+                    v-model="address" />
+                <div class="flex items-center">
+                    <span class="colorMain" @click="pastCont">{{ $t('粘贴') }}</span>
+                    <div>
+                        <img @click="clickCode()" src="@/assets/image/public/scan.png" alt="logo"
+                            class="w-65 h-65 ml-20 mr-30" />
+                    </div>
+                </div>
+            </div>
+            <p class="font-35 mt-44 textColor">{{ $t('数量') }}</p>
+            <div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
+                <input :placeholder="$t('请输入提币数量')" maxlength="10"
+                    class="h-full flex-1 border-none bg-none px-16 font-22 textColor" type="number" v-model="amount"
+                    @input="changeInput" />
+                <p class="flex items-center">
+                    <!--<span class="text-grey">USDT</span>-->
+                    <span class="text-grey">{{ value }}</span>
+                    <span class="colorMain ml-20 mr-30" @click="allBtn">{{ $t('全部') }}</span>
+                </p>
+            </div>
+            <p class="flex justify-between text-grey mt-22">
+                <span>{{ $t('可用') }}</span>
+                <!--<span>{{ usdtBalance }} USDT</span>-->
+                <span>{{ getwei(usdtBalance * 1, numLenth) }} {{ value }}</span>
+            </p>
+            <p class="text-grey mt-64">{{ $t('可到账数量') }}</p>
+            <div class="font-40 mt-20 fon-bold ">
+                <span class="font-40 font-700 textColor"> {{ volume_last || '0.00' }}</span>
+                <!--<span class="font-32 ml-5 text-grey">USDT</span>-->
+                <span class="font-32 ml-5 text-grey">{{ value }}</span>
+            </div>
+            <p class="text-grey mt-22">{{ $t('提现费用') }}:{{ fee || '0.00' }} {{ value }}</p>
+            <p class="text-black mt-46 textColor">{{ $t('提币说明') }}:
+            </p>
+            <div class="text-grey mt-10" v-html="tip"></div>
+            <van-button class="w-768 h-100 rounded flex justify-center items-center mt-56  text-white btnMain border-none"
+                @click="showDetail">
+                {{ $t('提现') }}</van-button>
+
+        </div>
+        <van-popup v-model="show" position="bottom">
+            <div class="pop-box relative">
+                <img src="@/assets/image/icon-close.png" class="w-38 h-38 absolute right-20 top-20" @click="show = false" />
+                <p class="font-38 text-center pt-60 textColor">{{ $t('确认订单') }}</p>
+                <p class="font-35 mt-49 text-grey text-center">{{ $t('实际到账') }}</p>
+                <p class="font-50 mt-23 text-center textColor">{{ volume_last }} <span class="text-grey font-35">
+                        {{ value }}</span></p>
+                <ul class="border-b-color px-32 pb-34">
+                    <li class="flex justify-between font-32 mt-25 items-center">
+                        <span class="textColor">{{ $t('提币地址') }}</span>
+                        <span class="text-grey font-26">{{ address }}</span>
+                    </li>
+                    <li class="flex justify-between font-32 mt-25">
+                        <span class="textColor">{{ $t('主网络') }}</span>
+                        <span class="text-grey">{{ blockName }}</span>
+                    </li>
+                    <li class="flex justify-between font-32 mt-25">
+                        <span class="textColor">{{ $t('提现来源账户') }}</span>
+                        <span class="text-grey">{{ $t('钱包账户') }}</span>
+                    </li>
+                </ul>
+                <ul class="px-32 mt-32">
+                    <li class="flex justify-between font-32 mt-25">
+                        <span class="textColor">{{ $t('币种') }}</span>
+                        <span class="text-grey">{{ value }}</span>
+                    </li>
+                    <li class="flex justify-between font-32 mt-25">
+                        <span class="textColor">{{ $t('金额') }}</span>
+                        <span class="text-grey">{{ amount }}&nbsp;{{ value }}</span>
+                    </li>
+                    <li class="flex justify-between font-32 mt-25">
+                        <span class="textColor">{{ $t('网络手续费') }}</span>
+                        <span class="text-grey">{{ fee }}&nbsp;{{ value }}</span>
+                    </li>
+                </ul>
+                <p class="px-32 mt-49 font-30 textColor">
+                    1. {{ $t('请确保您输入了正确的提币地址并且您选择的转账网络与地址相匹配') }}
+                </p>
+                <p class="px-32 mt-40 font-30 textColor">2. {{ $t('提币订单创建后不可取消。') }}</p>
+                <p class="w-768 h-100 rounded flex justify-center items-center mt-56 mb-48 btnMain text-white ml-32"
+                    @click="onConfirm">
+                    {{ $t('确定') }}</p>
+            </div>
+        </van-popup>
+        <!-- 币种 -->
+        <van-action-sheet v-model="showSymbol" :actions="actions.filter(item => item.name !== value)" @select="onSelect" />
+        <bar-scan :scancode="scancode" v-if="scancode" @ok="getResult"></bar-scan>
+    </div>
+</template>
+
+<script>
+import { Popup, ActionSheet, Toast, Dialog } from "vant"
+import Axios from "@/API/recharge.js"
+import AxiosWithdraw from "@/API/withdraw.js"
+import assetsHead from "@/components/assets-head";
+import BarScan from '@/components/scan/scan.vue';
+import { _getAllWallet } from "@/API/fund.api";
+import AxiosUser from "@/API/userCenter";
+import { mapGetters } from "vuex";
+export default {
+    name: "withdrawPage",
+    components: {
+        assetsHead,
+        [Popup.name]: Popup,
+        [ActionSheet.name]: ActionSheet,
+        BarScan
+    },
+    data() {
+        return {
+            tip: '',
+            value: 'USDT', //选中的币种
+            show: false,
+            showSymbol: false,
+            actions: [{ name: 'USDT' }, { name: 'BTC' }, { name: 'ETH' }],
+            blockList: [],
+            blockchainIndex: "",
+            usdtBalance: "", //余额
+            amount: "",//提现金额
+            fee: "", //手续费
+            volume_last: "",//到账金额
+            blockName: "",//当前链名称
+            address: "",// 二维码扫描结果
+            scancode: false,//控制是否使用扫一扫功能
+            withdraw_fee_type: '',
+            percent: 0,
+            numLenth: 3
+        }
+    },
+    computed: {
+        ...mapGetters('user', ['userInfo'])
+    },
+    created() {
+        AxiosUser._getIsGoogleAuth({ code: 'google_auth_secret_open' }).then(res => {
+            let isGetdata
+            if (res.data.google_auth_secret_open === '1') {
+                // if (this.userInfo.googleverif) {
+                    isGetdata = true
+                // } else {
+                //     Dialog({
+                //         message: this.$t('未绑定谷歌验证器,暂时无法提现,点击前往绑定'),
+                //         theme: 'round-button',
+                //         confirmButtonColor: '#2C78F8',
+                //         confirmButtonText: this.$t('确定'),
+                //     }).then(() => {
+                //         this.$router.replace('/bindVerify?type=3')
+                //         // on close
+                //     });
+                //     isGetdata = false
+                // }
+            } else {
+                isGetdata = true
+            }
+            if (isGetdata) {
+                this.getBlock(this.value);
+                this.getAvailable(this.actions[0].name);
+
+
+                Axios.getRechargeTips({
+                    language: this.$i18n.locale,
+                    token: this.$store.state.user.userInfo.token,
+                    content_code: '003',
+                }).then(res => {
+                    this.tip = res.data.content
+                }).catch(err => {
+                    if (err.code === 'ECONNABORTED') { this.$toast(this.$t('网络超时!')); }
+                    else if (err.msg !== undefined) { this.$toast(this.$t(err.msg)); }
+                })
+                AxiosWithdraw.WithdrawFee({
+                    amount: 1,
+                    channel: this.value + '_' + this.blockName
+                }).then((res) => {
+                    this.withdraw_fee_type = res.data.withdraw_fee_type
+                    if (this.withdraw_fee_type == 'rate') {
+                        this.percent = res.data.fee
+                    } else {
+                        this.fee = res.data.fee;
+                    }
+                });
+            }
+        })
+    },
+    methods: {
+        getwei(value, numLenth) {
+            console.log(numLenth)
+            let str = value.toString();
+            let strIndex = str.indexOf('.');
+            if (strIndex === -1) return str;
+            str = str.substring(0, strIndex + numLenth);
+            console.log(str, numLenth)
+            return str;
+        },
+        // 打开相机
+        clickCode() {
+            this.scancode = true;
+        },
+        //返回扫描结果并关闭摄像头
+        getResult(result) {
+            this.address = result;
+            if (result !== "") {
+                this.scancode = false;
+            }
+        },
+        showDetail() {
+            if (this.address.length > 63 || this.address.length == 0) {
+                Toast(this.$t('提现地址格式错误'))
+                return
+            }
+            if (!this.amount) {
+                Toast(this.$t('请输入正确数量'))
+                return
+            }
+            if (this.amount / 1 > this.usdtBalance / 1) {
+                Toast(this.$t('金额不足'))
+                return
+            }
+            this.show = true;
+        },
+        goRouter(params) {
+            this.$router.push({
+                path: params,
+                query: {
+                    type: '2'
+                }
+            });
+        },
+        // onConfirm() {
+        //     this.$router.push('/withdraw/withdrawSumbit')
+        // },
+        //选中币种
+        onSelect(item) {
+            this.amount = ''
+            this.volume_last = ''
+            this.fee = ''
+            this.showSymbol = false;
+            this.value = item.name;
+            this.withdraw_fee_type = ''
+            this.getBlock(item.name);
+            this.getAvailable(item.name)
+            if (item.name == 'BTC' || item.name == 'ETH') {
+                this.numLenth = 7
+                AxiosWithdraw.WithdrawFee({
+                    amount: 1,
+                    channel: this.value + '_' + this.blockName
+                }).then((res) => {
+                    this.withdraw_fee_type = res.data.withdraw_fee_type
+                    if (this.withdraw_fee_type == 'fixed') {
+                        this.fee = res.data.fee;
+                    } else {
+                        this.percent = res.data.fee
+                    }
+                });
+            } else {
+                this.numLenth = 3
+            }
+        },
+        //根据币种获取链地址
+        getBlock(symbol) {
+            Axios.getBlock({
+                coin: symbol
+            }).then((res) => {
+                this.blockList = res.data;
+                this.blockName = res.data[0].blockchain_name;
+            });
+        },
+        //选中链名称
+        changeBlockchain(item, index) {
+            this.blockchainIndex = index;
+            this.blockName = item.blockchain_name;
+        },
+        //获取钱包余额
+        getAvailable(symbol) {
+            _getAllWallet().then((res) => {
+                let walletList = res.extends;
+                let initObj = walletList.find(item => {
+                    return item.symbol.toLowerCase() == symbol.toLowerCase()
+                })
+                this.usdtBalance = initObj.usable
+            });
+        },
+        //点全部
+        allBtn() {
+            this.amount = this.getwei(this.usdtBalance, this.numLenth);
+            this.changeInput()
+        },
+        //输入改变
+        changeInput() {
+            if (this.amount === '') {
+                this.volume_last = '0.00'
+                return
+            }
+            if (this.amount.length > 11) {
+                this.amount = this.amount.slice(0, 11)
+            }
+
+            if (this.withdraw_fee_type == 'part') {
+                AxiosWithdraw.WithdrawFee({
+                    amount: this.amount,
+                    channel: this.value + '_' + this.blockName
+                }).then((res) => {
+                    this.fee = res.data.fee;
+                    this.volume_last = res.data.volume_last;
+                });
+            } else if (this.withdraw_fee_type == 'rate') {
+                if (this.amount == '') {
+                    this.volume_last = 0
+                } else {
+                    this.fee = this.getwei(this.percent * this.amount, this.numLenth)
+                    this.volume_last = this.getwei(this.amount * 1 - this.percent * this.amount, this.numLenth)
+                }
+            } else {
+                if (this.amount * 1 < this.fee * 1) {
+                    console.log('a')
+                    this.volume_last = 0
+                } else {
+                    this.volume_last = this.getwei(this.amount * 1 - this.fee * 1, this.numLenth)
+                }
+            }
+
+        },
+        //提币提交
+        onConfirm() {
+            if (!this.amount) {
+                this.$toast(this.$t('请输入数量'));
+                return;
+            }
+
+            let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
+            if (!numReg.test(this.amount)) {
+                this.$toast(this.$t('请输入数字'));
+                return;
+            }
+
+            if (!this.address) {
+                this.$toast(this.$t('请输入提现地址'));
+                return;
+            }
+
+            if (this.amount && this.address) {
+                this.$router.push({
+                    path: '/withdraw/securityVerification',
+                    query: {
+                        amount: this.amount,
+                        from: this.address,
+                        channel: this.value + '_' + this.blockName
+                    }
+                })
+                // AxiosWithdraw.WithdrawApply({
+                //     session_token:this.sessionToken,
+                //     amount:this.amount,
+                //     from:this.address,
+                //     channel:this.value+'_'+ this.blockName
+                // }).then((res)=> {
+                //     if(res.code==0) {
+                //         this.$router.push({
+                //             path:"/withdraw/withdrawSumbit"
+                //         });
+                //     }else{
+                //       this.$toast(this.$t(res.msg));
+                //     }
+                //     this.getToken();
+                // });
+            } else {
+                this.$toast(this.$t('请输入提币数量'));
+            }
+        },
+        async pastCont() {
+            this.address = await navigator.clipboard.readText();
+        }
+    }
+}
+</script>
+<style>
+.withdrawl-page {
+    width: 100%;
+    box-sizing: border-box;
+    font-size: 26px;
+}
+
+.van-popup.van-popup--bottom {
+    border-top-left-radius: 30px;
+    border-top-right-radius: 30px;
+}
+</style>
+<style lang="scss" scoped>
+.pop-box {
+    border-top-left-radius: 30px;
+    border-top-right-radius: 30px;
+}
+
+.color-blue {
+    color: #2C78F8;
+}
+
+.bg-grey-light {
+    background: #F5F5F5;
+}
+
+li {
+    &.active {
+        @include themify() {
+            border-color: themed("color_main");
+        }
+
+        @include themify() {
+            color: themed("color_main");
+        }
+    }
+}
+
+.van-button--default {
+    color: #fff;
+}
+</style>
diff --git a/src/views/C2C/withdraw/withdrawSumbit.vue b/src/views/C2C/withdraw/withdrawSumbit.vue
new file mode 100644
index 0000000..c2fd4a3
--- /dev/null
+++ b/src/views/C2C/withdraw/withdrawSumbit.vue
@@ -0,0 +1,33 @@
+<template>
+    <!-- 提现申请提交页面 -->
+    <div class="page-box">
+        <application :title="title" />
+    </div>
+</template>
+
+<script>
+import Application from '@/components/application/application.vue';
+
+export default {
+    name: 'withdrawSumbit',
+    components: {
+        Application
+    },
+    data() {
+        return {
+            title: this.$t("提现")
+        }
+    },
+    created() {
+
+    },
+    methods: {
+    }
+}
+</script>
+<style lang="scss" scoped>
+.page-box {
+    width: 100%;
+    box-sizing: border-box;
+}
+</style>
diff --git a/src/views/C2C/withdraw/withdrawalSecurityVerification.vue b/src/views/C2C/withdraw/withdrawalSecurityVerification.vue
new file mode 100644
index 0000000..d0d6cef
--- /dev/null
+++ b/src/views/C2C/withdraw/withdrawalSecurityVerification.vue
@@ -0,0 +1,189 @@
+<template>
+  <div id="withdraw_verify" class="withdraw_verify">
+    <assets-head />
+    <div class="content">
+      <div class="title textColor">{{ $t('安全验证') }}</div>
+      <p>{{ $t('请输入资金密码') }}</p>
+      <div class="iptbox inputBackground">
+        <input class="inputBackground textColor" type="password" :placeholder="$t('请输入密码')" v-model="password">
+      </div>
+<!--      <div class="mt-40" v-if="this.isGoogleInput">-->
+<!--        <p>{{ $t('请输入谷歌验证码') }}</p>-->
+<!--        <div class="iptbox inputBackground">-->
+<!--          <input class="inputBackground textColor" type="password" :placeholder="$t('请输入谷歌验证码')" v-model="googleCode">-->
+<!--        </div>-->
+<!--      </div>-->
+      <div class="btn btnMain" @click="confirm">{{ $t('提交') }}</div>
+      <div class="mt-42" style="color:#1D91FF;" ><span @click="$router.push('/resetVerify?type=0')">{{ $t('资金密码不可用?') }}</span>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import assetsHead from "@/components/order-nav/OrderNav.vue";
+import { Form, Field, CellGroup } from 'vant';
+import AxiosWithdraw from "@/service/withdraw.js"
+import otcApi from "@/service/otc";
+import AxiosUser from "@/service/userCenter";
+
+export default {
+  name: "withdrawalSecurityVerification",
+  props: ['type'],
+  components: {
+    assetsHead,
+    [Form.name]: Form,
+    [Field.name]: Field,
+    [CellGroup.name]: CellGroup,
+  },
+  data() {
+    return {
+      password: '',
+      data: null,
+      sessionToken:'',
+      googleCode:'',
+      isGoogleInput:false
+    }
+  },
+  created() {
+    AxiosUser._getIsGoogleAuth({code:'google_auth_secret_open'}).then(res=>{
+      this.isGoogleInput=res.data.google_auth_secret_open==='1'
+    })
+    this.data = this.$route.query
+    this.getToken()
+  },
+  methods: {
+    getToken() {
+      AxiosWithdraw.GetSessionToken().then((res) => {
+        this.sessionToken = res.data.session_token;
+      });
+    },
+    onSubmit(values) {
+      console.log('submit', values);
+    },
+    confirm(data) {
+      if (this.type === 'sell' || this.type === 'buy') {
+        if (!this.password) {
+          this.$toast(this.$t('请输入资金密码'));
+          return
+        } else {
+          if (this.type === 'buy') {
+            otcApi.ctcOrderPayFinish({ order_no: this.$store.state.c2c.order_no, safe_password: this.password }).then((res) => {
+              if (res.code / 1 === 0) {
+                this.$router.push({ path: "/paymentDetail" });
+              }
+            })
+          } else {
+            otcApi.ctcOrderPass({
+              order_no: this.$store.state.c2c.order_no,
+              safe_password: this.password,
+            }).then((res) => {
+              this.isLoading = false;
+              this.$router.replace({
+                path: "/tradeSuccessSell",
+              });
+            });
+          }
+
+        }
+      } else {
+        if (!this.password) {
+          this.$toast(this.$t('请输入资金密码'));
+          return
+        }
+        // if(this.isGoogleInput){
+        //   if (!this.googleCode) {
+        //     this.$toast(this.$t('请输入谷歌验证码'));
+        //     return
+        //   }
+        // }
+        AxiosWithdraw.WithdrawApply({
+          session_token: this.sessionToken,
+          amount: this.data.amount,
+          from: this.data.from,
+          safeword: this.password,
+          channel: this.data.channel,
+          googleCode:this.googleCode
+        }).then((res) => {
+          if (res.code == 0) {
+            this.$router.push({
+              path: "/withdraw/withdrawSumbit"
+            });
+          } else {
+            this.getToken()
+          }
+        }).catch(err => {
+          //console.log(err)
+          if (err.code == 105) {
+            this.$toast(this.$t('当前还需交易%s,才可提币', { 'MONEY': err.msg }));
+          } else if (err.code === 'ECONNABORTED') {
+            this.$toast(this.$t('网络超时!'))
+          } else if (err.msg !== undefined) {
+            this.$toast(this.$t(err.msg))
+          }
+          this.getToken()
+        })
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.withdraw_verify {
+  width: 100%;
+  box-sizing: border-box;
+  font-size: 1.6rem;
+}
+
+.cl {
+  color: dodgerblue;
+}
+
+.title {
+  font-weight: 700;
+  font-size: 52px;
+  margin-top: 54px;
+  margin-bottom: 56px;
+}
+
+.content {
+  padding: 0 32px;
+
+  p {
+    color: #868D9A;
+    font-size: 30px;
+    margin-bottom: 18px;
+  }
+
+  .iptbox {
+    height: 88px;
+    margin-top: 16px;
+    padding: 0 20px;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    border-radius: 8px;
+
+    input {
+      flex: 1;
+      height: 100%;
+      border: none;
+    }
+
+    span {
+      color: #1D91FF;
+    }
+  }
+}
+
+.btn {
+  color: #fff;
+  height: 88px;
+  line-height: 88px;
+  text-align: center;
+  font-size: 32px;
+  margin-top: 178px;
+  border-radius: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/advertiserDetail/detail.vue b/src/views/advertiserDetail/detail.vue
new file mode 100644
index 0000000..dd93ef2
--- /dev/null
+++ b/src/views/advertiserDetail/detail.vue
@@ -0,0 +1,119 @@
+<template>
+  <div v-if="detail" class="main w-full h-full">
+    <order-nav :title="detail.nickName" :back="false" @back="back" />
+    <div class="mt-40 px-32">
+      <p class="flex justify-between p-li">
+        <span>{{ $t('30日成单数') }}</span>
+        <span><span class="text_color">{{ detail.thirtyDaysOrder }}</span>{{ $t('次') }}</span>
+      </p>
+      <p class="flex justify-between p-li bor">
+        <span>{{ $t('30日成单率') }}</span>
+        <span class="text_color">{{ detail.thirtyDaysOrderRatio }}%</span>
+      </p>
+      <p class="flex justify-between p-li pd-t">
+        <span>{{ $t('平均放行') }}</span>
+        <span><span class="text_color">{{ detail.thirtyDaysPassAverageTime }}</span>{{ $t('分钟') }}</span>
+      </p>
+      <p class="flex justify-between p-li bor">
+        <span>{{ $t('平均放款') }}</span>
+        <span><span class="text_color">{{ detail.thirtyDaysPayAverageTime }}%</span>{{ $t('分钟') }}</span>
+      </p>
+      <p class="flex justify-between p-li pd-t">
+        <span>{{ $t('账户已创建') }}</span>
+        <span><span class="text_color">{{ detail.accountCreateDays }}</span>{{ $t('天') }}</span>
+      </p>
+      <p class="flex justify-between p-li">
+        <span>{{ $t('首次交易至今') }}</span>
+        <span><span class="text_color">{{ detail.firstExchangeDays }}</span>{{ $t('天') }}</span>
+      </p>
+      <p class="flex justify-between p-li">
+        <span>{{ $t('交易人数') }}</span>
+        <span class="text_color">{{ detail.exchangeUsers }}</span>
+      </p>
+      <p class="flex justify-between p-li">
+        <span>{{ $t('总成单数') }}</span>
+        <span><span class="text_color">{{ detail.totalSuccessOrders }}</span>{{ $t('次') }}</span>
+      </p>
+      <p class="flex justify-between p-li">
+        <span>{{ $t('数据') }}</span>
+        <span>
+          {{ $t('购买') }}
+          <span class="text_color">{{ detail.buySuccessOrders }}</span>
+          {{ $t('| 出售') }}
+          <span class="text_color">{{ detail.sellSuccessOrders }}</span>
+        </span>
+      </p>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  formatTime
+} from "@/utils/utis";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+export default {
+  props: ['detail'],
+  data() {
+    return {
+      info: {
+        singularNumber: 1045,
+        singularBai: '99.24%',
+        release: 1.87,
+        payment: 0.93,
+        establish: 101,
+        first: 231,
+        num: 123,
+        total: 12345,
+        buy: 824,
+        sell: 1093,
+      },
+    }
+  },
+  methods: {
+    linkToBack() {
+      this.$router.go(-1)
+    },
+    back() {
+      this.$emit('back')
+    }
+  },
+  components: {
+    OrderNav,
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.main {
+  //padding: 0 30px;
+  color: #868d9a;
+
+  .p-li {
+    padding-bottom: 44px;
+  }
+
+  .bor {
+    border-bottom: 1px solid $divi_line;
+  }
+
+  .pd-t {
+    padding-top: 40px;
+  }
+}
+
+.nav {
+  display: flex;
+  align-items: center;
+  font-size: 33px;
+  font-weight: bold;
+  color: #21262f;
+  padding: 54px 0 80px;
+
+  img {
+    width: 32px;
+    height: 32px;
+    margin-right: 264px;
+  }
+}
+</style>
diff --git a/src/views/advertiserDetail/index.vue b/src/views/advertiserDetail/index.vue
new file mode 100644
index 0000000..8516d7b
--- /dev/null
+++ b/src/views/advertiserDetail/index.vue
@@ -0,0 +1,519 @@
+<template>
+  <div v-if="userInfo" id="wantBuy" class="bg-blue " style="overflow: auto">
+    <div class="w-full h-122 pl-40 pr-31 box-border bg-blue flex justify-between text-white items-center">
+      <van-icon class="flex-1 font-32 font-700" name="arrow-left" @click="$router.back()" />
+    </div>
+
+    <div class="main">
+      <div class="user">
+        <img :src="c2cUser.headImg" class="avag" alt="" />
+        <!--        <div class="avag">B</div>-->
+        <div>
+          <p class="name">{{ c2cUser.nickName }}</p>
+          <div class="advertisement flex items-center">
+            <img class="succ" src="@/assets/image/icon-success.png" alt ="" />
+            <span>{{ $t('认证广告方') }}</span>
+            <span class="shu">|</span>
+            <span>{{ $t('保证金') }} {{ $t(`${c2cUser.deposit}USDT`) }}</span>
+          </div>
+          <div class="e-li">
+            <div class="email">
+              <span>{{ $t('邮箱') }}</span>
+              <img v-if="party.emailAuthority" class="relative top-2" src="@/assets/image/success.png" alt="" />
+              <img class="w-20 h-20 relative top-2" v-else src="@/assets/image/c2c/no.png" alt="">
+            </div>
+            <div class="email">
+              <span>{{ $t('手机') }}</span>
+              <img v-if="party.phoneAuthority" class="relative top-2" src="@/assets/image/success.png" alt="" />
+              <img class="w-20 h-20 relative top-2" v-else src="@/assets/image/c2c/no.png" alt="">
+            </div>
+            <div class="email">
+              <span>{{ $t('身份') }}</span>
+              <img v-if="party.kycAuthority" class="relative top-2" src="@/assets/image/success.png" alt="" />
+              <img class="w-20 h-20 relative top-2" v-else src="@/assets/image/c2c/no.png" alt="">
+            </div>
+            <div class="email">
+              <span>{{ $t('高级认证') }}</span>
+              <img v-if="party.kycHighlevelAuthority" class="relative top-2" src="@/assets/image/success.png" alt="" />
+              <img class="w-20 h-20 relative top-2" v-else src="@/assets/image/c2c/no.png" alt="">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="main-list" ref="main" :style="fullHeight">
+        <div class="main-box">
+          <div class="main-nav">
+            <span class="info">{{ $t('信息') }}</span>
+            <span class="gen" style="color: #868d9a" @click="linkToDetail">
+              {{ $t('更多数据') }}
+              <img class="right" src="@/assets/image/icon-right.png" alt="" />
+            </span>
+          </div>
+          <div class="shuju">
+            <div>
+              <p class="num">{{ c2cUser.thirtyDaysOrder }}</p>
+              <p class="time">{{ $t('30日成单数') }}</p>
+            </div>
+            <div>
+              <p class="num">{{ c2cUser.thirtyDaysOrderRatio }}%</p>
+              <p class="time">{{ $t('30日成单率') }}</p>
+            </div>
+          </div>
+          <p class="flex justify-between ping" @click="show = true">
+            <span class="time">{{ $t('平均放行') }}</span>
+            <span class="textColor">{{ c2cUser.thirtyDaysPassAverageTime }}{{ $t('分钟') }}</span>
+          </p>
+          <p class="flex justify-between ping" @click="show = true">
+            <span class="time">{{ $t('平均付款') }}</span>
+            <span class="textColor">{{ c2cUser.thirtyDaysPayAverageTime }}{{ $t('分钟') }}</span>
+          </p>
+        </div>
+
+        <div class="guang">
+          <p class="g-title">{{ $t('在线广告') }}</p>
+          <!-- 
+          
+          <div v-show="buy.length === 0" class="g-box"></div> -->
+          <div class="g-box">
+            <p class="g-zai">{{ $t('在线出售广告') }}</p>
+            <div v-if="advert.length === 0" class="g-data flex justify-center items-center">
+              <div class="text-align: center;">
+                <img class="zanwu" :src="require('@/assets/image/c2c/Group1942.png')" alt="" />
+              </div>
+            </div>
+            <template v-else>
+              <div class="g-data" v-for="(item, index) in advert" :key="index">
+                <div class="usdt ">
+                  <img src="@/assets/image/USDT.png" alt="" />
+                  <span class="textColor">{{ item.symbol.toLocaleUpperCase() }}</span>
+                </div>
+                <p>{{ $t('单价') }}</p>
+                <p class="g-dan textColor">
+                  <span class="textColor">$</span><span class="textColor">{{ item.symbolValue }}</span>
+                </p>
+                <p class="mar-9">
+                  {{ $t('数量') }}<span style="color: #fff">{{ item.coinAmount }} USDT</span>
+                </p>
+                <p class="mar-30">
+                  {{ $t('限额') }}
+                  <span style="color: #fff">${{ item.investmentMin }} - ${{ item.investmentMax }}</span>
+                </p>
+                <div class="flex">
+                  <div class="flex items-center mar-23">
+                    <div class="shu-h"></div>
+                    <span>{{ $t('银行卡') }}</span>
+                  </div>
+                  <div class="flex items-center">
+                    <div class="shu-h" style="background: #4ba6eb"></div>
+                    <span>{{ $t('币交易') }}</span>
+                  </div>
+                </div>
+
+                <div v-if="item.direction === 'sell'" class="buy" style="background: #e35461" @click="trade(item)">{{
+                  $t('向Ta出售') }}</div>
+                <div v-else class="buy" @click="trade(item)">{{ $t('向Ta购买') }}</div>
+              </div>
+            </template>
+
+            <!-- <div class="g-bottom"></div> -->
+          </div>
+
+          <p class="g-feng">
+            {{ $t(' 风控提示:为了降低您的交易风险,认证广告方已向平台缴纳保证金,请放心交易。') }}
+          </p>
+        </div>
+      </div>
+    </div>
+
+    <van-dialog v-model="show" :showConfirmButton="false" :closeOnClickOverlay="true">
+      <div class="dia-main">
+        <p>{{ $t('30日平均放行: 近30日卖币时收款后放币的平均确认时间。') }}</p>
+        <p class="mar-70">{{ $t('30日平均放行: 近30日购买数字货币平均付款的时间。') }}</p>
+        <div class="dia-btn" @click="show = false">{{ $t('好的') }}</div>
+      </div>
+    </van-dialog>
+
+    <van-popup class="w-full h-full" v-model="showDetail" position="right">
+      <detail :detail="c2cUser" @back="back" />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+import { Icon, Dialog, Popup } from 'vant';
+import detail from "./detail.vue";
+import otcApi from "@/service/otc";
+// import { nextTick } from 'process';
+
+export default {
+  name: 'advertiserDetail',
+  props: ['uid'],
+  components: {
+    [Icon.name]: Icon,
+    [Dialog.name]: Dialog,
+    [Popup.name]: Popup,
+    detail,
+  },
+  data() {
+    return {
+      top: 0, // main-list距离顶部的高度
+      show: false,
+      showDetail: false,
+      userInfo: null,
+      info: {
+        singularNumber: 1045,
+        singularBai: '99.24%',
+        release: 1.87,
+        payment: 0.93,
+      },
+      sell: [
+        {
+          name: 'USDT',
+          price: '0.970',
+          count: '498.60',
+          minCount: '200.00',
+          maxCount: '483.64',
+        },
+      ],
+      buy: [
+        {
+          name: 'USDT',
+          price: '0.970',
+          count: '498.60',
+          minCount: '200.00',
+          maxCount: '483.64',
+        },
+      ],
+    }
+  },
+  created() {
+    console.log(this.uid);
+    otcApi.ctcUserGet({ c2c_user_id: this.uid, language: this.$i18n.locale }).then(res => {
+      this.userInfo = res.data;
+    })
+  },
+  mounted() {
+    // nextTick(() => {
+      setTimeout(() => {
+        this.top = this.$refs.main.getBoundingClientRect().top;
+      }, 1000)
+    // })
+  },
+  methods: {
+    linkToDetail() {
+      this.showDetail = true;
+      // this.$router.push('/advertiserDetail/detail')
+    },
+    back() {
+      this.showDetail = false;
+    },
+    trade(item) {
+      console.log(item);
+      this.$store.commit('c2c/SET_DIRECTION', item.direction)
+      this.$router.push({
+        name: 'c2cTrade',
+        query: {
+          id: item.id,
+          type: item.direction,
+        }
+      })
+    }
+  },
+  computed: {
+    c2cUser() {
+      return this.userInfo.c2c_user;
+    },
+    advert() {
+      return this.userInfo.advert;
+    },
+    party() {
+      return this.userInfo.party;
+    },
+    fullHeight() {
+      return {
+        'height': `calc(100vh - ${this.top}px)`
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.box-radius {
+  border-radius: 40px;
+}
+
+.list-img {
+  top: -6px;
+}
+
+.main {
+  min-height: 100%;
+}
+
+.user {
+  display: flex;
+  color: #fff;
+  background: $btn_main;
+}
+
+.avag {
+  width: 64px;
+  height: 64px;
+  background: #fff;
+  border-radius: 50%;
+  font-weight: bold;
+  font-size: 32px;
+  text-align: center;
+  line-height: 64px;
+  margin: 10px 25px 0 32px;
+}
+
+.name {
+  font-size: 33px;
+}
+
+.succ {
+  width: 23px;
+  height: 23px;
+  margin-right: 10px;
+}
+
+.shu {
+  margin: 0 15px;
+}
+
+.advertisement {
+  display: flex;
+  align-items: center;
+  font-size: 20px;
+  margin-top: 10px;
+  margin-bottom: 24px;
+}
+
+.e-li {
+  display: flex;
+  font-size: 26px;
+}
+
+.email {
+  display: flex;
+  align-items: center;
+  //width: 100px;
+  justify-content: space-between;
+  margin-right: 48px;
+
+  span {
+    margin-right: 14px;
+  }
+}
+
+.email>img {
+  width: 23px;
+  height: 23px;
+  border-radius: 50%;
+}
+
+.main-list {
+  overflow: auto;
+  margin-top: 44px;
+  background: $main_background;
+
+  border-radius: 80px 80px 0px 0px;
+  // padding-bottom: 300px;
+}
+
+.main-box {
+  padding: 45px 32px 60px;
+  border-bottom: 1px solid $divi_line;
+}
+
+.main-nav {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 48px;
+}
+
+.info {
+  color: $text_color;
+  font-size: 30px;
+  font-weight: bold;
+}
+
+.gen {
+  font-size: 22px;
+}
+
+.right {
+  width: 13px;
+  height: 18px;
+  margin-left: 15px;
+}
+
+.shuju {
+  display: flex;
+  padding-right: 244px;
+  justify-content: space-between;
+  margin-bottom: 53px;
+}
+
+.num {
+  font-size: 40px;
+  color: $text_color;
+
+  font-weight: bold;
+  margin-bottom: 18px;
+}
+
+.time {
+  color: #868d9a;
+  font-size: 22px;
+}
+
+.ping {
+  margin-right: 47px;
+  font-size: 22px;
+  margin-top: 26px;
+}
+
+.g-title {
+  color: $text_color;
+
+  font-size: 30px;
+  font-weight: bold;
+  margin: 60px 32px;
+}
+
+.g-zai {
+  color: #868d9a;
+  font-size: 28px;
+  margin-left: 32px;
+  padding-bottom: 32px;
+  border-bottom: 1px solid $divi_line;
+}
+
+.g-data {
+  min-height: 380px;
+  background: $main_background;
+
+  box-sizing: border-box;
+  font-size: 24px;
+  color: #868d9a;
+  padding: 45px 0 41px 32px;
+  position: relative;
+  border-bottom: 1px solid $divi_line;
+
+  .g-dan {
+    margin: 8px 0 22px;
+    color: $text_color;
+
+    font-weight: bold;
+
+    span {
+      font-size: 40px;
+    }
+  }
+
+  .mar-9 {
+    margin-bottom: 9px;
+  }
+
+  .mar-30 {
+    margin-bottom: 30px;
+  }
+
+  .buy {
+    width: 160px;
+    height: 56px;
+    background: #2EBD85;
+    color: #fff;
+    font-size: 26px;
+    text-align: center;
+    line-height: 56px;
+    border-radius: 10px;
+    position: absolute;
+    right: 32px;
+    bottom: 95px;
+  }
+}
+
+.g-bottom {
+  margin: 60px 0;
+  height: 1px;
+  border-top: 1px solid #484756;
+}
+
+.usdt {
+  display: flex;
+  align-items: center;
+  margin-bottom: 32px;
+
+  img {
+    width: 32px;
+    height: 32px;
+    margin-right: 15px;
+  }
+
+  span {
+    font-size: 30px;
+  }
+}
+
+.shu-h {
+  width: 5px;
+  height: 20px;
+  background: #e7bb41;
+  border-radius: 10px;
+  margin-right: 9px;
+}
+
+.mar-23 {
+  margin-right: 23px;
+}
+
+.g-feng {
+  color: #868d9a;
+  font-size: 18px;
+  margin: 0 32px;
+  padding-top: 80px;
+  padding-bottom: 80px;
+}
+
+.zanwu {
+  width: 150px;
+  height: 180px;
+}
+
+.dia-main {
+  padding: 60px 64px 44px 48px;
+  color: $text_color;
+
+  font-size: 28px;
+
+  .mar-70 {
+    margin: 70px 0 46px;
+  }
+}
+
+.dia-btn {
+  height: 80px;
+  line-height: 80px;
+  text-align: center;
+  color: $text_color;
+
+  background: #1d91ff;
+}
+
+.bg-blue {
+  background: $btn_main;
+}
+
+// .textColor {
+//   color: #fff;
+// }
+
+.appContent {
+  padding-bottom: 0 !important;
+}
+</style>
diff --git a/src/views/chat/index.vue b/src/views/chat/index.vue
new file mode 100644
index 0000000..2174498
--- /dev/null
+++ b/src/views/chat/index.vue
@@ -0,0 +1,369 @@
+<template>
+  <div class="w-full h-full flex flex-col chat-page" ref="mianscroll">
+    <div class="w-full">
+      <order-nav>
+        <template #left>
+          <van-icon name="cross" class="font-700" color="#868D9A" />
+        </template>
+        <template #title>
+          <div class="flex items-center">
+            <img class="w-32 h-32" :src="detail.c2cUserHeadImg" alt="">
+            <span class="ml-11 font-700 font-28">{{ detail.c2cUserNickName }}</span>
+          </div>
+        </template>
+      </order-nav>
+      <div class="pt-30 px-32 pb-32 tabBackground">
+        <template v-if="detail.direction == 'buy'">
+          <template v-if="detail.state == 0">
+            <div class="font-40 c2cColor" v-if="time > 0">{{ $t('订单将在倒计时结束时取消。') }}&nbsp;<span class="text-blue">{{ time }}</span></div>
+
+            <div class="font-40 c2cColor" v-else>{{ $t('您的订单已超时') }}</div>
+            <van-count-down class="flex font-700 mx-10" :time="time">
+          <template #default="timeData">
+            <span class="block">{{ timeData.hours }}</span>
+            <span class="colon">:</span>
+            <span class="block">{{ timeData.minutes }}</span>
+            <span class="colon">:</span>
+            <span class="block">{{ timeData.seconds }}</span>
+          </template>
+        </van-count-down>
+            <!-- <span class="block" v-if="time.hours">{{
+              time.hours
+            }}</span>
+            <span class="colon" v-if="time.hours">:</span>
+            <span class="block">{{ time.minutes }}</span>
+            <span class="colon">:</span>
+            <span class="block">{{ time.seconds }}</span> -->
+          </template>
+          <template v-else>
+            <div class="font-40 font-600 c2cColor">{{ fixStrBuy() }}</div>
+          </template>
+        </template>
+        <template v-else>
+          <div class="font-40 c2cColor">{{ fixStrSell() }}</div>
+        </template>
+        <div class="flex justify-between items-center mt-31">
+          <div class="font-26 text-black">
+            <span class="text-grey">{{ $t('金额') }}</span>
+            <span class="ml-14 c2cColor">{{ detail.currency }} {{ detail.amount && (detail.amount).toFixed(2) }}</span>
+          </div>
+          <!-- <div class="font-30 text-blue" @click="$router.push('/appeal')">{{ $t('举报') }}</div> -->
+        </div>
+        <van-button v-if="detail.direction == 'buy' && detail.state == 0" class="w-full mt-44 font-31 rounded-lg"
+          color="#1D91FF" type="info" @click="gotoPay">{{ $t('去付款') }}</van-button>
+      </div>
+    </div>
+    <div class="content flex-1 pb-200">
+      <div class="flex flex-col px-32 box-border">
+        <div class="w-full py-10 text-grey text-center pt-100" @click="onMore"
+          :style="{ 'visibility': finished ? 'hidden' : 'visiable' }">
+          {{ $t('历史消息') }}</div>
+        <ul class="flex flex-col pt-20">
+          <li v-for="(item, index) in list" :key="item.id" class="flex flex-col mt-20">
+            <p class="font-26 text-center py-20 text-grey" v-if="showTime(index)">{{ item.createtime &&
+              item.createtime.split(' ')[0] }}</p>
+            <div class="flex" :class="item.send_receive === 'send' ? 'justify-end' : ''">
+
+              <template v-if="item.send_receive === 'receive'">
+                <img :src="detail.c2cUserHeadImg" class="w-81 h-81 mr-40" />
+                <div class="responser bg-grey px-50 py-35 font-30 rounded-lg font-26 chatBg  bg-right"
+                  style="border-radius: 20px 20px 20px 0">
+                  <p class="break-word textColor" style="max-width: 230px; word-break: break-word;"
+                    v-if="item.type === 'text'">{{ item.content }}</p>
+                  <img v-else :src="item.content" class="w-200 h-200" @click="onPreview(item.content)" />
+                </div>
+              </template>
+              <div class="py-25 px-50 rounded-lg flex flex-col chatBg bg-right" style="border-radius: 20px 20px 0 20px"
+                v-else>
+                <img :src="`${item.content}`" class="w-200 h-200" v-if="item.type === 'img'"
+                  @click="onPreview(item.content)" />
+                <p class="break-word textColor" v-else style="max-width: 230px; word-break: break-word;color: #fff">
+                  {{ item.content }}</p>
+              </div>
+            </div>
+          </li>
+        </ul>
+      </div>
+    </div>
+    <!-- <div class="flex-1 w-full overflow-auto bg-f5">
+      <div class="w-full pt-43">
+        <div class="font-24 text-grey text-center">2022-07-07 20:18:10</div>
+        <div class="px-30 mt-45">
+          <div class="flex items-end">
+            <img class="w-64 h-64 mr-26" src="@/assets/image/c2c/Group11762.png" alt="">
+            <div class="h-100 pl-38 pr-52 py-32 box-border bg-white sell">{{$t('银行卡三天流水明细截图')}}</div>
+          </div>
+          <div class="flex justify-end mt-58">
+            <div class="buyer bg-blue text-white py-32 px-48">{{$t('误划,取消!')}}</div>
+          </div>
+        </div>
+      </div>
+    </div> -->
+    <div class="fixed bottom-0 bottom-box left-0 w-full px-32 box-border pb-80">
+      <div
+        class="pl-30 flex justify-between relative w-full h-120 items-center pr-140 box-border rounded-xl tabBackground chat-input">
+        <van-uploader :max-size="10000 * 1024" @oversize="onOversize" :after-read="afterRead">
+          <img src="@/assets/image/service/photo.png" class="w-72 h-72" />
+        </van-uploader>
+        <input class="w-full h-full font-32 pl-40 inputBackground c2cColor" type="text" v-model="message"
+          :placeholder="$t('请输入您的消息...')">
+        <div class="right-34 chat-icon" @click="send('text', message)">
+          <img class="w-54" src="@/assets/image/c2c/Vector(1).png" alt="">
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  Icon,
+  Button,
+  Uploader, ImagePreview,
+  CountDown, showLoadingToast, closeToast
+} from "vant";
+import OrderNav from "@/components/order-nav/OrderNav.vue";
+import { _uploadImage } from '@/service/fund.api'
+import otcApi from "@/service/otc.js";
+
+export default {
+  name: "ChatIndex",
+  props: ['type'], // 标识买家还是卖家
+  components: {
+    [Icon.name]: Icon,
+    [Button.name]: Button,
+    OrderNav,
+    [Uploader.name]: Uploader,
+    [CountDown.name]: CountDown,
+  },
+  data() {
+    return {
+      list: [],
+      lastMsgId: '',
+      finished: false, // 没有历史消息
+      message: '',
+      orderNo: '',
+      detail: {},
+      inter: null,
+      timerData: null,
+      time: '' // 剩余时间
+    }
+  },
+  filters: {
+    format(val) {
+      return Math.floor(val / 60) + ':' + val % 60
+    }
+  },
+  async created() {
+    this.orderNo = this.$store.state.c2c.order_no
+    const res = await otcApi.ctcOrderGetDetail({ order_no: this.orderNo, language: this.$i18n.locale });
+    this.detail = res.data
+    const { autoCancelTimeRemain } = this.detail
+    this.time = autoCancelTimeRemain
+    if (this.time > 0) {
+      this.timerData = setInterval(() => {
+        this.time--
+        if (this.time <= 0) {
+          clearInterval(this.timerData)
+        }
+      }, 2000)
+    }
+    this.fetchList()
+  },
+  methods: {
+    fixStrSell() {
+      let str = ''
+      if (this.detail.state == 0) {
+        str = this.$t('等待买家付款')
+      } else if (this.detail.state == 1) {
+        str = this.$t('请放行')
+      } else if (this.detail.state == 2) {
+        str = this.$t('申诉中')
+      } else if (this.detail.state == 3) {
+        str = this.$t('已完成')
+      } else if (this.detail.state == 4) {
+        str = this.$t('已取消')
+      } else if (this.detail.state == 5) {
+        str = this.$t('已超时')
+      }
+      return str
+    },
+    fixStrBuy() {
+      let str = ''
+      if (this.detail.state == 1) {
+        str = this.$t('等待卖家放行')
+      } else if (this.detail.state == 2) {
+        str = this.$t('申诉中')
+      } else if (this.detail.state == 3) {
+        str = this.$t('已完成')
+      } else if (this.detail.state == 4) {
+        str = this.$t('已取消')
+      } else if (this.detail.state == 5) {
+        str = this.$t('已超时')
+      }
+      return str
+    },
+    gotoPay() {
+      if (this.detail.state == 0) {
+        this.$router.push({ path: '/paymentBuy' })
+      }
+    },
+    onOversize(file) {
+      console.log(file);
+      this.$toast(this.$t('文件大小不能超过10m'));
+    },
+    onPreview(url) { // 预览
+      ImagePreview([url])
+    },
+    showTime(index) { // 时间显示
+      if (index === 0) {
+        return true
+      }
+      if (index === this.list.length - 1) {
+        return false
+      }
+      if (this.list[index].createtime.split(' ')[0] === this.list[index + 1].createtime.split(' ')[1]) {
+        return false
+      }
+    },
+    afterRead(file) { // 文件上传
+      showLoadingToast({ duration: 0 })
+      _uploadImage(file, (percent) => {
+        console.log(percent)
+      }).then(data => {
+        closeToast()
+        this.send('img', data)
+      }).catch(() => {
+        closeToast()
+      })
+    },
+    fetchList(message_id = '') { // 获取消息列表
+      otcApi.otcOnlinechatList({
+        messageId: message_id,
+        orderNo: this.detail.orderNo
+      }).then(res => { // this.lastMsgId
+        if (!this.lastMsgId) {
+          this.lastMsgId = res.data.length && res.data[res.data.length - 1]['id']
+        }
+        if (res.data.length) {
+          if (message_id) { // 加载更多
+            this.lastMsgId = res.data[res.data.length - 1]['id']
+            this.list = [...res.data.reverse(), ...this.list]
+          } else {
+            this.list = [...this.list, ...res.data.reverse()]
+            let hash = {};
+            this.list = this.list.reduce(function (preVal, curVal) {
+              hash[curVal.id] ? ' ' : hash[curVal.id] = true && preVal.push(curVal);
+              return preVal
+            }, []);
+          }
+          if (res.data.length < 10) {
+            this.finished = true
+          }
+        } else {
+          this.list = []
+        }
+        if (!message_id) {
+          this.clearInterval()
+          this.inter = setInterval(() => {
+            this.fetchList()
+          }, 2000)
+        }
+      })
+      
+    },
+    onMore() { // 加载更多
+      this.fetchList(this.lastMsgId)
+    },
+    clearInterval() {
+      if (this.inter) {
+        clearInterval(this.inter)
+        this.inter = null
+      }
+    },
+    send(type = 'text', content = '') { // 发送消息, img 也当消息text
+      if (!content) {
+        this.$toast(this.$t('请输入消息内容'))
+        return
+      }
+      otcApi.otcOnlinechat({
+        orderNo: this.detail.orderNo,
+        type,
+        content
+      }).then(data => {
+        console.log(data)
+        this.message = ''
+        // document.getElementById('bottom').click()
+        this.fetchList()
+        setTimeout(() => {
+          this.bottomScrollClick()
+        },1000)
+        // setTimeout(() => {
+        //   window.scrollTo(0, document.documentElement.scrollHeight)
+        // }, 1000)
+      })
+    },
+    bottomScrollClick() {
+      this.$nextTick(() => {
+        let scrollEl = this.$refs.mianscroll;
+        scrollEl.scrollTo({ top: scrollEl.scrollHeight + 400, behavior: 'smooth' });
+      });
+    }
+  },
+  beforeUnmount() {
+    this.clearInterval()
+    let end = setInterval(function () { }, 10000);
+    for (let i = 1; i <= end; i++) {
+      clearInterval(i);
+      clearTimeout(i);
+    }
+  },
+  beforeDestroy() {
+    this.clearInterval()
+    let end = setInterval(function () { }, 10000);
+    for (let i = 1; i <= end; i++) {
+      clearInterval(i);
+      clearTimeout(i);
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.bg-left {
+  background: #fff !important;
+}
+
+.bg-right {
+  background: #1D91FF !important;
+}
+
+.sell {
+  border-radius: 10.0022px 10.0022px 10.0022px 0;
+}
+
+.buyer {
+  border-radius: 10.0022px 10.0022px 0 10.0022px;
+  //transform: matrix(-1, 0, 0, 1, 0, 0);
+}
+
+.chat-input {
+  input {
+    border: none;
+    outline: none;
+  }
+}
+.chat-page{
+  overflow: auto;
+}
+
+.chat-icon {
+  position: absolute;
+  top: 50%;
+  transform: translateY(-50%);
+}
+.bottom-box{
+  background: $main_background !important;
+}
+</style>
diff --git a/src/views/cryptos/AboutUs/index.vue b/src/views/cryptos/AboutUs/index.vue
index 84844b8..2bf1e67 100644
--- a/src/views/cryptos/AboutUs/index.vue
+++ b/src/views/cryptos/AboutUs/index.vue
@@ -12,6 +12,7 @@
 import assetsHead from "@/components/Transform/assets-head/index.vue";
 import { _getAboutUs } from "@/service/user.api"
 import { dataTimeEx } from '@/utils/utis'
+import { showToast } from "vant";
 export default {
   data() {
     return {
@@ -50,8 +51,8 @@
         this.createTime = this.dataTimeEx(res.createTime)
 
       }).catch((error) => {
-        if (error.code == 'ECONNABORTED') { this.$toast(this.$t('网络超时!')); }
-        else if (error.msg !== undefined) { this.$toast(this.$t(error.msg)); }
+        if (error.code == 'ECONNABORTED') { showToast(this.$t('网络超时!')); }
+        else if (error.msg !== undefined) { showToast(this.$t(error.msg)); }
       });
     }
   }
diff --git a/src/views/cryptos/HelpCenter/index.vue b/src/views/cryptos/HelpCenter/index.vue
index 30b7f6f..1d6f66c 100644
--- a/src/views/cryptos/HelpCenter/index.vue
+++ b/src/views/cryptos/HelpCenter/index.vue
@@ -18,7 +18,7 @@
 </template>
 
 <script>
-import { Icon } from 'vant';
+import { Icon, showToast } from 'vant';
 import assetsHead from "@/components/Transform/assets-head/index.vue";
 import { _helpCenter } from "@/service/user.api"
 export default {
@@ -46,8 +46,8 @@
       }).then((res) => {
         this.listArr = res
       }).catch((error) => {
-        if (error.code === 'ECONNABORTED') { this.$toast(this.$t('网络超时!')); }
-        else if (error.msg !== undefined) { this.$toast(this.$t(error.msg)); }
+        if (error.code === 'ECONNABORTED') { showToast(this.$t('网络超时!')); }
+        else if (error.msg !== undefined) { showToast(this.$t(error.msg)); }
       });
     },
   }
diff --git a/src/views/cryptos/financialManagement/fundBuy.vue b/src/views/cryptos/financialManagement/fundBuy.vue
index fd284fc..892e8e8 100644
--- a/src/views/cryptos/financialManagement/fundBuy.vue
+++ b/src/views/cryptos/financialManagement/fundBuy.vue
@@ -76,6 +76,7 @@
 import { _getBalance } from "@/service/user.api.js";
 import { fundMakeOrder } from '@/service/financialManagement.api.js'
 import dayjs from 'dayjs'
+import { showToast } from "vant";
 export default {
   name: "funBuy",
   components: {
@@ -105,7 +106,7 @@
     },
     handleBuy() {
       if (!this.form.amount) {
-        this.$toast(this.$t('请输入金额'))
+        showToast(this.$t('请输入金额'))
         return
       }
       fundMakeOrder(this.form).then(res => {
diff --git a/src/views/cryptos/financialManagement/machineBuy.vue b/src/views/cryptos/financialManagement/machineBuy.vue
index d64b443..710c3ce 100644
--- a/src/views/cryptos/financialManagement/machineBuy.vue
+++ b/src/views/cryptos/financialManagement/machineBuy.vue
@@ -69,6 +69,7 @@
 import assetsHead from '@/components/Transform/assets-head/index.vue';
 import dayjs from 'dayjs'
 import { _getBalance } from "@/service/user.api.js";
+import { showToast } from "vant";
 export default {
   name: "MachineBuy",
   components: {
@@ -99,16 +100,16 @@
     },
     handleBuy() {
       if (!this.data.test && !this.form.amount) {
-        this.$toast(this.$t('请输入金额'))
+        showToast(this.$t('请输入金额'))
         return
       } else if (this.data.test && this.form.amount == '') {
         this.form.amount = 0
       }
       if (this.form.amount * 1 < this.data.investment_min) {
-        this.$toast(this.$t('最低金额') + ':' + this.data.investment_min)
+        showToast(this.$t('最低金额') + ':' + this.data.investment_min)
         return
       } else if (this.form.amount * 1 > this.data.investment_max) {
-        this.$toast(this.$t('最大数量') + ':' + this.data.investment_max)
+        showToast(this.$t('最大数量') + ':' + this.data.investment_max)
         return
       }
 
diff --git a/src/views/cryptos/loan/index.vue b/src/views/cryptos/loan/index.vue
index 89e5628..7a4c9d7 100644
--- a/src/views/cryptos/loan/index.vue
+++ b/src/views/cryptos/loan/index.vue
@@ -147,7 +147,7 @@
 
 <script>
 import AssetsHead from "@/components/Transform/assets-head/index.vue";
-import { Popup, Uploader } from "vant";
+import { Popup, Uploader, showToast } from "vant";
 import { _uploadImage, _getLoan, _loanApply } from "@/service/fund.api";
 // import {debounce} from "@/utils/utis";
 
@@ -171,7 +171,7 @@
     submit() {
       // console.log('this.frontFile',this.frontFile)
       if (!this.frontFile.length || !this.reverseFile.length || !this.fileList.length) {
-        this.$toast(this.$t('请上传完整证件信息'))
+        showToast(this.$t('请上传完整证件信息'))
         return
       }
       _loanApply({
@@ -191,7 +191,7 @@
         // console.log('res',res)
         this.$router.push('/cryptos/loanHistory')
       }).catch(err => {
-        this.$toast(this.$t(err.msg))
+        showToast(this.$t(err.msg))
       })
     },
     // //防抖
diff --git a/src/views/cryptos/order/FinancialOrder/index.vue b/src/views/cryptos/order/FinancialOrder/index.vue
index a3ccfde..2c02487 100644
--- a/src/views/cryptos/order/FinancialOrder/index.vue
+++ b/src/views/cryptos/order/FinancialOrder/index.vue
@@ -80,6 +80,7 @@
 import assetsHead from '@/components/Transform/assets-head/index.vue';
 import dayjs from 'dayjs'
 import { ransomFinacialProduct, getFinanceOrder } from '@/service/financialManagement.api.js'
+import { showToast } from 'vant'
 export default {
   name: "index",
   components: {
@@ -143,7 +144,7 @@
         id: this.id
       }).then(res => {
         console.log(res)
-        this.$toast(this.$t('赎回成功'))
+        showToast(this.$t('赎回成功'))
         setTimeout(() => {
           this.backFunc()
         }, 1000)
diff --git a/src/views/cryptos/order/MiningMachineOrder/index.vue b/src/views/cryptos/order/MiningMachineOrder/index.vue
index 855bac0..88baf8a 100644
--- a/src/views/cryptos/order/MiningMachineOrder/index.vue
+++ b/src/views/cryptos/order/MiningMachineOrder/index.vue
@@ -71,6 +71,7 @@
 <script>
 import assetsHead from '@/components/Transform/assets-head/index.vue';
 import { ransomMachineProduct, getMinerorder } from "@/service/financialManagement.api.js";
+import { showToast } from 'vant';
 import dayjs from "dayjs";
 export default {
   name: "index",
@@ -117,7 +118,7 @@
       ransomMachineProduct({
         order_no: this.order_no
       }).then(res => {
-        this.$toast(this.$t('赎回成功'))
+        showToast(this.$t('赎回成功'))
         setTimeout(() => {
           this.backFunc()
         }, 1000)
diff --git a/src/views/cryptos/promote/SharePoster.vue b/src/views/cryptos/promote/SharePoster.vue
index 8a7358d..f1017f3 100644
--- a/src/views/cryptos/promote/SharePoster.vue
+++ b/src/views/cryptos/promote/SharePoster.vue
@@ -49,7 +49,7 @@
 // import { Carousel3d, Slide } from 'vue-carousel-3d';
 // import { VueCanvasPoster } from 'vue-canvas-poster';
 import { mapGetters } from "vuex";
-import { Toast } from "vant";
+import { showToast } from "vant";
 
 // import Vue from 'vue';
 import { Carousel3d, Slide } from 'vue3-carousel-3d';
@@ -117,7 +117,7 @@
 
       // 生成二维码
       QRCode.toDataURL(this.localuser.url, (err, qrCodeData) => {
-        if (err) Toast.fail(err)
+        if (err) showToast.fail(err)
         this.img = qrCodeData
         this.readyCount = 3;
       })
@@ -196,7 +196,7 @@
       //   link.href = base64
       //   link.download = 'qrCode.png'
       //   link.click()
-      //   // Toast.loading({
+      //   // showToast.loading({
       //   //   duration: 1000,
       //   //   forbidClick: true
       //   // })
diff --git a/src/views/customerService/index.vue b/src/views/customerService/index.vue
index 6d3b92d..60a2619 100644
--- a/src/views/customerService/index.vue
+++ b/src/views/customerService/index.vue
@@ -66,7 +66,7 @@
 import { Uploader, showImagePreview } from 'vant'
 import { _getMsg, _getUnreadMsg, _sendMsg } from '@/service/im.api'
 import { _uploadImage } from '@/service/upload.api'
-import { ref, onMounted, onUnmounted } from "vue";
+import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
 import { useI18n } from "vue-i18n";
 import { throttle } from '@/utils/index'
 import { closeToast, showToast, showLoadingToast } from "vant";
@@ -256,7 +256,12 @@
 onUnmounted(() => {
   clearIntervalTimer()
 })
-
+onBeforeUnmount(() => {
+  let lastTimerId = setInterval(() => {}, 1000);
+  for (let i = 1; i <= lastTimerId; i++) {
+    clearInterval(i);
+  }
+})
 
 </script>
 <style lang="scss" scoped>
diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue
index d82d293..88312f2 100644
--- a/src/views/homePage/index.vue
+++ b/src/views/homePage/index.vue
@@ -107,7 +107,7 @@
     // { key: 10, name: t('更多'), icon: new URL('@/assets/imgs/home/home_9.png', import.meta.url) },
 
     { key: 11, name: "ICO", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/ICO/ico' },
-    { key: 12, name: "C2C", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '' },
+    { key: 12, name: "C2C", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/wantBuy' },
 ]
 
 // 获取公告数据
diff --git a/src/views/orderList/index.vue b/src/views/orderList/index.vue
new file mode 100644
index 0000000..0817ba2
--- /dev/null
+++ b/src/views/orderList/index.vue
@@ -0,0 +1,187 @@
+<template>
+  <div class="main flex flex-col">
+    <div class="nav flex items-center">
+      <van-icon name="arrow-left" />
+      <div class="top-nav flex">
+        <div :class="active ? 'active' : ''" @click="active = true">{{ $t('进行中') }}</div>
+        <div :class="!active ? 'active' : ''" @click="active = false">
+          {{ $t('已完成') }}
+        </div>
+      </div>
+    </div>
+    <van-tabs @change="handleChange" v-model="activeName">
+      <van-tab v-for="(item, index) in tabList" :key="index" :title="item.label">
+      </van-tab>
+    </van-tabs>
+    <div class="btp flex-1 bg-white">
+      <van-pull-refresh :pulling-text="$t('下拉即可刷新')" :loosing-text="$t('释放即可刷新')" :loading-text="$t('加载中')"
+        v-model="isLoading" @refresh="onRefresh">
+        <van-list :immediate-check="false" v-model="loading" :finishedArr="finishedArr" :finishedArr-text="$t('没有更多了')"
+          @load="onLoad">
+          <div v-if="list.length === 0" class="zanwu">
+            <img src="@/assets/image/zanwu.png" alt="" />
+            <p>{{ $t('暂无订单') }}</p>
+          </div>
+          <div v-else>
+            <Items v-for="(el, eIndex) in list" :key="eIndex" :items="el" />
+          </div>
+        </van-list>
+      </van-pull-refresh>
+    </div>
+  </div>
+</template>
+
+<script>
+import { Icon, Tab, Tabs, showToast, List, PullRefresh } from 'vant'
+import listLoadMixins from '@/utils/list-load-mixins'
+import Items from './items.vue'
+import { getMerchantOrdersList } from '@/service/otc'
+export default {
+  mixins: [listLoadMixins],
+  components: {
+    [Icon.name]: Icon,
+    [Tab.name]: Tab,
+    [Tabs.name]: Tabs,
+    Items,
+    [List.name]: List,
+    [showToast.name]: showToast,
+    [PullRefresh.name]: PullRefresh,
+  },
+  created() {
+    this.get()
+  },
+  methods: {
+    get() { // 获取数据的方法需要自定义
+      showToast.loading()
+      getMerchantOrdersList(this.form).then(res => {
+        showToast.clear()
+        // console.log('承兑商订单列表', res)
+        this.handleData(res)
+      })
+    },
+    handleChange() {
+      this.form.state = this.tabList[this.activeName].value
+      this.onRefresh()
+    }
+  },
+  data() {
+    return {
+      form: {
+        direction: '', // buy sell
+        state: '' // 0未付款/1已付款/2申诉中/3已完成/4已取消/5已超时
+      },
+      active: true,
+      activeName: 0,
+      finishedArr: [
+        {
+          label: this.$t('已完成'),
+          value: 3
+        },
+        {
+          label: this.$t('已取消'),
+          value: 4
+        },
+        {
+          label: this.$t('已超时'),
+          value: 5
+        },
+      ],
+      runningArr: [
+        {
+          label: this.$t('全部'),
+          value: ''
+        },
+        {
+          label: this.$t('已付款'),
+          value: 1
+        },
+        {
+          label: this.$t('申诉中'),
+          value: 2
+        },
+      ],
+    }
+  },
+
+  watch: {
+    active(val) {
+      this.activeName = 0
+      if (val === true) {
+        this.form.state = ''
+      } else {
+        this.form.state = 3
+      }
+      this.onRefresh()
+    }
+  },
+  computed: {
+    tabList() {
+      return this.active ? this.runningArr : this.finishedArr
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.main {
+  background: rgb(245, 245, 245);
+  height: calc(100% - 160px);
+
+  .nav {
+    padding: 22px 40px;
+
+    .top-nav {
+      width: 372px;
+      height: 80px;
+      border: 1px solid #e0e0e0;
+      border-radius: 6px;
+      margin-left: 160px;
+
+      div {
+        margin: 8px;
+        height: 64px;
+        line-height: 64px;
+        text-align: center;
+        width: 48%;
+      }
+    }
+  }
+
+  ::v-deep .van-tabs__nav {
+    border-radius: 70px 70px 0 0 !important;
+  }
+
+  ::v-deep .van-tabs__line {
+    width: 52px;
+    height: 6px;
+  }
+
+  .main-c {
+    height: 100%;
+    background: #fff;
+    border-radius: 80px 80px 0px 0px;
+    overflow: auto;
+  }
+}
+
+.zanwu {
+  text-align: center;
+  font-size: 28px;
+  color: #868d9a;
+
+  img {
+    margin-top: 206px;
+    width: 157px;
+    height: 152px;
+  }
+}
+
+.btp {
+  border-top: 1px solid #484756;
+  overflow-y: auto;
+}
+
+.active {
+  background: #fff;
+}
+</style>
diff --git a/src/views/orderList/items.vue b/src/views/orderList/items.vue
new file mode 100644
index 0000000..3891250
--- /dev/null
+++ b/src/views/orderList/items.vue
@@ -0,0 +1,157 @@
+<template>
+  <div class="item-main" @click="gotoPage">
+    <div class="flex justify-between items-center buy">
+      <span class="us-buy">
+        <span v-if="items.direction === 'buy'" style="color: #5eba89">{{ $t('购买') }}</span>
+        <span v-else style="color: #e35461">{{ $t('出售') }}</span>
+        {{ items.symbol }}
+      </span>
+      <span v-if="items.direction === 'buy'">
+        <span
+          :class="{ 'blue': items.state === '0', 'yellow': items.state === '1', 'red': items.state === '2' || items.state === '5', 'green': items.state === '3' }">{{
+            arr[items.state / 1] }}</span>
+        <van-icon name="arrow" />
+      </span>
+      <span v-else>
+        <span
+          :class="{ 'blue': items.state === '0', 'yellow': items.state === '1', 'red': items.state === '2' || items.state === '5', 'green': items.state === '3' }">{{
+            arr1[items.state / 1] }}</span>
+        <van-icon name="arrow" />
+      </span>
+    </div>
+    <div class="flex justify-between items-center price-i">
+      <span>{{ $t('单价') }} {{ items.currency || currency.currency_symbol }} {{ items.symbol_value }}</span>
+      <span style="color: #b8bcc5">{{ items.time }}</span>
+    </div>
+    <div class="flex justify-between items-center price-i pd-32">
+      <span>{{ $t('数量') }} {{ (items.coin_amount / 1).toFixed(items.symbol === 'USDT' ? 2 : 4) }} {{ items.symbol
+      }}</span>
+      <span class="textColor" style="font-weight: bold">{{ items.currency }}
+        {{ (items.symbol_value * items.coin_amount / 1).toFixed(2) }}</span>
+    </div>
+    <div class="niu flex items-center">
+      <van-badge v-if="items.msg" :content="items.msg">
+        <img src="@/assets/image/Subtract.png" class="mr-20" alt="" />
+      </van-badge>
+      <img v-else src="@/assets/image/Subtract.png" class="mr-20" alt="" />
+      {{ items.c2c_user_nick_name }}
+      <!-- <img src="@/assets/image/up.png" alt="" />
+      资金安全 -->
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapState } from "vuex";
+import { Icon, Badge } from 'vant'
+
+export default {
+  props: ['items'],
+  data() {
+    return {
+      arr: [this.$t('未付款'), this.$t('已付款'), this.$t('申诉中'), this.$t('已完成'), this.$t('已取消'), this.$t('已超时')],
+      arr1: [this.$t('等待付款'), this.$t('待确认'), this.$t('申诉中'), this.$t('已完成'), this.$t('已取消'), this.$t('已超时')],
+    }
+  },
+  computed: {
+    ...mapState('home', ['currency'])
+  },
+  methods: {
+    gotoPage() { // 去到相应的页面
+      // console.log(this.items)
+      // this.$store.commit('c2c/SET_ADV_ID',this.items.id)
+      this.$store.commit('c2c/SET_ORDER_NO', this.items.order_no)
+      // return
+      if (this.items.direction === 'buy') {
+        if (this.items.state / 1 === 0 || this.items.state / 1 === 5) { // 未付款
+          this.$router.push(`/orderGeneration`)
+        } else if (this.items.state / 1 === 1) { // 已付款
+          this.$router.push('/paymentDetail')
+        } else { /// 111  其他
+          this.$router.push('/tradeOrderDetail')
+        }
+      } else {
+        if (this.items.state / 1 === 0 || this.items.state / 1 === 5) { // 未付款
+          this.$router.push(`/sellGenerate`)
+        } else if (this.items.state / 1 === 1) { // 已付款
+          this.$router.push(`/confirmedPaid`)
+          // this.$router.push('/paymentDetail?order_no=' + this.items.order_no)
+        } else { /// 111  其他
+          this.$router.push('/tradeOrderDetail')
+        }
+      }
+    }
+  },
+  components: {
+    [Icon.name]: Icon,
+    [Badge.name]: Badge,
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/css/copy2.scss";
+.item-main {
+  padding: 42px 0 66px;
+  margin: 0 30px;
+  font-size: 28px;
+  color: #868d9a;
+  border-bottom: 1px solid $line_color;
+
+  .buy {
+    margin-bottom: 40px;
+    font-size: 32px;
+
+    .us-buy {
+      color: #fff;
+    }
+  }
+
+  .price-i {
+    margin-bottom: 28px;
+  }
+
+  .pd-32 {
+    margin-bottom: 32px;
+  }
+
+  .niu {
+    width: 200px;
+    height: 57px;
+    overflow: hidden;
+    background: $tab_background;
+
+    border-radius: 50px;
+    font-size: 22px;
+    padding: 0 20px;
+
+    img {
+      width: 30px;
+      height: 30px;
+      margin-top: 6px;
+    }
+  }
+}
+
+::v-deep {
+  .van-badge--fixed {
+    top: 80%;
+  }
+}
+
+.blue {
+  color: #1D91FF;
+}
+
+.green {
+  color: #2EBD85;
+}
+
+.red {
+  color: #E35461
+}
+
+.yellow {
+  color: #E2AE27;
+}
+</style>
diff --git a/src/views/payMentMethod/list.vue b/src/views/payMentMethod/list.vue
index b46f532..fc92540 100644
--- a/src/views/payMentMethod/list.vue
+++ b/src/views/payMentMethod/list.vue
@@ -48,7 +48,7 @@
   router.push('add')
 }
 const back = () => {
-  router.push('/my/index')
+  router.go(-1)
 }
 </script>
 <style lang="scss" scoped>

--
Gitblit v1.9.3