q>DdnQ5Ky%J!#SSCdFNCPHjt#kRU3VW51zEOGO1U{I(0D{VY()K;
zOlH*Hy?cMJBuWhp4HsuJnO}l)NGVn4dEV!dfb{tlKB<*bt)Ayqv}~O7HvnLX0XX6N
z{@8Rn?MDRy$8nl0%W5;iGrsR%9rd(MCX-jhVzF<7%1=Z~rIbPXpT|^Awf_bH#)bBh
zPFGdV($&?~)x_iRFGKb4WKB)YxX#YblZEsp`ytNxjR2rqkl^`92ys(6K%DbW0AN~R
ztCX7Md7eJs3O*%)w30El9ub#?9Ix~|ujskN7<&;BpAIxcv{6bql=f8tIgXP;#J3SK
zsMNYIx>HK|K{3aU<2+p~865A(PXB0Nz+|E}x4
zOhk|Aj5S6B0MICe*coXL>DD!y&9)%o;*jt+B5IOSic(<@k2A)WAmS?kFg)~Lm!jr;
z$#LEuVvLPM#0~(M5n6wJ&tjhE{gej=C(muW9c}DCu&pVb57u?v8APOgjtq^ro<4p0
zfu5e8OjvUc(Akz_A^^Mx09S>K-jB!Qa|<=*Q|5Kt1xRmcdjy!czhnMa`Jj@?WUX!6
zUE!+~5%t7kvBs{huA_nGPawx}>Jf1(B3^0+6%nnGQa)d7i6+l$-;Id34%rYkAK2db
zY$1Dd6WM}@cZY0_Dy3!yrDO<*bN(a%=*?>x!!x=v3n5xd?UyJ(fiK3`3PfC^?{el{
zKM~z0rQD`7X(=MU8ct6{oL#61|0`f6K-!1nI1T1{bXmyf9lC)22moWv%a4g@wv_UC
zsmKK5l>%vfDwUd`l+yP;{n0`{do&OQ&TZQs6W(CuKve@|A~oHztPjmx-<<w?`<-TR{3FfNk5l
z8NXnU@B4MZ1rh*;vg}s?NL(<2;uC$UfnEZDC;lZs_v55VlZK5RJ$e-)K6196UGfis
g9U`J;Ddn4g0B$~mWvk0-k^lez07*qoM6N<$g0gXuwg3PC
literal 0
HcmV?d00001
diff --git a/app/components/itemDetail/index.vue b/app/components/itemDetail/index.vue
new file mode 100644
index 0000000..2dec729
--- /dev/null
+++ b/app/components/itemDetail/index.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
{{detailInfo?.artworkTitle}}
+
+
+
{{$t('detail.text1')}}:
+
{{detailInfo?.artwork?.artistName??'-'}}
+
+
+
{{$t('detail.text2')}}:
+
{{detailInfo?.artwork?.ruler??'-'}}
+
+
+
{{$t('detail.text3')}}*{{$t('detail.text4')}}:
+
{{detailInfo?.artwork?.length}}*{{detailInfo?.artwork?.width}}cm
+
+
+
{{$t('detail.text5')}}:
+
{{detailInfo?.artwork?.abstract??'-'}}
+
+
+
+
+
{{$t('detail.text6')}}:
+
{{detailInfo?.startPriceCurrency}} {{detailInfo?.startPrice}}
+
+
+
{{$t('home.close_price')}}:
+
{{detailInfo?.soldPriceCurrency}} {{detailInfo?.soldPrice}}
+
+
+
{{$t('detail.text7')}}:
+
+
+
+
+
+
{{ $t('detail.text11') }}
+
{{ $t('detail.text10') }}
+
+
+
{{item.index}}
+
{{item.price}}
+
+
+
+
+
+
{{$t('detail.text9')}}:
+
{{ detailInfo?.priceRuleAdd }}
+
+
+
+
+
{{ $t('art_detail_page.prompt_title')}}
+
{{ $t('art_detail_page.prompt_desc')}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/liveLoading/index.vue b/app/components/liveLoading/index.vue
new file mode 100644
index 0000000..dcc30e2
--- /dev/null
+++ b/app/components/liveLoading/index.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/liveMinWindow/createMinWindow.js b/app/components/liveMinWindow/createMinWindow.js
new file mode 100644
index 0000000..ece21af
--- /dev/null
+++ b/app/components/liveMinWindow/createMinWindow.js
@@ -0,0 +1,55 @@
+import { createApp } from 'vue'
+import MinWindow from '@/components/liveMinWindow/index.vue'
+
+let minWindowInstance = null
+
+// 创建悬浮窗
+export const showMinWindow = (snapshot, props = {}) => {
+ if (minWindowInstance) {
+ hideMinWindow()
+ }
+
+ const container = document.createElement('div')
+ container.id = 'live-min-window-container'
+ document.body.appendChild(container)
+
+ const defaultProps = {
+ snapshot,
+ onClose: () => hideMinWindow(),
+ initialPosition: {
+ top: '80px',
+ right: '16px'
+ }
+ }
+
+ const app = createApp(MinWindow, {
+ ...defaultProps,
+ ...props
+ })
+
+ app.config.errorHandler = (err) => {
+ hideMinWindow()
+ }
+
+ minWindowInstance = app.mount(container)
+ return minWindowInstance
+}
+
+export const hideMinWindow = () => {
+ if (!minWindowInstance) return
+
+ const el = minWindowInstance.$el
+ el.style.transform = 'translateY(100%)'
+ el.style.opacity = '0'
+
+ const cleanup = () => {
+ el.parentNode?.remove()
+ minWindowInstance = null
+ }
+
+ if (document.startViewTransition) {
+ document.startViewTransition(() => cleanup())
+ } else {
+ setTimeout(cleanup, 300)
+ }
+}
\ No newline at end of file
diff --git a/app/components/liveMinWindow/index.vue b/app/components/liveMinWindow/index.vue
new file mode 100644
index 0000000..7cbb252
--- /dev/null
+++ b/app/components/liveMinWindow/index.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+ 点击回到直播
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/puzzleComponent/index.vue b/app/components/puzzleComponent/index.vue
new file mode 100644
index 0000000..a95cfde
--- /dev/null
+++ b/app/components/puzzleComponent/index.vue
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ isVerifying ? '验证中...' : verifyStatus.message }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/stripe/CheckoutPage.vue b/app/components/stripe/CheckoutPage.vue
new file mode 100644
index 0000000..edb45c4
--- /dev/null
+++ b/app/components/stripe/CheckoutPage.vue
@@ -0,0 +1,331 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/stripe/CompletePage.vue b/app/components/stripe/CompletePage.vue
new file mode 100644
index 0000000..fe04a73
--- /dev/null
+++ b/app/components/stripe/CompletePage.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
{{ statusText }}
+
+
+
+
+ id
+ {{ intentId }}
+
+
+ status
+ {{ intentStatus }}
+
+
+
+
+
+ View details
+
+
+
+
+
+
Test another
+
+
+
+
\ No newline at end of file
diff --git a/app/components/waterfallFlow/index.vue b/app/components/waterfallFlow/index.vue
new file mode 100644
index 0000000..a3c5b43
--- /dev/null
+++ b/app/components/waterfallFlow/index.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/x-button/index.vue b/app/components/x-button/index.vue
new file mode 100644
index 0000000..0ce0d30
--- /dev/null
+++ b/app/components/x-button/index.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/x-image/index.vue b/app/components/x-image/index.vue
new file mode 100644
index 0000000..33c6cf9
--- /dev/null
+++ b/app/components/x-image/index.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/x-message/images/error.png b/app/components/x-message/images/error.png
new file mode 100644
index 0000000000000000000000000000000000000000..468b5208058987b2ba721a1f97d3f4cfea66813e
GIT binary patch
literal 2152
zcmV-u2$%PXP)Px-B1uF+RA@uxTWf3_R~7!wy|d$InxwS93L;QBO`3Lh)=A?gr4S?@rcGiym3asW
zS{@Zr5p^Xh@uv_TLP$lb^P?(ifQTPR2#aJB5+$NP=z}xrQm)9R7Q7oP6i8J7Wl0fO#f
zMzU2{A7%gnD=0AZcg6Wn-L!B)l>Y=llKu-^QvP`&q@nnDAo=LVu|wmg^fUr^EZMh(
zn4f0gRspOa5NTKiVD&1imD0n&U{=6I0^VezM>^97PSpFZ^8O72=55=o@%L74RD$-{
zB)YP!=P;V4m5h;q$Lgd|{Am2f3#aM%=lw>cH3ZmA^sW71-~B)k9+Dtvu#3?&=l~4G
z*!O`w_=S@>@Or&+>jA9$vYY7J#l*iMU{zEzdNmL^MS%B->6=dG!2Zx2)TB<$fVsb4
zx^MVTwoB`=sUUkbofhT)?J|a`z<OjWE3COva<=Da{eqILIc>K(fiE27l1*~V*
zv$JoS1Y2-9TB&PsU6tGo1Ltioc5AhnUI;L8f4@k-?j06H-6m$10FIF$k5vZ1+0f8z
zu}G}(4Q&$*Mll~tuC=$*(2#Z=SE#<=45yvmr(z@qOu3xUz&spC|Mx93%{d=>fhOBq
zt(Lt~h+U>YYuA-!HJEf$k5yXQ6#;A4(`H$JGG&dMgoMYz&zyAXiAqY0IlXUNL~8;z
zv6cWmxYNG>KB1NK7FO>MgZaN6nF+AOT&v#KVBR`UW_O27ps=5cUO(mgml
zKLPqn+UXr5AZczf=f`BJ0f#Isope*3^ZK0W+!^QqhdCbcJuvVs3Shz^Mo-)avuQgHZcQgOz
zfLnxxInI8abW~)M7>Fv9v0P?YXGT0$gBtKllIRnrB9(FjzFYuHA_UBTqqNg=N|M-g
zeE?RYdWLmozuh#$D&ek66g-rB3kIe%;Ha=JC#H4TYg~_jucsyb?xGki28LVORQI~$
zhb}H=0-#t{Xr)IYcT2g12Y6B{(UBNG@ZU;+PsMlMwmR1In(2&31;E-ZMN2%i&}Jbq
zt9X0T-G8K52?j{#tJ6;JKAXgYQIVg^i2yYiIknWn^3e)U2qof)@%`tEL60T-z9*RX
zMCvL4%u~y#gNI^pdEofD62U$hh#Q$OK)_d`23rz5jBeal$A9B4zpuJ4$?>WFMZe#GbVO$)$@Vzf2bfYmFP*zew2
zcD^*6*nUeZS;r)aJE8!cJ3o>o0@L!b{@5miJ
zABkBw2T+^o#hnlQDy?io8Vza3;;mbZ4zkb8DzVk&?E~wU@&ayq`Lm)DNoxb`!lnAwf@=0vzt$XOgb-UBd2pXJ6q!yl<@{9wA_*
ziTxDTO#bCRQ*%4-`^V9_O79GdXZ}o}&zU-xX5d1gRM%bOhjJdF;*u`>Xu9MfS4#zT
zUuQaXv=U%9(eous$Um5}9d(sF6cjRD)RJ>eD)=(-%wfx4nIj%EEwh#ktglMKv!;@W
z4HdQIIDz4^B@Iv)x6G-)1xS}IX^yqQCgGTJg_=SJtQsp@((2?&4sGu(0lLMM5sRuY
zEet_lZJ(O!>{!57ln{@F43sWC^rdyiBxn=Hu-p*oD!iF&EV1?M(0kS1U$ykG@L-|1
z)E2ValwmOiI!7){7MB(j%a;#lf7vc$1Evbrt`&5?x-UEEbi}@Iw0t;JEEh*>m!*h*
zD}a@z_I16$LsD@;FnuGk0`X#{mhuXK=Gs2
zb-9r#B^zGS)fCW`LAE#B2G}>nl)qUq>1@L$fSUnYS9%qXUjt|sz^EWjXN5Hac<*|4
e^K=wf@%{&9kDGr8%~WOp0000kQHW
literal 0
HcmV?d00001
diff --git a/app/components/x-message/images/info.png b/app/components/x-message/images/info.png
new file mode 100644
index 0000000000000000000000000000000000000000..96a90539d70eb7b7a48f299c93a07dc11b74c1cc
GIT binary patch
literal 932
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
+import { ref, computed } from 'vue'
+import MessageContent from './message/index.vue'
+
+const visible = ref(false)
+const messageType = ref('success')
+const messageText = ref('')
+const showIcon = ref(true)
+const customStyle = ref({})
+const title = ref({})
+const subTitle = ref({})
+
+const containerStyle = computed(() => {
+ const { top, bottom, left, right, transform, ...otherStyles } = customStyle.value || {}
+
+ const baseStyle = {
+ position: 'fixed',
+ zIndex: 9999
+ }
+
+ const horizontalPosition = left || right
+ ? { left, right }
+ : { left: '50%', transform: 'translateX(-50%)' }
+
+ const verticalPosition = {}
+ if (bottom !== undefined) {
+ verticalPosition.bottom = bottom
+ } else {
+ verticalPosition.top = top || '50px'
+ }
+
+ return {
+ ...baseStyle,
+ ...horizontalPosition,
+ ...verticalPosition,
+ ...otherStyles
+ }
+})
+
+const emit = defineEmits(['after-leave'])
+
+const showMessage = (options) => {
+ if (typeof options === 'string') {
+ messageText.value = options
+ title.value = {}
+ subTitle.value = {}
+ } else {
+ messageText.value = options.message || ''
+ title.value = options.title || {}
+ subTitle.value = options.subTitle || {}
+ }
+
+ messageType.value = options.type || 'success'
+ showIcon.value = options.icon !== false
+ customStyle.value = options.style || {}
+ visible.value = true
+
+ setTimeout(() => {
+ visible.value = false
+ }, options.duration || 2000)
+}
+
+defineExpose({ showMessage })
+
+
+
+
+
+
+
+
+
diff --git a/app/components/x-message/message/index.vue b/app/components/x-message/message/index.vue
new file mode 100644
index 0000000..dc78294
--- /dev/null
+++ b/app/components/x-message/message/index.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+ {{ message }}
+
+
+
+
+ {{ title.text }}
+
+
+ {{ subTitle.text }}
+
+
+
+
+
diff --git a/app/components/x-message/useMessage.js b/app/components/x-message/useMessage.js
new file mode 100644
index 0000000..491afcb
--- /dev/null
+++ b/app/components/x-message/useMessage.js
@@ -0,0 +1,78 @@
+import { createApp, nextTick } from 'vue'
+import MessagePopup from './index.vue'
+
+const message = {
+ success(options, duration = 2000) {
+ if (process.client) {
+ if (typeof options === 'string') {
+ this.show({ type: 'success', message: options, duration })
+ } else {
+ this.show({
+ type: 'success',
+ ...options,
+ duration
+ })
+ }
+ }
+ },
+ error(options, duration = 2000) {
+ if (process.client) {
+ if (typeof options === 'string') {
+ this.show({ type: 'error', message: options, duration })
+ } else {
+ this.show({
+ type: 'error',
+ ...options,
+ duration
+ })
+ }
+ }
+ },
+ info(options, duration = 2000) {
+ if (process.client) {
+ if (typeof options === 'string') {
+ this.show({ type: 'info', message: options, duration })
+ } else {
+ this.show({
+ type: 'error',
+ ...options,
+ duration
+ })
+ }
+ }
+ },
+ warning(options, duration = 2000) {
+ if (process.client) {
+ if (typeof options === 'string') {
+ this.show({ type: 'warning', message: options, duration })
+ } else {
+
+ this.show({
+ type: 'warning',
+ ...options,
+ duration
+ })
+ }
+ }
+ },
+ show(options) {
+ if (!process.client) return
+
+ const container = document.createElement('div')
+ document.body.appendChild(container)
+
+ const app = createApp(MessagePopup, {
+ onAfterLeave: () => {
+ app.unmount()
+ document.body.removeChild(container)
+ }
+ })
+
+ const instance = app.mount(container)
+ nextTick(() => {
+ instance.showMessage?.(options)
+ })
+ }
+}
+
+export { message }
\ No newline at end of file
diff --git a/app/components/x-popup/index.vue b/app/components/x-popup/index.vue
new file mode 100644
index 0000000..16c8e9c
--- /dev/null
+++ b/app/components/x-popup/index.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/x-van-date/index.vue b/app/components/x-van-date/index.vue
new file mode 100644
index 0000000..0c2299e
--- /dev/null
+++ b/app/components/x-van-date/index.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/x-van-select/index.vue b/app/components/x-van-select/index.vue
new file mode 100644
index 0000000..df7a53a
--- /dev/null
+++ b/app/components/x-van-select/index.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/composables/useWebSocket.ts b/app/composables/useWebSocket.ts
new file mode 100644
index 0000000..c8d0dd3
--- /dev/null
+++ b/app/composables/useWebSocket.ts
@@ -0,0 +1,21 @@
+export function useWebSocket() {
+ const { $ws } = useNuxtApp()
+ const messages = ref([])
+
+ // 监听消息
+ const onMessage = (callback: (data: any) => void) => {
+ const handler = (event: CustomEvent) => callback(event.detail)
+ window.addEventListener('ws-message', handler as EventListener)
+
+ // 返回清理函数
+ return () => {
+ window.removeEventListener('ws-message', handler as EventListener)
+ }
+ }
+
+ return {
+ ws: $ws,
+ messages,
+ onMessage
+ }
+}
\ No newline at end of file
diff --git a/app/config/index.js b/app/config/index.js
new file mode 100644
index 0000000..13dc536
--- /dev/null
+++ b/app/config/index.js
@@ -0,0 +1,2 @@
+export const useAppFooterRouteNames = ['index', 'profile']
+export const useAppHeaderRouteNames = ['index', 'profile', 'login', 'collectCode-login', 'collectCode-mine', 'payment-result', 'collectCode-signature-personal-Info', 'collectCode-signature-result','collectCode-payment-result']
diff --git a/app/config/live/index.js b/app/config/live/index.js
new file mode 100644
index 0000000..e69de29
diff --git a/app/constants/index.js b/app/constants/index.js
new file mode 100644
index 0000000..57810b2
--- /dev/null
+++ b/app/constants/index.js
@@ -0,0 +1,2 @@
+export const appName = '豐和'
+export const appDescription = '泰丰国际京都拍卖会'
diff --git a/app/layouts/404.vue b/app/layouts/404.vue
new file mode 100644
index 0000000..4b4bd16
--- /dev/null
+++ b/app/layouts/404.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+ {{ $t('error_page.back_btn') }}
+
+
+
+
diff --git a/app/layouts/default.vue b/app/layouts/default.vue
new file mode 100644
index 0000000..e1bfb3c
--- /dev/null
+++ b/app/layouts/default.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/artDetail/index.vue b/app/pages/artDetail/index.vue
new file mode 100644
index 0000000..6bd2dff
--- /dev/null
+++ b/app/pages/artDetail/index.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+ {{ $t('art_detail_page.button') }} {{detail.leftCurrency}}{{formatThousands(detail.leftPrice)}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/checkoutPage/index.vue b/app/pages/checkoutPage/index.vue
new file mode 100644
index 0000000..cf161be
--- /dev/null
+++ b/app/pages/checkoutPage/index.vue
@@ -0,0 +1,402 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/login/index.vue b/app/pages/collectCode/login/index.vue
new file mode 100644
index 0000000..e7b49fd
--- /dev/null
+++ b/app/pages/collectCode/login/index.vue
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('collectCode.login.phoneNumber') }}
+
+
+
+
+
+
+
+
+ {{ $t('collectCode.login.password') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ loginType === 0 ? $t('collectCode.login.passwordLogin') : $t('collectCode.login.codeLogin') }}
+
+
+
+
+
+ {{
+ $t('collectCode.login.getCode')
+ }}
+
+
+ {{ $t('collectCode.login.getCode') }}
+
+
+
+ {{ $t('collectCode.login.login') }}
+
+
+ {{ $t('collectCode.login.login') }}
+
+
+
+
+
+
+
+
+
+
+
{{ $t('collectCode.login.hasSendTo') }}
+
+86 {{ phoneNum }}
+
+
+
+
+
+
+
+ {{ $t('collectCode.login.reSend') }}({{ countdown }})
+
+
+ {{ $t('collectCode.login.back') }}
+
+
+
+
+ {{ $t('collectCode.login.login') }}
+
+
+ {{ $t('collectCode.login.login') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/pages/collectCode/mine/components/codeCard/index.vue b/app/pages/collectCode/mine/components/codeCard/index.vue
new file mode 100644
index 0000000..f3b709f
--- /dev/null
+++ b/app/pages/collectCode/mine/components/codeCard/index.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
¥ {{data.paidPrice}}/{{data.price}}
+
{{itemLabel(data).label}}
+
+
+
+
+
+
+
{{ $t('collectCode.qrcode.card.lotNo') }}{{ formatNumber(data.lotNo) }}
+
{{ $t('collectCode.qrcode.card.creator') }}{{ data.userName }}
+
{{ $t('collectCode.qrcode.card.createTime') }}{{data.createdAt}}
+
+
+
+
{{ $t('collectCode.qrcode.card.view') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/mine/index.vue b/app/pages/collectCode/mine/index.vue
new file mode 100644
index 0000000..c2b22ea
--- /dev/null
+++ b/app/pages/collectCode/mine/index.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
{{ userInfo.realName }}
+
{{ userInfo.telNum }}
+
+
+
+
+
+
+
{{ $t('collectCode.mine.offlineQrcode') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('collectCode.mine.add') }}
+
+
+
+
{{ $t('collectCode.mine.addQrcode.title') }}
+
+
+
+
{{ $t('collectCode.mine.addQrcode.amount') }}
+
{{ $t('collectCode.mine.addQrcode.amountUnit') }}
+
+
+
+
+
+
+
+
{{ $t('collectCode.mine.addQrcode.lotNo') }}
+
+
+
+
+
+
+
+
{{ $t('collectCode.mine.addQrcode.existingWarning') }}
+
+
+
+
{{ abnormalRow.title }}
+
{{ abnormalRow.author }}
+
+
+
+
+
+
+
+ {{ $t('collectCode.mine.addQrcode.cancel') }}
+
+
+ {{ $t('collectCode.mine.addQrcode.confirm') }}
+
+
+
+
+
+
+
diff --git a/app/pages/collectCode/payment/index.vue b/app/pages/collectCode/payment/index.vue
new file mode 100644
index 0000000..4e5e180
--- /dev/null
+++ b/app/pages/collectCode/payment/index.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
{{ payStatus === 0 ? $t('collectCode.payment.fullPayment') : $t('collectCode.payment.partialPayment') }}
+
{{ qrData.currency }}
+ {{ qrData?.leftPrice }}
+
+
+
+
+
{{ payStatus === 1 ? $t('collectCode.payment.fullPayment') : $t('collectCode.payment.partialPayment') }}
+
+
+ {{ $t('collectCode.payment.confirmPayment') }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/payment/result/index.vue b/app/pages/collectCode/payment/result/index.vue
new file mode 100644
index 0000000..451b330
--- /dev/null
+++ b/app/pages/collectCode/payment/result/index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
{{ statusLabel[resData.status] }}!
+
{{ resData.currency }}{{ resData.money }}
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/signature/panel/index.vue b/app/pages/collectCode/signature/panel/index.vue
new file mode 100644
index 0000000..592af72
--- /dev/null
+++ b/app/pages/collectCode/signature/panel/index.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+ {{ $t('collectCode.signature.back') }}
+
+
+ {{ $t('collectCode.signature.clear') }}
+
+
+ {{ $t('collectCode.signature.confirm') }}
+
+
+
+
+
diff --git a/app/pages/collectCode/signature/personal-Info/index.vue b/app/pages/collectCode/signature/personal-Info/index.vue
new file mode 100644
index 0000000..182120d
--- /dev/null
+++ b/app/pages/collectCode/signature/personal-Info/index.vue
@@ -0,0 +1,232 @@
+
+
+
+
+
+ {{ $t('personal.title') }}
+
+
+
+
+
+
{{ $t('profile.phone') }}
+
+ + {{ formData.countryCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('personal.next') }}
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/signature/protocol/index.vue b/app/pages/collectCode/signature/protocol/index.vue
new file mode 100644
index 0000000..277398b
--- /dev/null
+++ b/app/pages/collectCode/signature/protocol/index.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ {{ t('signature.tips.prePayment') }}
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+ {{ t('signature.action.agree') }}
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/signature/protocol/pdfView/index.vue b/app/pages/collectCode/signature/protocol/pdfView/index.vue
new file mode 100644
index 0000000..8d6cc4c
--- /dev/null
+++ b/app/pages/collectCode/signature/protocol/pdfView/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+ {{ $t('common.loading') }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/collectCode/signature/result/index.vue b/app/pages/collectCode/signature/result/index.vue
new file mode 100644
index 0000000..3731d47
--- /dev/null
+++ b/app/pages/collectCode/signature/result/index.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
{{ t('signature.protocol.success') }}
+
●   {{ t('collectCode.signature.resultText') }}   ●
+
+
+
{{auctionUserNo}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/countryRegion/data/index.js b/app/pages/countryRegion/data/index.js
new file mode 100644
index 0000000..81c765b
--- /dev/null
+++ b/app/pages/countryRegion/data/index.js
@@ -0,0 +1,1515 @@
+const countryCode = [{
+ 'en': 'Afghanistan',
+ 'cn': '阿富汗',
+ 'ja': 'アフガニスタン',
+ 'tw': '阿富汗',
+ 'code': 'AF',
+ 'zone': '93',
+}, {
+ 'en': 'Albania',
+ 'cn': '阿尔巴尼亚',
+ 'ja': 'アルバニア',
+ 'tw': '阿爾巴尼亞',
+ 'code': 'AL',
+ 'zone': '355',
+}, {
+ 'en': 'Algeria',
+ 'cn': '阿尔及利亚',
+ 'ja': 'アルジェリア',
+ 'tw': '阿爾及利亞',
+ 'code': 'DZ',
+ 'zone': '213',
+}, {
+ 'en': 'American Samoa',
+ 'cn': '美属萨摩亚',
+ 'ja': 'アメリカ領サモア',
+ 'tw': '美屬薩摩亞',
+ 'code': 'AS',
+ 'zone': '1684',
+}, {
+ 'en': 'Andorra',
+ 'cn': '安道尔',
+ 'ja': 'アンドラ',
+ 'tw': '安道爾',
+ 'code': 'AD',
+ 'zone': '376',
+}, {
+ 'en': 'Angola',
+ 'cn': '安哥拉',
+ 'ja': 'アンゴラ',
+ 'tw': '安哥拉',
+ 'code': 'AO',
+ 'zone': '244',
+}, {
+ 'en': 'Anguilla',
+ 'cn': '安圭拉',
+ 'ja': 'アンギラ',
+ 'tw': '安圭拉',
+ 'code': 'AI',
+ 'zone': '1264',
+}, {
+ 'en': 'Antigua and Barbuda',
+ 'cn': '安提瓜和巴布达',
+ 'ja': 'アンティグア・バーブーダ',
+ 'tw': '安提瓜和巴布達',
+ 'code': 'AG',
+ 'zone': '1268',
+}, {
+ 'en': 'Argentina',
+ 'cn': '阿根廷',
+ 'ja': 'アルゼンチン',
+ 'tw': '阿根廷',
+ 'code': 'AR',
+ 'zone': '54',
+}, {
+ 'en': 'Armenia',
+ 'cn': '亚美尼亚',
+ 'ja': 'アルメニア',
+ 'tw': '亞美尼亞',
+ 'code': 'AM',
+ 'zone': '374',
+}, {
+ 'en': 'Aruba',
+ 'cn': '阿鲁巴',
+ 'ja': 'アルバ',
+ 'tw': '阿魯巴',
+ 'code': 'AW',
+ 'zone': '297',
+}, {
+ 'en': 'Australia',
+ 'cn': '澳大利亚',
+ 'ja': 'オーストラリア',
+ 'tw': '澳大利亞',
+ 'code': 'AU',
+ 'zone': '61',
+}, {
+ 'en': 'Austria',
+ 'cn': '奥地利',
+ 'ja': 'オーストリア',
+ 'tw': '奧地利',
+ 'code': 'AT',
+ 'zone': '43',
+}, {
+ 'en': 'Azerbaijan',
+ 'cn': '阿塞拜疆',
+ 'ja': 'アゼルバイジャン',
+ 'tw': '阿塞拜疆',
+ 'code': 'AZ',
+ 'zone': '994',
+}, {
+ 'en': 'Bahamas',
+ 'cn': '巴哈马',
+ 'ja': 'バハマ',
+ 'tw': '巴哈馬',
+ 'code': 'BS',
+ 'zone': '1242',
+}, {
+ 'en': 'Bahrain',
+ 'cn': '巴林',
+ 'ja': 'バーレーン',
+ 'tw': '巴林',
+ 'code': 'BH',
+ 'zone': '973',
+}, {
+ 'en': 'Bangladesh',
+ 'cn': '孟加拉国',
+ 'ja': 'バングラデシュ',
+ 'tw': '孟加拉',
+ 'code': 'BD',
+ 'zone': '880',
+}, {
+ 'en': 'Barbados',
+ 'cn': '巴巴多斯',
+ 'ja': 'バルバドス',
+ 'tw': '巴巴多斯',
+ 'code': 'BB',
+ 'zone': '1246',
+}, {
+ 'en': 'Belarus',
+ 'cn': '白俄罗斯',
+ 'ja': 'ベラルーシ',
+ 'tw': '白俄羅斯',
+ 'code': 'BY',
+ 'zone': '375',
+}, {
+ 'en': 'Belgium',
+ 'cn': '比利时',
+ 'ja': 'ベルギー',
+ 'tw': '比利時',
+ 'code': 'BE',
+ 'zone': '32',
+}, {
+ 'en': 'Belize',
+ 'cn': '伯利兹',
+ 'ja': 'ベリーズ',
+ 'tw': '伯利茲',
+ 'code': 'BZ',
+ 'zone': '501',
+}, {
+ 'en': 'Benin',
+ 'cn': '贝宁',
+ 'ja': 'ベナン',
+ 'tw': '貝寧',
+ 'code': 'BJ',
+ 'zone': '229',
+}, {
+ 'en': 'Bermuda',
+ 'cn': '百慕大群岛',
+ 'ja': 'バミューダ',
+ 'tw': '百慕達群島',
+ 'code': 'BM',
+ 'zone': '1441',
+}, {
+ 'en': 'Bhutan',
+ 'cn': '不丹',
+ 'ja': 'ブータン',
+ 'tw': '不丹',
+ 'code': 'BT',
+ 'zone': '975',
+}, {
+ 'en': 'Bolivia',
+ 'cn': '玻利维亚',
+ 'ja': 'ボリビア',
+ 'tw': '玻利維亞',
+ 'code': 'BO',
+ 'zone': '591',
+}, {
+ 'en': 'BiH',
+ 'cn': '波斯尼亚和黑塞哥维那',
+ 'ja': 'ボスニア・ヘルツェゴビナ',
+ 'tw': '波斯尼亞和黑塞哥維那',
+ 'code': 'BA',
+ 'zone': '387',
+}, {
+ 'en': 'Botswana',
+ 'cn': '博茨瓦纳',
+ 'ja': 'ボツワナ',
+ 'tw': '博茨瓦納',
+ 'code': 'BW',
+ 'zone': '267',
+}, {
+ 'en': 'Brazil',
+ 'cn': '巴西',
+ 'ja': 'ブラジル',
+ 'tw': '巴西',
+ 'code': 'BR',
+ 'zone': '55',
+}, {
+ 'en': 'Brunei',
+ 'cn': '文莱',
+ 'ja': 'ブルネイ',
+ 'tw': '汶萊',
+ 'code': 'BN',
+ 'zone': '673',
+}, {
+ 'en': 'Bulgaria',
+ 'cn': '保加利亚',
+ 'ja': 'ブルガリア',
+ 'tw': '保加利亞',
+ 'code': 'BG',
+ 'zone': '359',
+}, {
+ 'en': 'Burkina Faso',
+ 'cn': '布基纳法索',
+ 'ja': 'ブルキナファソ',
+ 'tw': '布基納法索',
+ 'code': 'BF',
+ 'zone': '226',
+}, {
+ 'en': 'Burundi',
+ 'cn': '布隆迪',
+ 'ja': 'ブルンジ',
+ 'tw': '布隆迪',
+ 'code': 'BI',
+ 'zone': '257',
+}, {
+ 'en': 'Cambodia',
+ 'cn': '柬埔寨',
+ 'ja': 'カンボジア',
+ 'tw': '柬埔寨',
+ 'code': 'KH',
+ 'zone': '855',
+}, {
+ 'en': 'Cameroon',
+ 'cn': '喀麦隆',
+ 'ja': 'カメルーン',
+ 'tw': '喀麥隆',
+ 'code': 'CM',
+ 'zone': '237',
+}, {
+ 'en': 'Canada',
+ 'cn': '加拿大',
+ 'ja': 'カナダ',
+ 'tw': '加拿大',
+ 'code': 'CA',
+ 'zone': '1',
+}, {
+ 'en': 'Cape Verde',
+ 'cn': '开普',
+ 'ja': 'カーボベルデ',
+ 'tw': '佛得角',
+ 'code': 'CV',
+ 'zone': '238',
+}, {
+ 'en': 'Cayman Islands',
+ 'cn': '开曼群岛',
+ 'ja': 'ケイマン諸島',
+ 'tw': '開曼群島',
+ 'code': 'KY',
+ 'zone': '1345',
+}, {
+ 'en': 'Central African Republic',
+ 'cn': '中非共和国',
+ 'ja': '中央アフリカ共和国',
+ 'tw': '中非共和國',
+ 'code': 'CF',
+ 'zone': '236',
+}, {
+ 'en': 'Chad',
+ 'cn': '乍得',
+ 'ja': 'チャド',
+ 'tw': '乍得',
+ 'code': 'TD',
+ 'zone': '235',
+}, {
+ 'en': 'Chile',
+ 'cn': '智利',
+ 'ja': 'チリ',
+ 'tw': '智利',
+ 'code': 'CL',
+ 'zone': '56',
+}, {
+ 'en': 'China',
+ 'cn': '中国大陆',
+ 'ja': '中国',
+ 'tw': '中國',
+ 'code': 'CN',
+ 'zone': '86',
+}, {
+ 'en': 'Colombia',
+ 'cn': '哥伦比亚',
+ 'ja': 'コロンビア',
+ 'tw': '哥倫比亞',
+ 'code': 'CO',
+ 'zone': '57',
+}, {
+ 'en': 'Comoros',
+ 'cn': '科摩罗',
+ 'ja': 'コモロ',
+ 'tw': '科摩羅',
+ 'code': 'KM',
+ 'zone': '269',
+}, {
+ 'en': 'Cook Islands',
+ 'cn': '库克群岛',
+ 'ja': 'クック諸島',
+ 'tw': '庫克群島',
+ 'code': 'CK',
+ 'zone': '682',
+}, {
+ 'en': 'Costa Rica',
+ 'cn': '哥斯达黎加',
+ 'ja': 'コスタリカ',
+ 'tw': '哥斯達黎加',
+ 'code': 'CR',
+ 'zone': '506',
+}, {
+ 'en': 'Croatia',
+ 'cn': '克罗地亚',
+ 'ja': 'クロアチア',
+ 'tw': '克羅地亞',
+ 'code': 'HR',
+ 'zone': '385',
+}, {
+ 'en': 'Cuba',
+ 'cn': '古巴',
+ 'ja': 'キューバ',
+ 'tw': '古巴',
+ 'code': 'CU',
+ 'zone': '53',
+}, {
+ 'en': 'Curacao',
+ 'cn': '库拉索',
+ 'ja': 'キュラソー',
+ 'tw': '庫拉索',
+ 'code': 'CW',
+ 'zone': '599',
+}, {
+ 'en': 'Cyprus',
+ 'cn': '塞浦路斯',
+ 'ja': 'キプロス',
+ 'tw': '塞浦路斯',
+ 'code': 'CY',
+ 'zone': '357',
+}, {
+ 'en': 'Czech',
+ 'cn': '捷克',
+ 'ja': 'チェコ',
+ 'tw': '捷克',
+ 'code': 'CZ',
+ 'zone': '420',
+}, {
+ 'en': 'DRC',
+ 'cn': '刚果民主共和国',
+ 'ja': 'コンゴ民主共和国',
+ 'tw': '剛果民主共和國',
+ 'code': 'CD',
+ 'zone': '243',
+}, {
+ 'en': 'Denmark',
+ 'cn': '丹麦',
+ 'ja': 'デンマーク',
+ 'tw': '丹麥',
+ 'code': 'DK',
+ 'zone': '45',
+}, {
+ 'en': 'Djibouti',
+ 'cn': '吉布提',
+ 'ja': 'ジブチ',
+ 'tw': '吉布提',
+ 'code': 'DJ',
+ 'zone': '253',
+}, {
+ 'en': 'Dominica',
+ 'cn': '多米尼加',
+ 'ja': 'ドミニカ',
+ 'tw': '多米尼克',
+ 'code': 'DM',
+ 'zone': '1767',
+}, {
+ 'en': 'Dominican Republic',
+ 'cn': '多米尼加共和国',
+ 'ja': 'ドミニカ共和国',
+ 'tw': '多明尼加共和國',
+ 'code': 'DO',
+ 'zone': '1809',
+}, {
+ 'en': 'Ecuador',
+ 'cn': '厄瓜多尔',
+ 'ja': 'エクアドル',
+ 'tw': '厄瓜多爾',
+ 'code': 'EC',
+ 'zone': '593',
+}, {
+ 'en': 'Egypt',
+ 'cn': '埃及',
+ 'ja': 'エジプト',
+ 'tw': '埃及',
+ 'code': 'EG',
+ 'zone': '20',
+}, {
+ 'en': 'El Salvador',
+ 'cn': '萨尔瓦多',
+ 'ja': 'エルサルバドル',
+ 'tw': '薩爾瓦多',
+ 'code': 'SV',
+ 'zone': '503',
+}, {
+ 'en': 'Equatorial Guinea',
+ 'cn': '赤道几内亚',
+ 'ja': '赤道ギニア',
+ 'tw': '赤道幾內亞',
+ 'code': 'GQ',
+ 'zone': '240',
+}, {
+ 'en': 'Eritrea',
+ 'cn': '厄立特里亚',
+ 'ja': 'エリトリア',
+ 'tw': '厄立特里亞',
+ 'code': 'ER',
+ 'zone': '291',
+}, {
+ 'en': 'Estonia',
+ 'cn': '爱沙尼亚',
+ 'ja': 'エストニア',
+ 'tw': '愛沙尼亞',
+ 'code': 'EE',
+ 'zone': '372',
+}, {
+ 'en': 'Ethiopia',
+ 'cn': '埃塞俄比亚',
+ 'ja': 'エチオピア',
+ 'tw': '埃塞俄比亞',
+ 'code': 'ET',
+ 'zone': '251',
+}, {
+ 'en': 'Faroe Islands',
+ 'cn': '法罗群岛',
+ 'ja': 'フェロー諸島',
+ 'tw': '法羅群島',
+ 'code': 'FO',
+ 'zone': '298',
+}, {
+ 'en': 'Fiji',
+ 'cn': '斐济',
+ 'ja': 'フィジー',
+ 'tw': '斐濟',
+ 'code': 'FJ',
+ 'zone': '679',
+}, {
+ 'en': 'Finland',
+ 'cn': '芬兰',
+ 'ja': 'フィンランド',
+ 'tw': '芬蘭',
+ 'code': 'FI',
+ 'zone': '358',
+}, {
+ 'en': 'France',
+ 'cn': '法国',
+ 'ja': 'フランス',
+ 'tw': '法國',
+ 'code': 'FR',
+ 'zone': '33',
+}, {
+ 'en': 'French Guiana',
+ 'cn': '法属圭亚那',
+ 'ja': 'フランス領ギアナ',
+ 'tw': '法屬圭亞那',
+ 'code': 'GF',
+ 'zone': '594',
+}, {
+ 'en': 'French Polynesia',
+ 'cn': '法属波利尼西亚',
+ 'ja': 'フランス領ポリネシア',
+ 'tw': '法屬波利尼西亞',
+ 'code': 'PF',
+ 'zone': '689',
+}, {
+ 'en': 'Gabon',
+ 'cn': '加蓬',
+ 'ja': 'ガボン',
+ 'tw': '加蓬',
+ 'code': 'GA',
+ 'zone': '241',
+}, {
+ 'en': 'Gambia',
+ 'cn': '冈比亚',
+ 'ja': 'ガンビア',
+ 'tw': '岡比亞',
+ 'code': 'GM',
+ 'zone': '220',
+}, {
+ 'en': 'Georgia',
+ 'cn': '格鲁吉亚',
+ 'ja': 'ジョージア',
+ 'tw': '格魯吉亞',
+ 'code': 'GE',
+ 'zone': '995',
+}, {
+ 'en': 'Germany',
+ 'cn': '德国',
+ 'ja': 'ドイツ',
+ 'tw': '德國',
+ 'code': 'DE',
+ 'zone': '49',
+}, {
+ 'en': 'Ghana',
+ 'cn': '加纳',
+ 'ja': 'ガーナ',
+ 'tw': '加納',
+ 'code': 'GH',
+ 'zone': '233',
+}, {
+ 'en': 'Gibraltar',
+ 'cn': '直布罗陀',
+ 'ja': 'ジブラルタル',
+ 'tw': '直布羅陀',
+ 'code': 'GI',
+ 'zone': '350',
+}, {
+ 'en': 'Greece',
+ 'cn': '希腊',
+ 'ja': 'ギリシャ',
+ 'tw': '希臘',
+ 'code': 'GR',
+ 'zone': '30',
+}, {
+ 'en': 'Greenland',
+ 'cn': '格陵兰岛',
+ 'ja': 'グリーンランド',
+ 'tw': '格陵蘭',
+ 'code': 'GL',
+ 'zone': '299',
+}, {
+ 'en': 'Grenada',
+ 'cn': '格林纳达',
+ 'ja': 'グレナダ',
+ 'tw': '格林納達',
+ 'code': 'GD',
+ 'zone': '1473',
+}, {
+ 'en': 'Guadeloupe',
+ 'cn': '瓜德罗普岛',
+ 'ja': 'グアドループ',
+ 'tw': '瓜德羅普',
+ 'code': 'GP',
+ 'zone': '590',
+}, {
+ 'en': 'Guam',
+ 'cn': '关岛',
+ 'ja': 'グアム',
+ 'tw': '關島',
+ 'code': 'GU',
+ 'zone': '1671',
+}, {
+ 'en': 'Guatemala',
+ 'cn': '瓜地马拉',
+ 'ja': 'グアテマラ',
+ 'tw': '危地馬拉',
+ 'code': 'GT',
+ 'zone': '502',
+}, {
+ 'en': 'Guinea',
+ 'cn': '几内亚',
+ 'ja': 'ギニア',
+ 'tw': '幾內亞',
+ 'code': 'GN',
+ 'zone': '224',
+}, {
+ 'en': 'Guinea-Bissau',
+ 'cn': '几内亚比绍共和国',
+ 'ja': 'ギニアビサウ',
+ 'tw': '幾內亞比紹',
+ 'code': 'GW',
+ 'zone': '245',
+}, {
+ 'en': 'Guyana',
+ 'cn': '圭亚那',
+ 'ja': 'ガイアナ',
+ 'tw': '圭亞那',
+ 'code': 'GY',
+ 'zone': '592',
+}, {
+ 'en': 'Haiti',
+ 'cn': '海地',
+ 'ja': 'ハイチ',
+ 'tw': '海地',
+ 'code': 'HT',
+ 'zone': '509',
+}, {
+ 'en': 'Honduras',
+ 'cn': '洪都拉斯',
+ 'ja': 'ホンジュラス',
+ 'tw': '洪都拉斯',
+ 'code': 'HN',
+ 'zone': '504',
+}, {
+ 'en': 'Hong Kong',
+ 'cn': '中国香港',
+ 'ja': '香港',
+ 'tw': '香港',
+ 'code': 'HK',
+ 'zone': '852',
+}, {
+ 'en': 'Hungary',
+ 'cn': '匈牙利',
+ 'ja': 'ハンガリー',
+ 'tw': '匈牙利',
+ 'code': 'HU',
+ 'zone': '36',
+}, {
+ 'en': 'Iceland',
+ 'cn': '冰岛',
+ 'ja': 'アイスランド',
+ 'tw': '冰島',
+ 'code': 'IS',
+ 'zone': '354',
+}, {
+ 'en': 'India',
+ 'cn': '印度',
+ 'ja': 'インド',
+ 'tw': '印度',
+ 'code': 'IN',
+ 'zone': '91',
+}, {
+ 'en': 'Indonesia',
+ 'cn': '印度尼西亚',
+ 'ja': 'インドネシア',
+ 'tw': '印度尼西亞',
+ 'code': 'ID',
+ 'zone': '62',
+}, {
+ 'en': 'Iran',
+ 'cn': '伊朗',
+ 'ja': 'イラン',
+ 'tw': '伊朗',
+ 'code': 'IR',
+ 'zone': '98',
+}, {
+ 'en': 'Iraq',
+ 'cn': '伊拉克',
+ 'ja': 'イラク',
+ 'tw': '伊拉克',
+ 'code': 'IQ',
+ 'zone': '964',
+}, {
+ 'en': 'Ireland',
+ 'cn': '爱尔兰',
+ 'ja': 'アイルランド',
+ 'tw': '愛爾蘭',
+ 'code': 'IE',
+ 'zone': '353',
+}, {
+ 'en': 'Israel',
+ 'cn': '以色列',
+ 'ja': 'イスラエル',
+ 'tw': '以色列',
+ 'code': 'IL',
+ 'zone': '972',
+}, {
+ 'en': 'Italy',
+ 'cn': '意大利',
+ 'ja': 'イタリア',
+ 'tw': '意大利',
+ 'code': 'IT',
+ 'zone': '39',
+}, {
+ 'en': 'Ivory Coast',
+ 'cn': '象牙海岸',
+ 'ja': 'コートジボワール',
+ 'tw': '象牙海岸',
+ 'code': 'CI',
+ 'zone': '225',
+}, {
+ 'en': 'Jamaica',
+ 'cn': '牙买加',
+ 'ja': 'ジャマイカ',
+ 'tw': '牙買加',
+ 'code': 'JM',
+ 'zone': '1876',
+}, {
+ 'en': 'Japan',
+ 'cn': '日本',
+ 'ja': '日本',
+ 'tw': '日本',
+ 'code': 'JP',
+ 'zone': '81',
+}, {
+ 'en': 'Jordan',
+ 'cn': '约旦',
+ 'ja': 'ヨルダン',
+ 'tw': '約旦',
+ 'code': 'JO',
+ 'zone': '962',
+}, {
+ 'en': 'Kazakhstan',
+ 'cn': '哈萨克斯坦',
+ 'ja': 'カザフスタン',
+ 'tw': '哈薩克斯坦',
+ 'code': 'KZ',
+ 'zone': '7',
+}, {
+ 'en': 'Kenya',
+ 'cn': '肯尼亚',
+ 'ja': 'ケニア',
+ 'tw': '肯尼亞',
+ 'code': 'KE',
+ 'zone': '254',
+}, {
+ 'en': 'Kiribati',
+ 'cn': '基里巴斯',
+ 'ja': 'キリバス',
+ 'tw': '基里巴斯',
+ 'code': 'KI',
+ 'zone': '686',
+}, {
+ 'en': 'Kuwait',
+ 'cn': '科威特',
+ 'ja': 'クウェート',
+ 'tw': '科威特',
+ 'code': 'KW',
+ 'zone': '965',
+}, {
+ 'en': 'Kyrgyzstan',
+ 'cn': '吉尔吉斯斯坦',
+ 'ja': 'キルギス',
+ 'tw': '吉爾吉斯斯坦',
+ 'code': 'KG',
+ 'zone': '996',
+}, {
+ 'en': 'Laos',
+ 'cn': '老挝',
+ 'ja': 'ラオス',
+ 'tw': '老撾',
+ 'code': 'LA',
+ 'zone': '856',
+}, {
+ 'en': 'Latvia',
+ 'cn': '拉脱维亚',
+ 'ja': 'ラトビア',
+ 'tw': '拉脫維亞',
+ 'code': 'LV',
+ 'zone': '371',
+}, {
+ 'en': 'Lebanon',
+ 'cn': '黎巴嫩',
+ 'ja': 'レバノン',
+ 'tw': '黎巴嫩',
+ 'code': 'LB',
+ 'zone': '961',
+}, {
+ 'en': 'Lesotho',
+ 'cn': '莱索托',
+ 'ja': 'レソト',
+ 'tw': '萊索托',
+ 'code': 'LS',
+ 'zone': '266',
+}, {
+ 'en': 'Liberia',
+ 'cn': '利比里亚',
+ 'ja': 'リベリア',
+ 'tw': '利比里亞',
+ 'code': 'LR',
+ 'zone': '231',
+}, {
+ 'en': 'Libya',
+ 'cn': '利比亚',
+ 'ja': 'リビア',
+ 'tw': '利比亞',
+ 'code': 'LY',
+ 'zone': '218',
+}, {
+ 'en': 'Liechtenstein',
+ 'cn': '列支敦士登',
+ 'ja': 'リヒテンシュタイン',
+ 'tw': '列支敦士登',
+ 'code': 'LI',
+ 'zone': '423',
+}, {
+ 'en': 'Lithuania',
+ 'cn': '立陶宛',
+ 'ja': 'リトアニア',
+ 'tw': '立陶宛',
+ 'code': 'LT',
+ 'zone': '370',
+}, {
+ 'en': 'Luxembourg',
+ 'cn': '卢森堡',
+ 'ja': 'ルクセンブルク',
+ 'tw': '盧森堡',
+ 'code': 'LU',
+ 'zone': '352',
+}, {
+ 'en': 'Macau',
+ 'cn': '中国澳门',
+ 'ja': 'マカオ',
+ 'tw': '澳門',
+ 'code': 'MO',
+ 'zone': '853',
+}, {
+ 'en': 'Macedonia',
+ 'cn': '马其顿',
+ 'ja': 'マケドニア',
+ 'tw': '馬其頓',
+ 'code': 'MK',
+ 'zone': '389',
+}, {
+ 'en': 'Madagascar',
+ 'cn': '马达加斯加',
+ 'ja': 'マダガスカル',
+ 'tw': '馬達加斯加',
+ 'code': 'MG',
+ 'zone': '261',
+}, {
+ 'en': 'Malawi',
+ 'cn': '马拉维',
+ 'ja': 'マラウイ',
+ 'tw': '馬拉維',
+ 'code': 'MW',
+ 'zone': '265',
+}, {
+ 'en': 'Malaysia',
+ 'cn': '马来西亚',
+ 'ja': 'マレーシア',
+ 'tw': '馬來西亞',
+ 'code': 'MY',
+ 'zone': '60',
+}, {
+ 'en': 'Maldives',
+ 'cn': '马尔代夫',
+ 'ja': 'モルディブ',
+ 'tw': '馬爾代夫',
+ 'code': 'MV',
+ 'zone': '960',
+}, {
+ 'en': 'Mali',
+ 'cn': '马里',
+ 'ja': 'マリ',
+ 'tw': '馬里',
+ 'code': 'ML',
+ 'zone': '223',
+}, {
+ 'en': 'Malta',
+ 'cn': '马耳他',
+ 'ja': 'マルタ',
+ 'tw': '馬耳他',
+ 'code': 'MT',
+ 'zone': '356',
+}, {
+ 'en': 'Martinique',
+ 'cn': '马提尼克',
+ 'ja': 'マルティニーク',
+ 'tw': '馬提尼克',
+ 'code': 'MQ',
+ 'zone': '596',
+}, {
+ 'en': 'Mauritania',
+ 'cn': '毛里塔尼亚',
+ 'ja': 'モーリタニア',
+ 'tw': '毛里塔尼亞',
+ 'code': 'MR',
+ 'zone': '222',
+}, {
+ 'en': 'Mauritius',
+ 'cn': '毛里求斯',
+ 'ja': 'モーリシャス',
+ 'tw': '毛里求斯',
+ 'code': 'MU',
+ 'zone': '230',
+}, {
+ 'en': 'Mayotte',
+ 'cn': '马约特',
+ 'ja': 'マヨット',
+ 'tw': '馬約特',
+ 'code': 'YT',
+ 'zone': '269',
+}, {
+ 'en': 'Mexico',
+ 'cn': '墨西哥',
+ 'ja': 'メキシコ',
+ 'tw': '墨西哥',
+ 'code': 'MX',
+ 'zone': '52',
+}, {
+ 'en': 'Moldova',
+ 'cn': '摩尔多瓦',
+ 'ja': 'モルドバ',
+ 'tw': '摩爾多瓦',
+ 'code': 'MD',
+ 'zone': '373',
+}, {
+ 'en': 'Monaco',
+ 'cn': '摩纳哥',
+ 'ja': 'モナコ',
+ 'tw': '摩納哥',
+ 'code': 'MC',
+ 'zone': '377',
+}, {
+ 'en': 'Mongolia',
+ 'cn': '蒙古',
+ 'ja': 'モンゴル',
+ 'tw': '蒙古',
+ 'code': 'MN',
+ 'zone': '976',
+}, {
+ 'en': 'Montenegro',
+ 'cn': '黑山',
+ 'ja': 'モンテネグロ',
+ 'tw': '黑山',
+ 'code': 'ME',
+ 'zone': '382',
+}, {
+ 'en': 'Montserrat',
+ 'cn': '蒙特塞拉特岛',
+ 'ja': 'モントセラト',
+ 'tw': '蒙特塞拉特島',
+ 'code': 'MS',
+ 'zone': '1664',
+}, {
+ 'en': 'Morocco',
+ 'cn': '摩洛哥',
+ 'ja': 'モロッコ',
+ 'tw': '摩洛哥',
+ 'code': 'MA',
+ 'zone': '212',
+}, {
+ 'en': 'Mozambique',
+ 'cn': '莫桑比克',
+ 'ja': 'モザンビーク',
+ 'tw': '莫桑比克',
+ 'code': 'MZ',
+ 'zone': '258',
+}, {
+ 'en': 'Myanmar',
+ 'cn': '缅甸',
+ 'ja': 'ミャンマー',
+ 'tw': '緬甸',
+ 'code': 'MM',
+ 'zone': '95',
+}, {
+ 'en': 'Namibia',
+ 'cn': '纳米比亚',
+ 'ja': 'ナミビア',
+ 'tw': '納米比亞',
+ 'code': 'NA',
+ 'zone': '264',
+}, {
+ 'en': 'Nepal',
+ 'cn': '尼泊尔',
+ 'ja': 'ネパール',
+ 'tw': '尼泊爾',
+ 'code': 'NP',
+ 'zone': '977',
+}, {
+ 'en': 'Netherlands',
+ 'cn': '荷兰',
+ 'ja': 'オランダ',
+ 'tw': '荷蘭',
+ 'code': 'NL',
+ 'zone': '31',
+}, {
+ 'en': 'New Caledonia',
+ 'cn': '新喀里多尼亚',
+ 'ja': 'ニューカレドニア',
+ 'tw': '新喀里多尼亞',
+ 'code': 'NC',
+ 'zone': '687',
+}, {
+ 'en': 'New Zealand',
+ 'cn': '新西兰',
+ 'ja': 'ニュージーランド',
+ 'tw': '新西蘭',
+ 'code': 'NZ',
+ 'zone': '64',
+}, {
+ 'en': 'Nicaragua',
+ 'cn': '尼加拉瓜',
+ 'ja': 'ニカラグア',
+ 'tw': '尼加拉瓜',
+ 'code': 'NI',
+ 'zone': '505',
+}, {
+ 'en': 'Niger',
+ 'cn': '尼日尔',
+ 'ja': 'ニジェール',
+ 'tw': '尼日爾',
+ 'code': 'NE',
+ 'zone': '227',
+}, {
+ 'en': 'Nigeria',
+ 'cn': '尼日利亚',
+ 'ja': 'ナイジェリア',
+ 'tw': '尼日利亞',
+ 'code': 'NG',
+ 'zone': '234',
+}, {
+ 'en': 'Norway',
+ 'cn': '挪威',
+ 'ja': 'ノルウェー',
+ 'tw': '挪威',
+ 'code': 'NO',
+ 'zone': '47',
+}, {
+ 'en': 'Oman',
+ 'cn': '阿曼',
+ 'ja': 'オマーン',
+ 'tw': '阿曼',
+ 'code': 'OM',
+ 'zone': '968',
+}, {
+ 'en': 'Pakistan',
+ 'cn': '巴基斯坦',
+ 'ja': 'パキスタン',
+ 'tw': '巴基斯坦',
+ 'code': 'PK',
+ 'zone': '92',
+}, {
+ 'en': 'Palau',
+ 'cn': '帕劳',
+ 'ja': 'パラオ',
+ 'tw': '帕勞',
+ 'code': 'PW',
+ 'zone': '680',
+}, {
+ 'en': 'Palestine',
+ 'cn': '巴勒斯坦',
+ 'ja': 'パレスチナ',
+ 'tw': '巴勒斯坦',
+ 'code': 'BL',
+ 'zone': '970',
+}, {
+ 'en': 'Panama',
+ 'cn': '巴拿马',
+ 'ja': 'パナマ',
+ 'tw': '巴拿馬',
+ 'code': 'PA',
+ 'zone': '507',
+}, {
+ 'en': 'Papua New Guinea',
+ 'cn': '巴布亚新几内亚',
+ 'ja': 'パプアニューギニア',
+ 'tw': '巴布亞新幾內亞',
+ 'code': 'PG',
+ 'zone': '675',
+}, {
+ 'en': 'Paraguay',
+ 'cn': '巴拉圭',
+ 'ja': 'パラグアイ',
+ 'tw': '巴拉圭',
+ 'code': 'PY',
+ 'zone': '595',
+}, {
+ 'en': 'Peru',
+ 'cn': '秘鲁',
+ 'ja': 'ペルー',
+ 'tw': '秘魯',
+ 'code': 'PE',
+ 'zone': '51',
+}, {
+ 'en': 'Philippines',
+ 'cn': '菲律宾',
+ 'ja': 'フィリピン',
+ 'tw': '菲律賓',
+ 'code': 'PH',
+ 'zone': '63',
+}, {
+ 'en': 'Poland',
+ 'cn': '波兰',
+ 'ja': 'ポーランド',
+ 'tw': '波蘭',
+ 'code': 'PL',
+ 'zone': '48',
+}, {
+ 'en': 'Portugal',
+ 'cn': '葡萄牙',
+ 'ja': 'ポルトガル',
+ 'tw': '葡萄牙',
+ 'code': 'PT',
+ 'zone': '351',
+}, {
+ 'en': 'Puerto Rico',
+ 'cn': '波多黎各',
+ 'ja': 'プエルトリコ',
+ 'tw': '波多黎各',
+ 'code': 'PR',
+ 'zone': '1787',
+}, {
+ 'en': 'Qatar',
+ 'cn': '卡塔尔',
+ 'ja': 'カタール',
+ 'tw': '卡塔爾',
+ 'code': 'QA',
+ 'zone': '974',
+}, {
+ 'en': 'Republic Of The Congo',
+ 'cn': '刚果共和国',
+ 'ja': 'コンゴ共和国',
+ 'tw': '剛果共和國',
+ 'code': 'CG',
+ 'zone': '242',
+}, {
+ 'en': 'Réunion Island',
+ 'cn': '留尼汪',
+ 'ja': 'レユニオン',
+ 'tw': '留尼汪',
+ 'code': 'RE',
+ 'zone': '262',
+}, {
+ 'en': 'Romania',
+ 'cn': '罗马尼亚',
+ 'ja': 'ルーマニア',
+ 'tw': '羅馬尼亞',
+ 'code': 'RO',
+ 'zone': '40',
+}, {
+ 'en': 'Russia',
+ 'cn': '俄罗斯',
+ 'ja': 'ロシア',
+ 'tw': '俄羅斯',
+ 'code': 'RU',
+ 'zone': '7',
+}, {
+ 'en': 'Rwanda',
+ 'cn': '卢旺达',
+ 'ja': 'ルワンダ',
+ 'tw': '盧旺達',
+ 'code': 'RW',
+ 'zone': '250',
+}, {
+ 'en': 'Saint Kitts and Nevis',
+ 'cn': '圣基茨和尼维斯',
+ 'ja': 'セントクリストファー・ネイビス',
+ 'tw': '聖基茨和尼維斯',
+ 'code': 'KN',
+ 'zone': '1869',
+}, {
+ 'en': 'Saint Lucia',
+ 'cn': '圣露西亚',
+ 'ja': 'セントルシア',
+ 'tw': '聖露西亞',
+ 'code': 'LC',
+ 'zone': '1758',
+}, {
+ 'en': 'Saint Pierre and Miquelon',
+ 'cn': '圣彼埃尔和密克隆岛',
+ 'ja': 'サンピエール島・ミクロン島',
+ 'tw': '聖彼埃爾和密克隆島',
+ 'code': 'PM',
+ 'zone': '508',
+}, {
+ 'en': 'Saint Vincent and The Grenadines',
+ 'cn': '圣文森特和格林纳丁斯',
+ 'ja': 'セントビンセント・グレナディーン',
+ 'tw': '聖文森特和格林納丁斯',
+ 'code': 'VC',
+ 'zone': '1784',
+}, {
+ 'en': 'Samoa',
+ 'cn': '萨摩亚',
+ 'ja': 'サモア',
+ 'tw': '薩摩亞',
+ 'code': 'WS',
+ 'zone': '685',
+}, {
+ 'en': 'San Marino',
+ 'cn': '圣马力诺',
+ 'ja': 'サンマリノ',
+ 'tw': '聖馬力諾',
+ 'code': 'SM',
+ 'zone': '378',
+}, {
+ 'en': 'Sao Tome and Principe',
+ 'cn': '圣多美和普林西比',
+ 'ja': 'サントメ・プリンシペ',
+ 'tw': '聖多美和普林西比',
+ 'code': 'ST',
+ 'zone': '239',
+}, {
+ 'en': 'Saudi Arabia',
+ 'cn': '沙特阿拉伯',
+ 'ja': 'サウジアラビア',
+ 'tw': '沙特阿拉伯',
+ 'code': 'SA',
+ 'zone': '966',
+}, {
+ 'en': 'Senegal',
+ 'cn': '塞内加尔',
+ 'ja': 'セネガル',
+ 'tw': '塞內加爾',
+ 'code': 'SN',
+ 'zone': '221',
+}, {
+ 'en': 'Serbia',
+ 'cn': '塞尔维亚',
+ 'ja': 'セルビア',
+ 'tw': '塞爾維亞',
+ 'code': 'RS',
+ 'zone': '381',
+}, {
+ 'en': 'Seychelles',
+ 'cn': '塞舌尔',
+ 'ja': 'セーシェル',
+ 'tw': '塞舌爾',
+ 'code': 'SC',
+ 'zone': '248',
+}, {
+ 'en': 'Sierra Leone',
+ 'cn': '塞拉利昂',
+ 'ja': 'シエラレオネ',
+ 'tw': '塞拉利昂',
+ 'code': 'SL',
+ 'zone': '232',
+}, {
+ 'en': 'Singapore',
+ 'cn': '新加坡',
+ 'ja': 'シンガポール',
+ 'tw': '新加坡',
+ 'code': 'SG',
+ 'zone': '65',
+}, {
+ 'en': 'Saint Maarten (Dutch Part)',
+ 'cn': '圣马丁岛(荷兰部分)',
+ 'ja': 'シント・マールテン(オランダ領)',
+ 'tw': '聖馬丁島(荷蘭部分)',
+ 'code': 'SX',
+ 'zone': '1721',
+}, {
+ 'en': 'Slovakia',
+ 'cn': '斯洛伐克',
+ 'ja': 'スロバキア',
+ 'tw': '斯洛伐克',
+ 'code': 'SK',
+ 'zone': '421',
+}, {
+ 'en': 'Slovenia',
+ 'cn': '斯洛文尼亚',
+ 'ja': 'スロベニア',
+ 'tw': '斯洛文尼亞',
+ 'code': 'SI',
+ 'zone': '386',
+}, {
+ 'en': 'Solomon Islands',
+ 'cn': '所罗门群岛',
+ 'ja': 'ソロモン諸島',
+ 'tw': '所羅門群島',
+ 'code': 'SB',
+ 'zone': '677',
+}, {
+ 'en': 'Somalia',
+ 'cn': '索马里',
+ 'ja': 'ソマリア',
+ 'tw': '索馬里',
+ 'code': 'SO',
+ 'zone': '252',
+}, {
+ 'en': 'South Africa',
+ 'cn': '南非',
+ 'ja': '南アフリカ',
+ 'tw': '南非',
+ 'code': 'ZA',
+ 'zone': '27',
+}, {
+ 'en': 'South Korea',
+ 'cn': '韩国',
+ 'ja': '韓国',
+ 'tw': '韓國',
+ 'code': 'KR',
+ 'zone': '82',
+}, {
+ 'en': 'Spain',
+ 'cn': '西班牙',
+ 'ja': 'スペイン',
+ 'tw': '西班牙',
+ 'code': 'ES',
+ 'zone': '34',
+}, {
+ 'en': 'Sri Lanka',
+ 'cn': '斯里兰卡',
+ 'ja': 'スリランカ',
+ 'tw': '斯里蘭卡',
+ 'code': 'LK',
+ 'zone': '94',
+}, {
+ 'en': 'Sudan',
+ 'cn': '苏丹',
+ 'ja': 'スーダン',
+ 'tw': '蘇丹',
+ 'code': 'SD',
+ 'zone': '249',
+}, {
+ 'en': 'Suriname',
+ 'cn': '苏里南',
+ 'ja': 'スリナム',
+ 'tw': '蘇里南',
+ 'code': 'SR',
+ 'zone': '597',
+}, {
+ 'en': 'Swaziland',
+ 'cn': '斯威士兰',
+ 'ja': 'スワジランド',
+ 'tw': '斯威士蘭',
+ 'code': 'SZ',
+ 'zone': '268',
+}, {
+ 'en': 'Sweden',
+ 'cn': '瑞典',
+ 'ja': 'スウェーデン',
+ 'tw': '瑞典',
+ 'code': 'SE',
+ 'zone': '46',
+}, {
+ 'en': 'Switzerland',
+ 'cn': '瑞士',
+ 'ja': 'スイス',
+ 'tw': '瑞士',
+ 'code': 'CH',
+ 'zone': '41',
+}, {
+ 'en': 'Syria',
+ 'cn': '叙利亚',
+ 'ja': 'シリア',
+ 'tw': '敘利亞',
+ 'code': 'SY',
+ 'zone': '963',
+}, {
+ 'en': 'Taiwan',
+ 'cn': '中国台湾',
+ 'ja': '台湾',
+ 'tw': '台灣',
+ 'code': 'TW',
+ 'zone': '886',
+}, {
+ 'en': 'Tajikistan',
+ 'cn': '塔吉克斯坦',
+ 'ja': 'タジキスタン',
+ 'tw': '塔吉克斯坦',
+ 'code': 'TJ',
+ 'zone': '992',
+}, {
+ 'en': 'Tanzania',
+ 'cn': '坦桑尼亚',
+ 'ja': 'タンザニア',
+ 'tw': '坦桑尼亞',
+ 'code': 'TZ',
+ 'zone': '255',
+}, {
+ 'en': 'Thailand',
+ 'cn': '泰国',
+ 'ja': 'タイ',
+ 'tw': '泰國',
+ 'code': 'TH',
+ 'zone': '66',
+}, {
+ 'en': 'Timor-Leste',
+ 'cn': '东帝汶',
+ 'ja': '東ティモール',
+ 'tw': '東帝汶',
+ 'code': 'TL',
+ 'zone': '670',
+}, {
+ 'en': 'Togo',
+ 'cn': '多哥',
+ 'ja': 'トーゴ',
+ 'tw': '多哥',
+ 'code': 'TG',
+ 'zone': '228',
+}, {
+ 'en': 'Tonga',
+ 'cn': '汤加',
+ 'ja': 'トンガ',
+ 'tw': '湯加',
+ 'code': 'TO',
+ 'zone': '676',
+}, {
+ 'en': 'Trinidad and Tobago',
+ 'cn': '特立尼达和多巴哥',
+ 'ja': 'トリニダード・トバゴ',
+ 'tw': '特立尼達和多巴哥',
+ 'code': 'TT',
+ 'zone': '1868',
+}, {
+ 'en': 'Tunisia',
+ 'cn': '突尼斯',
+ 'ja': 'チュニジア',
+ 'tw': '突尼斯',
+ 'code': 'TN',
+ 'zone': '216',
+}, {
+ 'en': 'Turkey',
+ 'cn': '土耳其',
+ 'ja': 'トルコ',
+ 'tw': '土耳其',
+ 'code': 'TR',
+ 'zone': '90',
+}, {
+ 'en': 'Turkmenistan',
+ 'cn': '土库曼斯坦',
+ 'ja': 'トルクメニスタン',
+ 'tw': '土庫曼斯坦',
+ 'code': 'TM',
+ 'zone': '993',
+}, {
+ 'en': 'Turks and Caicos Islands',
+ 'cn': '特克斯和凯科斯群岛',
+ 'ja': 'タークス・カイコス諸島',
+ 'tw': '特克斯和凱科斯群島',
+ 'code': 'TC',
+ 'zone': '1649',
+}, {
+ 'en': 'Uganda',
+ 'cn': '乌干达',
+ 'ja': 'ウガンダ',
+ 'tw': '烏干達',
+ 'code': 'UG',
+ 'zone': '256',
+}, {
+ 'en': 'Ukraine',
+ 'cn': '乌克兰',
+ 'ja': 'ウクライナ',
+ 'tw': '烏克蘭',
+ 'code': 'UA',
+ 'zone': '380',
+}, {
+ 'en': 'United Arab Emirates',
+ 'cn': '阿拉伯联合酋长国',
+ 'ja': 'アラブ首長国連邦',
+ 'tw': '阿拉伯聯合酋長國',
+ 'code': 'AE',
+ 'zone': '971',
+}, {
+ 'en': 'United Kingdom',
+ 'cn': '英国',
+ 'ja': 'イギリス',
+ 'tw': '英國',
+ 'code': 'GB',
+ 'zone': '44',
+}, {
+ 'en': 'United States',
+ 'cn': '美国',
+ 'ja': 'アメリカ',
+ 'tw': '美國',
+ 'code': 'US',
+ 'zone': '1',
+}, {
+ 'en': 'Uruguay',
+ 'cn': '乌拉圭',
+ 'ja': 'ウルグアイ',
+ 'tw': '烏拉圭',
+ 'code': 'UY',
+ 'zone': '598',
+}, {
+ 'en': 'Uzbekistan',
+ 'cn': '乌兹别克斯坦',
+ 'ja': 'ウズベキスタン',
+ 'tw': '烏茲別克斯坦',
+ 'code': 'UZ',
+ 'zone': '998',
+}, {
+ 'en': 'Vanuatu',
+ 'cn': '瓦努阿图',
+ 'ja': 'バヌアツ',
+ 'tw': '瓦努阿圖',
+ 'code': 'VU',
+ 'zone': '678',
+}, {
+ 'en': 'Venezuela',
+ 'cn': '委内瑞拉',
+ 'ja': 'ベネズエラ',
+ 'tw': '委內瑞拉',
+ 'code': 'VE',
+ 'zone': '58',
+}, {
+ 'en': 'Vietnam',
+ 'cn': '越南',
+ 'ja': 'ベトナム',
+ 'tw': '越南',
+ 'code': 'VN',
+ 'zone': '84',
+}, {
+ 'en': 'Virgin Islands, British',
+ 'cn': '英属处女群岛',
+ 'ja': 'イギリス領ヴァージン諸島',
+ 'tw': '英屬處女群島',
+ 'code': 'VG',
+ 'zone': '1340',
+}, {
+ 'en': 'Virgin Islands, US',
+ 'cn': '美属维尔京群岛',
+ 'ja': 'アメリカ領ヴァージン諸島',
+ 'tw': '美屬維爾京群島',
+ 'code': 'VI',
+ 'zone': '1284',
+}, {
+ 'en': 'Yemen',
+ 'cn': '也门',
+ 'ja': 'イエメン',
+ 'tw': '也門',
+ 'code': 'YE',
+ 'zone': '967',
+}, {
+ 'en': 'Zambia',
+ 'cn': '赞比亚',
+ 'ja': 'ザンビア',
+ 'tw': '贊比亞',
+ 'code': 'ZM',
+ 'zone': '260',
+}, {
+ 'en': 'Zimbabwe',
+ 'cn': '津巴布韦',
+ 'ja': 'ジンバブエ',
+ 'tw': '津巴布韋',
+ 'code': 'ZW',
+ 'zone': '263',
+}];
+
+export default countryCode
\ No newline at end of file
diff --git a/app/pages/countryRegion/index.vue b/app/pages/countryRegion/index.vue
new file mode 100644
index 0000000..36f42bf
--- /dev/null
+++ b/app/pages/countryRegion/index.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+
+ {{ t('countryRegion.frequentCountry') }}
+
+ +{{ country.zone }}
+
+
+
+
+
+
+
+ +{{ country.zone }}
+
+
+
+
+
+
+
+
{{ t('countryRegion.frequentCountry') }}
+
+ +{{ country.zone }}
+
+
+
+
+ +{{ country.zone }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/home/components/Cescribe/index.vue b/app/pages/home/components/Cescribe/index.vue
new file mode 100644
index 0000000..7ae2800
--- /dev/null
+++ b/app/pages/home/components/Cescribe/index.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/home/components/DetailPopup/index.vue b/app/pages/home/components/DetailPopup/index.vue
new file mode 100644
index 0000000..449e0b5
--- /dev/null
+++ b/app/pages/home/components/DetailPopup/index.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/home/components/ItemList/index.vue b/app/pages/home/components/ItemList/index.vue
new file mode 100644
index 0000000..f4f478a
--- /dev/null
+++ b/app/pages/home/components/ItemList/index.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+ {{ $t('home.refresh_show') }}
+
+
+
+
+
+
+
+
+
+ Lot{{ item.index+25000 }}
+
+
+
+
+ {{ item?.artwork?.name }} | {{ item?.artwork?.artistName }}
+
+
+ {{ $t('home.start_price') }}:{{ item?.startPrice ?? 0 }}
+
+
+ {{ $t('home.close_price') }}:{{ item?.soldPrice ?? 0 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/home/index.vue b/app/pages/home/index.vue
new file mode 100644
index 0000000..a2dac91
--- /dev/null
+++ b/app/pages/home/index.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
{{ auctionDetail.title }}
+
{{ $t('home.text1') }}
+
- {{auctionDetail.totalNum}}{{ $t('common.items') }}{{ $t('common.auction') }} -
+
{{auctionDetail.startDate}} {{auctionDetail.startTitle}}
+
+
+
{{ auctionDetail.title }}
+
{{$t('home.text3')}}{{auctionDetail.isLiving===2?$t('home.text4'):$t('home.text5')}}
+
- {{auctionDetail.totalNum}}{{ $t('common.items') }}{{ $t('common.auction') }} -
+
{{auctionDetail.startDate}} {{auctionDetail.startTitle}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/index.vue b/app/pages/index.vue
new file mode 100644
index 0000000..7f3370a
--- /dev/null
+++ b/app/pages/index.vue
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/liveRoom/components/Broadcast/index.vue b/app/pages/liveRoom/components/Broadcast/index.vue
new file mode 100644
index 0000000..fac0244
--- /dev/null
+++ b/app/pages/liveRoom/components/Broadcast/index.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+ {{ $t('live_room.next_lot') }}
+
+
+
+
{{ headItem(item.statusCode).label }}
+
{{ item.auctionType==='local'? $t('live_room.spot'):$t('live_room.network') }}
+
{{ item.createdAt }}
+
+ {{item.baseCurrency}}{{ formatThousands(item.baseMoney) }}
+
+
{{ item.userId===userInfo.ID?$t('live_room.me'):'' }}
+
+
+
+ {{ $t('live_room.start') }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/liveRoom/components/PaymentInput/index.vue b/app/pages/liveRoom/components/PaymentInput/index.vue
new file mode 100644
index 0000000..bd41f06
--- /dev/null
+++ b/app/pages/liveRoom/components/PaymentInput/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+ {{ $t('live_room.all_pay') }}
+ RMB 5,000
+
+
+ {{ $t('live_room.part_pay') }}
+
+
+
{{payStatus===0 ? $t('live_room.part_pay') : $t('live_room.all_pay')}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/liveRoom/components/PaymentResults/index.vue b/app/pages/liveRoom/components/PaymentResults/index.vue
new file mode 100644
index 0000000..050e057
--- /dev/null
+++ b/app/pages/liveRoom/components/PaymentResults/index.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
{{price}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/liveRoom/components/SideButton/index.vue b/app/pages/liveRoom/components/SideButton/index.vue
new file mode 100644
index 0000000..7727baa
--- /dev/null
+++ b/app/pages/liveRoom/components/SideButton/index.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
{{ $t('live_room.lots') }}
+
({{ auctionData?.artwork?.index }}/{{ pageRef.itemCount ?? 0 }})
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ quoteStatus ? $t('live_room.colse_bid') : $t('live_room.start_bid') }}
+
+
+
+
+
+
+
+
{{auctionData.needPayBuys?.[0]?.leftCurrency}}
+
{{auctionData.needPayBuys?.[0]?.leftPrice}}
+
{{ $t('art_detail_page.button') }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/liveRoom/components/SideButton/tangPopup.vue b/app/pages/liveRoom/components/SideButton/tangPopup.vue
new file mode 100644
index 0000000..827aba0
--- /dev/null
+++ b/app/pages/liveRoom/components/SideButton/tangPopup.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ {{ $t('home.tab1')}}
+ {{ $t('live_room.total') }}{{ pageRef.itemCount }}{{ $t('live_room.lots_num') }}
+
+
+
+
+ {{ $t('home.refresh_show') }}
+
+
+
+
+
+
Lot{{item.index+25000}}
+
{{ $t('live_room.cast') }}
+
+
+
+ {{ item.artworkTitle }}
+
+
{{ $t('home.start_price') }}:{{item?.startPriceCurrency}} {{item?.startPrice}}
+
{{ $t('home.close_price') }}:{{item.soldPrice}}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/liveRoom/index.client.vue b/app/pages/liveRoom/index.client.vue
new file mode 100644
index 0000000..322ad64
--- /dev/null
+++ b/app/pages/liveRoom/index.client.vue
@@ -0,0 +1,247 @@
+
+
+
+
+
+
+ {{ t('liveRoom.loading') }}...
+
+
+
+
+
+
+
+
+
+
+
+
+
Lot{{ Number(auctionData.artwork.index+25000) }}
+
{{ auctionData.artwork.name }}
+
{{ t('live_room.start') }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/login/index.vue b/app/pages/login/index.vue
new file mode 100644
index 0000000..0d601f4
--- /dev/null
+++ b/app/pages/login/index.vue
@@ -0,0 +1,321 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selectedCountry }}
+
+
+
+
+
+
+
+ +{{ selectedZone }}
+
+
+
+
+
+
+ {{ $t('login.getCode') }}
+ {{ $t('login.getCode') }}
+
+
+
+
+
+
+
{{ $t('login.hasSendTo') }}
+
+{{ selectedZone }} {{ phoneNum }}
+
+
+
+
+
+
+
+ {{ $t('login.reSend') }}({{countdown}})
+
+
+ {{ $t('login.back') }}
+
+
+
+ {{ $t('login.login') }}
+ {{ $t('login.login') }}
+
+
+
+
+
+ {{ $t('login.agreement') }}{{ $t('login.privacyPolicy') }}
+
+
+
+
+
+
+
+
+
diff --git a/app/pages/payment/completePage/index.vue b/app/pages/payment/completePage/index.vue
new file mode 100644
index 0000000..e4681ef
--- /dev/null
+++ b/app/pages/payment/completePage/index.vue
@@ -0,0 +1,363 @@
+
+
+
+
+
+
{{ statusText }}
+
+
+
+
+ id
+ {{ intentId }}
+
+
+ status
+ {{ intentStatus }}
+
+
+
+
+
+ View details
+
+
+
+
+
+
Test another
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/payment/external/index.vue b/app/pages/payment/external/index.vue
new file mode 100644
index 0000000..93731e4
--- /dev/null
+++ b/app/pages/payment/external/index.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/payment/index.vue b/app/pages/payment/index.vue
new file mode 100644
index 0000000..4ab5dde
--- /dev/null
+++ b/app/pages/payment/index.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
{{payStatus===0 ? t('payment.fullPayment') : t('payment.partialPayment')}}
+
CNY {{payment?.leftPrice}}
+
+
+
+
{{payStatus===1 ? t('payment.fullPayment') : t('payment.partialPayment')}}
+
+
+ {{ t('payment.confirm') }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/payment/result/index.vue b/app/pages/payment/result/index.vue
new file mode 100644
index 0000000..77ac0d8
--- /dev/null
+++ b/app/pages/payment/result/index.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
{{ statusLabel[resData.status] }}!
+
{{ resData.currency }}{{ resData.money }}
+
+
+
+ {{ t('payment.result.backToHome') }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/privacyPolicy/index.vue b/app/pages/privacyPolicy/index.vue
new file mode 100644
index 0000000..f9e07bc
--- /dev/null
+++ b/app/pages/privacyPolicy/index.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/profile/index.vue b/app/pages/profile/index.vue
new file mode 100644
index 0000000..b1a526b
--- /dev/null
+++ b/app/pages/profile/index.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
{{ userInfo.realName }}
+
{{ userInfo.telNum }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('home.my_lots') }}
+
+
+
+
+ {{ $t('home.refresh_show') }}
+
+
+
+
+
+
{{$t('profile.text1')}}
+
{{$t('profile.text2')}}
+
+
+
+
+
+
{{ group.userCreatedAt }}
+
+
+
+
+
+ {{ item?.auctionArtworkInfo?.artworkTitle }}
+
+
+ {{statusLabel[item.status]}}
+
+
+
+
+
+
+
+ {{ $t('home.start_price') }}:{{item.auctionArtworkInfo?.startPriceCurrency}} {{item.auctionArtworkInfo?.startPrice}}
+
+
+ {{ $t('home.close_price') }}:{{item.baseCurrency}} {{item.baseMoney}}
+
+
+
+ {{ $t('art_detail_page.button') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/publicLiveRoom/components/broadcast/index.vue b/app/pages/publicLiveRoom/components/broadcast/index.vue
new file mode 100644
index 0000000..0f3de41
--- /dev/null
+++ b/app/pages/publicLiveRoom/components/broadcast/index.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+ {{ headItem(item.statusCode).label }}
+
+
+ {{ item.auctionType==='local'? $t('live_room.spot'):$t('live_room.network') }}
+
+
+ {{ item.createdAt }}
+
+
+ {{item.baseCurrency}}{{ formatThousands(item.baseMoney) }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/publicLiveRoom/index.client.vue b/app/pages/publicLiveRoom/index.client.vue
new file mode 100644
index 0000000..beced24
--- /dev/null
+++ b/app/pages/publicLiveRoom/index.client.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+ 直播加载中...
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/realAuth/components/detail.vue b/app/pages/realAuth/components/detail.vue
new file mode 100644
index 0000000..1eaf59d
--- /dev/null
+++ b/app/pages/realAuth/components/detail.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
{{$t('realAuth.name')}}:
+
{{userInfo.realName}}
+
+
+
{{$t('realAuth.gender')}}:
+
{{userInfo.sex===1?$t('realAuth.male'):$t('realAuth.female')}}
+
+
+
{{$t('realAuth.birthday')}}:
+
{{userInfo.birthDate}}
+
+
+
{{$t('realAuth.idCard')}}:
+
{{userInfo.idNum}}
+
+
+
+
+
{{$t('realAuth.name')}}:
+
{{userInfo.realName||userInfo.userExtend.realName||''}}
+
+
+
{{$t('realAuth.gender')}}:
+
{{userInfo.sex===1?$t('realAuth.male'):$t('realAuth.female')}}
+
+
+
{{$t('realAuth.birthday')}}:
+
{{userInfo.birthDate}}
+
+
+
{{$t('realAuth.adress')}}:
+
{{userInfo.userExtend.address}}
+
+
+
{{$t('realAuth.bank')}}:
+
{{userInfo.userExtend.bankName}}
+
+
+
{{$t('realAuth.bankCard')}}:
+
{{userInfo.userExtend.bankNo}}
+
+
+
{{$t('realAuth.idTye')}}:
+
{{columns1.find(x=>x.value===userInfo.userExtend.idType)?.text}}
+
+
+
{{$t('realAuth.idNumber')}}:
+
{{userInfo.userExtend.idNo}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/realAuth/index.vue b/app/pages/realAuth/index.vue
new file mode 100644
index 0000000..a9bb161
--- /dev/null
+++ b/app/pages/realAuth/index.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+ {{ $t('realAuth.cnTabDesc') }}
+
+
+
+
+ {{ $t('realAuth.otherTabDesc') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('realAuth.cancel') }}
+
+
+ {{ $t('realAuth.confirm') }}
+
+
+
+ {{ $t('home.go_home')}}
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/signature/panel/index.vue b/app/pages/signature/panel/index.vue
new file mode 100644
index 0000000..45db0ef
--- /dev/null
+++ b/app/pages/signature/panel/index.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+ {{ $t('collectCode.signature.back') }}
+
+
+ {{ $t('collectCode.signature.clear') }}
+
+
+ {{ $t('collectCode.signature.confirm') }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/signature/personal-Info/index.vue b/app/pages/signature/personal-Info/index.vue
new file mode 100644
index 0000000..7a40e60
--- /dev/null
+++ b/app/pages/signature/personal-Info/index.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+ {{$t('personal.title')}}
+
+
+
+
+
+
{{$t('profile.phone')}}
+
+ + 86
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{$t('personal.next')}}
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/signature/protocol/index.vue b/app/pages/signature/protocol/index.vue
new file mode 100644
index 0000000..da3c71f
--- /dev/null
+++ b/app/pages/signature/protocol/index.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ {{ $t('signature.tips.prePayment') }}
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+ {{ $t('signature.button.agreeAndSign') }}
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/signature/protocol/pdfView/index.vue b/app/pages/signature/protocol/pdfView/index.vue
new file mode 100644
index 0000000..8d6cc4c
--- /dev/null
+++ b/app/pages/signature/protocol/pdfView/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+ {{ $t('common.loading') }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/plugins/http.ts b/app/plugins/http.ts
new file mode 100644
index 0000000..2838dc9
--- /dev/null
+++ b/app/plugins/http.ts
@@ -0,0 +1,9 @@
+import { setupHttp } from '@/api/http'
+import { setupHttp as setupHttp1} from '@/api-collect-code/http'
+import { setupHttp as setupHttp2} from '@/api-public/http'
+export default defineNuxtPlugin(() => {
+ setupHttp()
+ setupHttp1()
+ setupHttp2()
+})
+
diff --git a/app/plugins/i18n.ts b/app/plugins/i18n.ts
new file mode 100644
index 0000000..2745562
--- /dev/null
+++ b/app/plugins/i18n.ts
@@ -0,0 +1,42 @@
+import type { Locale as TypeLocale } from '#i18n'
+import { Locale } from 'vant'
+import enUS from 'vant/es/locale/lang/en-US'
+import zhCN from 'vant/es/locale/lang/zh-CN'
+import jaJP from 'vant/es/locale/lang/ja-JP'
+import zhTW from 'vant/es/locale/lang/zh-TW'
+
+export default defineNuxtPlugin(() => {
+ // 载入 vant 语言包
+ Locale.use('zh-CN', zhCN)
+ Locale.use('en-US', enUS)
+ Locale.use('ja-JP', jaJP)
+ Locale.use('zh-TW', zhTW)
+
+ if (import.meta.client) {
+ const i18n = useNuxtApp().$i18n
+ const { setLocale } = i18n
+ const nuxtApp = useNuxtApp()
+
+ // 获取系统语言
+ const getSystemLanguage = () => {
+ const browserLang = navigator.language
+
+ // 将浏览器语言映射到应用支持的语言
+ if (browserLang.startsWith('zh')) {
+ return browserLang.includes('TW') || browserLang.includes('HK') ? 'zh-TW' : 'zh-CN'
+ } else if (browserLang.startsWith('ja')) {
+ return 'ja-JP'
+ } else if (browserLang.startsWith('en')) {
+ return 'en-US'
+ }
+
+ // 默认返回中文
+ return 'zh-CN'
+ }
+
+ // 使用系统语言
+ const systemLang = getSystemLanguage()
+ setLocale(systemLang as TypeLocale)
+ Locale.use(systemLang)
+ }
+})
diff --git a/app/plugins/vconsole.client.js b/app/plugins/vconsole.client.js
new file mode 100644
index 0000000..8224b4f
--- /dev/null
+++ b/app/plugins/vconsole.client.js
@@ -0,0 +1,7 @@
+import VConsole from 'vconsole'
+
+export default defineNuxtPlugin(() => {
+ if (process.env.NODE_ENV !== 'production') {
+ const vConsole = new VConsole()
+ }
+})
\ No newline at end of file
diff --git a/app/static/images/1981736313.png b/app/static/images/1981736313.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b5b45f6d224c627285f2f7c29102bffdda30974
GIT binary patch
literal 289842
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 eUkXja-r48QtY;iXcFZ5
ztySx%$>%2+@_SI$k2F=gy!yWq)N-j{#uY27LxXX7#&eSp{rC9>CM9l-e^c7D@$|Qd
zwtVl#q(4jjdCe*7E*#@+nwRRW3j9SxWeII2ul}3lB0NIa=sgZ*JM8pY!@8^ahw|L6
zOETQ99UGH$;-4tQd$%q5c>H=2?Ejp>-4X(yC9+#>4_+Oqzvg(eWgL%GYWl$`=CnHE
zGb3jI$Mrk8D;7OKQHv3a+MAvRU=xU%y1bviqLfdL!BIs@uDGsh#7TaaC$QWoHwdBQ
znWVDo-psBjUi$r>mcBWHt!}TERY$!`cEg`+A9!gbJ1zW^QH!oA@j^6mTP8W1U`G%G
zrryyD(c80NY=AwXRxZF(NGEI6k;^Zf*Ct^p+s@W~Vf}Lc@xZJt_*^lnk;FbDS8U58
zh8_!JR~)`CrMd6bin}lkAX;B9>`0*@a!w(Ea&pC|o4$h|1+VhRfp9XI_FeFkmhyV#
z?H1~gamAXX4Z7adtX+Ei8V!$zPaBr!ZlpE!`rUqh;M!+p)$;~~)VR$_U1C9Bh-AT>okHQ5#)^-Q-(;njm}+sMGczdB
z)h5TGsxd&z}mwsRVT7Jck_J
z=2Z{H(Sy3@iz7>xi#p2(BjEB$dmCaqLJ1U@E`suyHWqKaLOH0FhYOc?X
zSlu%ES#Q)W_QHdDFrBhnY+U1FPv;&+?fi%6oq^)*$0tawoi8k#cJ&Ef!*}B2o4xiD
zr!P|<*Ub@L^3}zzZW1$0Or_njw#+2X`uh(A)>NBMScxxiY|Q16Qgpy(VEg}#uvxhb
zB3a9tRXzKWk1p61G}pfG>6ZN+{p>>K))qOLyIbO47FCqr5C8Wv^zBdcBA}(o=Y3vq
zLuS`!e!rRmiwAq;nM-4r4c4IIkD;H9Pu3cbFWwHUGLPjv7e9D-YhihWqHJ_vFiY%x
zQrOiWdZ-r<_gkLEv;*pE;;hMasivG>`N?kr1;!PG?658CYcqTVV{$k?0rC%ODfCch
z8>sbKw8qLG^U>V)^iC6t`ue{XI&z8U?_+y~TaL!ZT7V{gv$jozxg0OwKmQF78n>)S
z-@)dhp8gX5w47c;^0-drFP|o!u8qUL`n-!u>+>Ds&I=jMA?iT!aNFOR7I_~p)-CPL
z0e-~te7~Zaua)3@mkc_*F3Cml%?G}Wna<4Xo
z$<^5?;Ab_IwDt2^Gg&l!H;1S9N4<;yCnJGAZApTGXeDzjUf)LG;6!TvF~&anD_tjZF-oJ{n;$#`#Vh=|)M
znproP)=Y8L^H?r(3Cj)Q#slIkW4r}3(I2_YB^XBcvg0=oPO9TD89OF6{YT0=m9~dcO2Sn2@X68cExcv39|$AC`VxMS2aHwVUIG=CzRjZ
zkJUeaWY=gndO-8gb|8``#Z*}I!Z}z71;T)Bh)95LOgR}hJkoF#5Acl_>&8*Do4V91
zEkERfKyosWdN_+sl~9DuRZdl0W4RX9$eB#3)PV>s;RF~&&$m{t=`@z-G+%jHbd<9z
zvPPS*5pdKF@GZTCkSb=^r!T|@M;GP|UkBM)+3^J6Mu1o}Uk6F6A?UL=zzhix1okh$
z2610uR{w{YiN`S{K5lptO;U?sOoLrF7TR<|Q1zP2>z?%NJqrzuoN+jm%ASd2D^opy
zJG@i-#OncGaRW#L?`tx*msOtR>gANmTKG;X7He&bL{Qd{`r<98Y(Oy=gn1Y(SmmaU
z?Lu9=H5)@mhr%X$10hp6PuGYAjozf24Oes1n~2Qwg*fq5quaP;oKB#ec(@;u
zjdpoj6V;WC)$9+GrqO-S_~G+k<))-@KC@$Lcg`hUtV?Q5Mcy@_7#BJ+!EK(?`Hrvy
zYO#hj+$L{%2srzS@d{J7OP9j9Iu+hgYof3u%H#5e`j|33(GxGKfD2m$?iZUdlPR(F
z*|G0vM`(Cq2fjDE1dA;~Fuw7#F%{rX3Azyp?9dAm<7aGf9Qo%5pOYmE$HLYc)WzyZ
z6}=<8K)yZR8C#|s?12?v2u;=#D`)Cw6K9&1aqhM~!D*KtLO)YI^s8+DZTxaVV*p>L
zXc6ictqA{oCQHcTCt5Zl4pPGFu5w^$|=V5fXl
z#@x8=;pqoxP|3+L3HpmX
z_8YUy2kY;LO$E!zq)(s)$5+k9PrDw*n`|$}|HZXDn3B{(6dqXx!o(n-kRq6FXYU%_
zZ$JpaHbcfw)|d@X^P)1FJpl+8}M?vELDk-Brl4{K8;z$njEgO8z?t6q>&2nnvkcj72a0ti6Fq7BIN{
zyp<}FH^56K1uyw-snn05O~o=aXSfBMQG2%
zCZ^yl4O)BvKm0mJN&%})aV9+mW&v)%EA+5?>}_}KdO0AJslPHB@W1BJD1968^m+&b
z#bd$oU95$&T+?XWn7n^!pD_c1mmG|#n_92|5gR3pYV=QCRD0~B8pYAx33QlEsU)j(
znz9#0k1{2fEt`?`y(s>68`6XGguHYi0EY|2XXAOhS4u_6Of>+e_gqCYji@xndsd=d
z<-=+(D!+AJRKf0qco0!dS-Y~mFNQgBb)WM${Jd(TraTO*1zYaxmJB}s*`fQ0
z=t1_#k@YXuFkgpDZUU3^3emPtXC2xQpY@<4KdCj>MAJ`EB{sDn(}Hq)6`;qi@$I>I
zOK?1T^F+V`=QmjqL>2P#XtN;y6ydO(yVJ_EVe)O@FGMG9QaA4`h4jZ2cpi>#GqpW|
z<%xsOqy6k|oru4w42Hao#F>yKZCZMZS#V8rY^j{|BzsK6cj)>tJ!n5|<@}KiqHza{
zCort?U{SESUhn@N&H0yGI{&XQq6PS7=l02ckvhat=#D1pur!06ija?
zh}rOjiWT71T#9$*5Uszj|5Y=Mn$5sjyoM)OL1b*Is#tO-i_tm$mM!7n~bHD0+2@Xn$|ANul3a_}teJKGgfMA!)iyBwr
zdCpP_iG8MVxED#3h@IAys(LZg|HIafXOCB5^|F+~!WGMa_>ax6`8Mv}0wGHNkUcfL
zKmhxWv>DZ~jPEl`eE+1ti~k3l4UCX^MhE)!>KaT|_ybPYKxZ$t_otiXPPsQ*D18{JyNK|B6u*Bjn$cbP29P6uZ7+hTX`gZr
z<0#U6Pb=wrMe|A^$1URtbeF+f0C8$
z?oJC($W@Y?!(Q;c*+*5(%t~MK$y0xz%b2`$_|yuwclS^WC92jJLTA5E&VnCl*JO|n
zF%z_zQV`&D%cEWaokL7+;VyYks={>>dvr=CGL+M_U<^j}!K=te$K{A?w7UigdMb
ze6_ect+2MD8En-?{rn{54uG!NZ4H?8>wcDvLIw`-tSyR{0{xOf?2B7InxDLAYU;B?J%*
zH78LRyb>70j8wb`K&9pDJ2Ju60PBvY?3`+F2Cv8E%zH{bMA;C>^w&f2u77~HI1@nF3`ysgjOh`=)
zf@Frdi53R7>YDhFY~kq*ARiLvw=)St`*6a0}H*<
zATV*0X=awz-f8?Pc)mu(RX)vq0cXU0oNk`Kf6!gGrScG(Y1Jda*B|!0X4V^pi*f6X0MM^a
zkDzSLmsfS<*&?hP{Sj85L#Kd|a0Q@IP%B@5>V4hjQaV?H9_}&u4@lUNDtQ6awyns5
z?aCiOxCB*b<8HphLHNx88uzOaTuH8=5W3VYV8MdcE`Z
z1y_m{5U^Vt`1iik9Ko%qvcAugi6)3W-2ib)d(v_-;tif=4(5PsmS`IQQvdcN%^C_r
zH?zk3S-mf&oJRH_yhz1?xkOJDk61w3h@*h9=7^i-`R_C;4ZZ%SEyL8RDAe1tJRZ}r
zsT^P{mSGKnao*Go$ydpG*E)@PC)zoxzo+)B{AkCcE=DYO++Pm4XXzTIH@rms4!NWo
z>_s#p)ajXJMBn)xS@ALeAz~_lqXjtmy_X7SEq;u)o~&9ta|A_3f`Jv^H0K@(imr*M
zrH*S2mt$lE1GAWB_U1RhY-pwI!%u&6do}ZT+Tp>Wm*a1fJ5m3VSTb>_LmP|%#8MJ@
zXb<8GPSbeaXaHS^BJK{JqTQc}v^9%c|1Tz8{v1?xxr?EGGdi5$i|xOH`(*;nSIH*z
z5gna}V~MUd-m|ZFy{XIpvt?j}c*dAVFq7vp3o8)qa@b0nJIYA+a$9;0HLQbX-56hX
zH1ghkxM$yXAZRiqG&@itrL%MyKK`RJl`scC>Bh{W%~C*#6F;S
zSE8X~OHvbTDJma8=GiDr9u8uSeqOJ~Ci>iB6Kgoq=3L_|&nI>X;m;DBBQET3Wd|VO
z&wP?PwpjE&wjm<|Lll^I#TXcy5X`(#(WyD6QsXV$`Y2#Stc~vUv(7$&6TR6pPt$VCnT`+}2-aT1eN`KDOI2cii)cvNe7;zT
zn_^Ae_~`-tYS=wO!TJMX#X
zzeu0hJ#GuRT=L4Y8L!nB$0LEWQs?l~_|0
zut3#d7+MhmI)6c9?u7Ya93<&2$*hQ*twSM
z?@PaOdaT+@%AuISYS`G4)?#It;AA-(_q*or2Dd9V{h8eZLW!RnZ)Cy;5Zo@=R&2_1C8TP%%Sh_0+pJAkg9Ce&Fl6
zM}|1fS$LjGLHG=V`%9)SFti{xeM(|vdJW*pPq26xSgZ!gc;VYN038L8o)7JuH^WPX
zkQ7m3knJmp98&npY?J!$8@SYe&fj!>g=Kw~D$0T#7Enm@Fy@DCY%!;wlnFjb#rZc}
z!2=IT1$AmvAV^?XEp$dp1B|nYDJ?;%tGm=rxQNvX8*7TcI8@u^E!u#rDQ^Gmf#QsQ>>g0JrZ{
zM0FL3<%lDm+v2lZ!Bp9C9J9aYxxUXDlssm9NNur?y{GI4nQsZJ<0MTq!De6`zf>9`
zw*i%gkJU#sCa-E)&Hoty)e77Z@;^w1#Tp-Rp+gU(*PO#Yav0HrW^?!`22y&3$^$8n
ztlH(Nse6@Ci-xM~e-{n&9Pm)7Oi%D}Ca@pRb^QC*XmTHC$H)4~|33Td$zT=qqntn#
zebH}oo<4fY$3N&BR0Z8p1!e7xXrqHRE*?RBOHwlXb9{S-fJ?$tM
z*sOvCUwfsj0(Vo!IDLj3gK04Il1b-x>?ladx$5Oan<`55HAk>?+6MZYh2*K)x{kn2
zXBQN_2{TUgv=31lXO5x;@ia!1Oi=6Z;)e(pEh4mao8n=8F)AZ<>6OIyMESg75`0
z*I|94Q7)8ui0_{k9KSm?>fe7@4$ng@{9I0U_~7vgn0tafXhei*fViCt-juZplBSe&
zy0d*+{W`FPe_$bRky~yxPiQxS?+P-6uy6kr^q^#K94_)a8lj~X?ERyQ24gcdpE|Z5
z=i1ZuMOwqgC|KP)ExlowU5G-Xcqx0rSvc)PCTOr;P0W<6ps`wdo)nPw>@>VTX9iML
z;0Julm!+Xl=z066@`v8mx(~#VDL33Ey0c!{R>{p^O4$XUoJ7r1r=_nYvXz<;pG_O<
zHrXoLVAANPylz7`6Y)L5YZW}7Zt?Dh;e&sCY-DsQ+m*Gu&WU7y(C>gny|q5tt(5(l
z41sU$oEYBYYR!s-wA>FlhWc=|0V_uAD{2dciBrCq7$&;?G{2Zr#8~ei@Xlh0z4K~2
z1L#vYiSFmZGKZ=QNxSawBLSSPR*PeEaIj_&m@_02ZxXY3J5stVIQJaZAeEL)RkI$z
z*gW|41!Lfw!vzC=IjwidUI(8Fe_OseJT&yIWcZq1_@3dUwBq`j!WVG(*XoR_Y0S}Lz1LN?lVCZcWO8zN$YFt%L_HmHSm)*uKqTH
z`8op#?sN+DXPuJnqQ$P6y@#$m+$v(M+4qzoMr~+qwVceV!bx0=pD=B)#{BzbeBZ4*
zv+|R|7zEnwz6^Oje>QpPw8*2-
zg@+{tZJK-OJqs3zaMJJm{ofdr-m>7F3AgyFXAsYDyo}Iz`oZ(Sj4_>S;&8skGH4sR
zwjn#{DN8E(Z16bx|>Xzii8GF1NujexG~(@abl2j+=S&O(nZzHKlC2ts7LpxAOM(
z!~Rz??Cy$Z^>h1KlGSGB$$D{4bG;_+m~BAmuV_5Tp>O3kYccz0CJpOM^$N;vJ4SeB
zdv>Pgwxi9P`CJ(}D8P2yju0196q!MfgwXApxxnr3Jhf=^*`!*X5NVj~MfB0+V(@;I
zCffHwPpe0F#ToU$H;fw(l8pt$-~53K$<-3u26~-d)tSjYcPD*oj-NeYP|OHF%S0A
z6V{e^?4J9kj?cH`kTh(59rHC5UAZI%?7|BxDjbGvnd5{d%3PN-fNtNJ+}NKM&x4n_L{!~L33g}Trh=YdN7C~bBvwbtEK
zHN$FgVc?D_)*GL^Uz%LL9AZttPjmPi;HJjS=qX-7H}X(q;b@?yqvA;Ev|9S?J#v={
zMbm!zy=JSXo7TkvSC$}kYoy@-Z=nJeFzK2tP#E9&Gmsk)+>HL`k~tx9)uN&8t>LUa
z&L$DFAZ$AbnrHrsYf1f*hf-IGYB{f|%x|fiZE&t(JX5ab%)hjQB}YF)o!;8~Z0E5q
z#Oi1}^e3P8CY5GLajbENHUF+-+P%2kWQFjO#2VKeIThPNYct=-&wkC8>V&}aLi*xA
z-W8r6VApm1qbb=F!%joA>UQ!nYn5N~`$j<*M$-9dras%4)z}!xCmu!EtzpXe3pmB{
z;sfe2<8pZH7&+VxPbyntKj?7@D15nMU5O(9YX7{+Fj}w8*WF1VI%(a6;5lu>j6x(^
z^n)>K@3%&3nHJ)}I#hh=O5e^f|m@?}HF%nYkkR#|$GwU}kpiuqdvzF2W
zBfRKDc0Fk=GL1a;yZdgH3r``k%4^0UrosiQ|^D5XY>`9)gZsU=Ze@?O#>;x
zI+-*s66dBd{eupO)pqG3tM2>A(z}K@div
z?Ee8}S|xx-R*_>f#goyW$J3W$6q?8WD@>uhXm)VrS(GlOFp1BhAgQu7L7_fL+NE2E
zBd`7yt#OTLJyk6;Y4zOeIV)eGe-
zLJ_*w4DC>Y%+VI#>q=b>>gH6$;LM!v$U~T(;r>JOO4{d%*M4Rph
zUg;Tbo&Zx?)|9kan`n^Ix&xQ_V2;mL#ufaho;OsM)x2Y?6o9DxH;nLq;qIL@-Z$nb
zf26u;FRYT@IRUG4hX9h6|c@+OG7tLJ@_x$Ekc4Kb+NTMXej(XlTJ54}Ip
z(h#^ae`A^%e)#WVn-ib_3WIEe(?kmo`65ZNEr(yiRCY22%9s?-M)WO+kw$g`Kr_b`ge=6fR%#5e75b@(f8vc$1yDT
zd~m%c+X;Y3?Of&gmcb>l~)#i>ipC85msjh?B=v36X!k6WTXw+@?f19l(D4
zd89b^4I@a*A4)rdY
zn#d6#-*RpeW^jfP>a@4p7;JJJ!+fb}xIw$I%