Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
88520441
Commit
88520441
authored
Oct 14, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS
into develop
parents
cc57a111
dd717f28
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
171 additions
and
10 deletions
+171
-10
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+20
-0
YHServiceOrderListViewController.swift
...entService(服务中心)/C/YHServiceOrderListViewController.swift
+2
-1
YHHKVisaRenewalPaymentVC.swift
...saRenewalPayment(续签在港缴费)/C/YHHKVisaRenewalPaymentVC.swift
+0
-0
YHHKVisaRenewalPaymentList.swift
...RenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPaymentList.swift
+56
-0
YHHKVisaRenewalPersonType.swift
...aRenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPersonType.swift
+19
-0
YHVisaRenewalPaymentStatus.swift
...RenewalPayment(续签在港缴费)/M/YHVisaRenewalPaymentStatus.swift
+5
-5
YHVisaRenewalPresenceStatus.swift
...enewalPayment(续签在港缴费)/M/YHVisaRenewalPresenceStatus.swift
+4
-4
YHHKVisaRenewalPaymentViewModel.swift
...lPayment(续签在港缴费)/VM/YHHKVisaRenewalPaymentViewModel.swift
+58
-0
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+7
-0
resign_visa_guide_error_content@2x.png
...r_content.imageset/resign_visa_guide_error_content@2x.png
+0
-0
resign_visa_guide_error_content@3x.png
...r_content.imageset/resign_visa_guide_error_content@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
88520441
...
...
@@ -250,6 +250,8 @@
044F39642CB90501007CA277
/* YHVisaRenewalItemDetailType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F39632CB90501007CA277
/* YHVisaRenewalItemDetailType.swift */
;
};
044F39662CB9500B007CA277
/* YHVisaRenewalPayConfirmingPresenceAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F39652CB9500B007CA277
/* YHVisaRenewalPayConfirmingPresenceAlertView.swift */
;
};
044F39682CBA1CAE007CA277
/* YHResignDocumentUploadSignedDocument.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F39672CBA1CAE007CA277
/* YHResignDocumentUploadSignedDocument.swift */
;
};
044F396B2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F396A2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift */
;
};
044F396D2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F396C2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift */
;
};
04506F552C6F57E600738EA1
/* YHFamilyMemberInfoCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04506F542C6F57E600738EA1
/* YHFamilyMemberInfoCell.swift */
;
};
045A08C02C37ABF500BCBABA
/* YHSegmentView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045A08BF2C37ABF500BCBABA
/* YHSegmentView.swift */
;
};
045A08C22C37EB8B00BCBABA
/* YHMyFileListNoneCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045A08C12C37EB8B00BCBABA
/* YHMyFileListNoneCell.swift */
;
};
...
...
@@ -433,6 +435,7 @@
0468D4362B57752F00CFB916
/* YHUserModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4352B57752F00CFB916
/* YHUserModel.swift */
;
};
0468D43A2B579EAC00CFB916
/* YHLoginViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4392B579EAC00CFB916
/* YHLoginViewModel.swift */
;
};
046A95312C6EFB980059326A
/* YHFamilyMemberRiskWarningAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
046A95302C6EFB980059326A
/* YHFamilyMemberRiskWarningAlertView.swift */
;
};
0471BF622CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0471BF612CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift */
;
};
0472CBA82C5A11640096F48F
/* YHPrincipleUploadListVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0472CB9C2C5A11640096F48F
/* YHPrincipleUploadListVC.swift */
;
};
0472CBAC2C5A11640096F48F
/* YHPrincleViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0472CBA32C5A11640096F48F
/* YHPrincleViewModel.swift */
;
};
0472E25C2C521E64008EAB6E
/* YHHomeIdentityListVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0472E25B2C521E64008EAB6E
/* YHHomeIdentityListVC.swift */
;
};
...
...
@@ -1185,6 +1188,8 @@
044F39632CB90501007CA277
/* YHVisaRenewalItemDetailType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHVisaRenewalItemDetailType.swift
;
sourceTree
=
"<group>"
;
};
044F39652CB9500B007CA277
/* YHVisaRenewalPayConfirmingPresenceAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHVisaRenewalPayConfirmingPresenceAlertView.swift
;
sourceTree
=
"<group>"
;
};
044F39672CBA1CAE007CA277
/* YHResignDocumentUploadSignedDocument.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHResignDocumentUploadSignedDocument.swift
;
sourceTree
=
"<group>"
;
};
044F396A2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHKVisaRenewalPaymentViewModel.swift
;
sourceTree
=
"<group>"
;
};
044F396C2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHKVisaRenewalPaymentList.swift
;
sourceTree
=
"<group>"
;
};
04506F542C6F57E600738EA1
/* YHFamilyMemberInfoCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHFamilyMemberInfoCell.swift
;
sourceTree
=
"<group>"
;
};
045A08BF2C37ABF500BCBABA
/* YHSegmentView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSegmentView.swift
;
sourceTree
=
"<group>"
;
};
045A08C12C37EB8B00BCBABA
/* YHMyFileListNoneCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMyFileListNoneCell.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -1371,6 +1376,7 @@
046AB7762BD674170086C6F1
/* galaxy.entitlements */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist.entitlements
;
path
=
galaxy.entitlements
;
sourceTree
=
"<group>"
;
};
046AB7772BD674170086C6F1
/* galaxyDebug.entitlements */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist.entitlements
;
path
=
galaxyDebug.entitlements
;
sourceTree
=
"<group>"
;
};
046AB7782BD674170086C6F1
/* galaxyTestEnv.entitlements */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist.entitlements
;
path
=
galaxyTestEnv.entitlements
;
sourceTree
=
"<group>"
;
};
0471BF612CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHKVisaRenewalPersonType.swift
;
sourceTree
=
"<group>"
;
};
0472CB9C2C5A11640096F48F
/* YHPrincipleUploadListVC.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPrincipleUploadListVC.swift
;
sourceTree
=
"<group>"
;
};
0472CBA32C5A11640096F48F
/* YHPrincleViewModel.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPrincleViewModel.swift
;
sourceTree
=
"<group>"
;
};
0472E25B2C521E64008EAB6E
/* YHHomeIdentityListVC.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHomeIdentityListVC.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -2558,6 +2564,7 @@
044F39272CB54BB3007CA277
/* HongKongVisaRenewalPayment(续签在港缴费) */
=
{
isa
=
PBXGroup
;
children
=
(
044F39692CBA7CB1007CA277
/* VM */
,
044F392A2CB54C15007CA277
/* V */
,
044F39292CB54C07007CA277
/* M */
,
044F39282CB54C00007CA277
/* C */
,
...
...
@@ -2581,6 +2588,8 @@
044F39552CB8C2FC007CA277
/* YHVisaRenewalPresenceStatus.swift */
,
044F39632CB90501007CA277
/* YHVisaRenewalItemDetailType.swift */
,
044F395F2CB8F3F9007CA277
/* YHVisaRenewalPaymentStatus.swift */
,
044F396C2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift */
,
0471BF612CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
...
...
@@ -2614,6 +2623,14 @@
path
=
V
;
sourceTree
=
"<group>"
;
};
044F39692CBA7CB1007CA277
/* VM */
=
{
isa
=
PBXGroup
;
children
=
(
044F396A2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift */
,
);
path
=
VM
;
sourceTree
=
"<group>"
;
};
045EED972B9F171A0022A143
/* ServiceProcess(我的信息流程) */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -5494,6 +5511,7 @@
049663BA2BF6105C003C8295
/* YHRefreshHeaderAnimator.swift in Sources */
,
A5C382D12B5FAAB300C5E65C
/* YHContactItemModel.swift in Sources */
,
04B360F52C646844001EB053
/* YHPrincipleApprovedMailViewController.swift in Sources */
,
044F396B2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift in Sources */
,
044EE23C2C92BFDC00A2FE3A
/* YHResignCertificateModel.swift in Sources */
,
049D62C22C6F258700E811A1
/* YHFamilyInfoConfirmViewController.swift in Sources */
,
0430E64C2C732821000511E2
/* YHNoAdopterAlertView.swift in Sources */
,
...
...
@@ -5520,6 +5538,7 @@
04F957472C203033003C631C
/* YHMyGoodFriendsVC.swift in Sources */
,
044867B42BA1953B00DFAD4A
/* YHCertificateFilterView.swift in Sources */
,
045EEEDF2B9F171A0022A143
/* YHCollegeSearchBar.swift in Sources */
,
0471BF622CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift in Sources */
,
044D0BEE2C2019C100C5CF5E
/* YHCommunityViewController.swift in Sources */
,
A567E5B52BD7643D00D5D5A0
/* YHSearchInfoBar.swift in Sources */
,
044EE2462C93E22E00A2FE3A
/* YHResignCertificateDetailHkViewController.swift in Sources */
,
...
...
@@ -5781,6 +5800,7 @@
A5CA3F5A2C74B64A00EB22F5
/* YHSmallWhiteNoteTemplateView.swift in Sources */
,
04CA2C312CBA653E00F36DE7
/* YHLookResignAlertView.swift in Sources */
,
045EEF242B9F171A0022A143
/* YHStepView.swift in Sources */
,
044F396D2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift in Sources */
,
04CE1AD62C2AD91F001CB80A
/* YHApplyActivityResultViewController.swift in Sources */
,
044D0BF82C21572B00C5CF5E
/* YHAllowSettingTableViewCell.swift in Sources */
,
A5ACE9482B4564F7002C94D2
/* YHHUDWariningView.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/C/YHServiceOrderListViewController.swift
View file @
88520441
...
...
@@ -226,7 +226,8 @@ class YHServiceOrderListView: YHBaseViewController {
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
else
if
type
==
37
{
//在港签证缴费
let
vc
=
YHHKVisaRenewalPaymentVC
(
orderId
:
orderId
,
renewalId
:
stepId
)
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
else
if
type
==
38
{
//上传旅行证件
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/C/YHHKVisaRenewalPaymentVC.swift
View file @
88520441
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPaymentList.swift
0 → 100644
View file @
88520441
//
// YHHKVisaRenewalPaymentList.swift
// galaxy
//
// Created by alexzzw on 2024/10/12.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Foundation
import
SmartCodable
class
YHHKVisaRenewalPaymentList
:
SmartCodable
{
var
payment_url
:
String
=
""
var
list
:
[
YHHKVisaRenewalPaymentItem
]
=
[]
required
init
()
{
}
}
class
YHHKVisaRenewalPaymentItem
:
SmartCodable
{
// 用户id
var
id
:
Int
=
0
// 用户类型 主申请人-applicant 配偶-spouse 孩子-child 母亲-mother 父亲-father 兄弟姐妹-brother
var
type
:
String
=
""
// 用户姓名
var
name
:
String
=
""
// 确认赴港状态 0-未获批 1-已获批未确认在港 2-已获批已确认在港
var
confirm_hk_status
:
Int
=
0
// 档案号
var
file_num
:
String
=
""
// 可缴费开始参考时间
var
min_pay_time
:
String
=
""
// 可缴费结束参考时间
var
max_pay_time
:
String
=
""
// 缴费金额港币
var
fee_hkd
:
Int
=
0
// 缴费金额人民币
var
fee_rmb
:
String
=
""
// 支付状态 7-待缴费 8-已缴费 9-已过期 10-待获批
var
pay_status
:
Int
=
0
// 电子签证地址
var
receipt
:
String
=
""
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPersonType.swift
0 → 100644
View file @
88520441
//
// YHHKVisaRenewalPersonType.swift
// galaxy
//
// Created by alexzzw on 2024/10/12.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Foundation
enum
YHHKVisaRenewalPersonType
:
String
{
// 主申请人-applicant 配偶-spouse 孩子-child 母亲-mother 父亲-father 兄弟姐妹-brother
case
applicant
case
spouse
case
child
case
mother
case
father
case
brother
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHVisaRenewalPaymentStatus.swift
View file @
88520441
...
...
@@ -8,12 +8,12 @@
import
Foundation
enum
YHVisaRenewalPaymentStatus
{
enum
YHVisaRenewalPaymentStatus
:
Int
{
// 待缴费 待获批 已缴费 已过期
case
pendingPayment
case
p
endingApproval
case
paid
case
expired
case
pendingPayment
=
7
case
p
aid
=
8
case
expired
=
9
case
pendingApproval
=
10
var
title
:
String
{
switch
self
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHVisaRenewalPresenceStatus.swift
View file @
88520441
...
...
@@ -8,11 +8,11 @@
import
Foundation
enum
YHVisaRenewalPresenceStatus
{
enum
YHVisaRenewalPresenceStatus
:
Int
{
// 暂未获批 确认在港 已确认在港
case
approvalPending
case
confirmingPresence
case
confirmedPresence
case
approvalPending
=
0
case
confirmingPresence
=
1
case
confirmedPresence
=
2
var
title
:
String
{
switch
self
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/VM/YHHKVisaRenewalPaymentViewModel.swift
0 → 100644
View file @
88520441
//
// YHHKVisaRenewalPaymentViewModel.swift
//
//
// Created by alexzzw on 2024/10/12.
//
import
UIKit
class
YHHKVisaRenewalPaymentViewModel
:
YHBaseViewModel
{
func
getPaymentList
(
orderId
:
Int
,
renewalId
:
Int
,
callback
:
@escaping
(
_
paymentListModel
:
YHHKVisaRenewalPaymentList
?,
_
error
:
YHErrorModel
?)
->
())
{
let
params
:
[
String
:
Any
]
=
[
"order_id"
:
orderId
,
"renewal_id"
:
renewalId
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
ResignVisa
.
paymentList
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
params
)
{
json
,
code
in
//1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
resultModel
=
YHHKVisaRenewalPaymentList
.
deserialize
(
from
:
dic
)
else
{
let
err
=
YHErrorModel
(
errorCode
:
YHErrorCode
.
dictParseError
.
rawValue
,
errorMsg
:
YHErrorCode
.
dictParseError
.
description
())
callback
(
nil
,
err
)
return
}
callback
(
resultModel
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callback
(
nil
,
err
)
}
}
failBlock
:
{
err
in
callback
(
nil
,
err
)
}
}
func
confirmInHK
(
orderId
:
Int
,
renewalId
:
Int
,
uid
:
Int
,
type
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
()
)
{
// 用户类型 主申请人-applicant 配偶-spouse 孩子-child 母亲-mother 父亲-father 兄弟姐妹-brother
let
params
:
[
String
:
Any
]
=
[
"order_id"
:
orderId
,
"renewal_id"
:
renewalId
,
"uid"
:
uid
,
"type"
:
type
]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
ResignVisa
.
confirmInHK
let
_
=
YHNetRequest
.
postRequest
(
url
:
strUrl
,
params
:
params
)
{
json
,
code
in
//1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
callBackBlock
(
true
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callBackBlock
(
false
,
err
)
}
}
failBlock
:
{
err
in
callBackBlock
(
false
,
err
)
}
}
}
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
88520441
...
...
@@ -587,4 +587,11 @@ class YHAllApiName {
static
let
list
=
"super-app/renewal/supplement/list"
}
// 续签-电子签证缴费
struct
ResignVisa
{
// 在港签证缴费列表
static
let
paymentList
=
"super-app/renewal-visa/payment-list"
// 确认在港
static
let
confirmInHK
=
"super-app/renewal-visa/confirm-in-hk"
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签在港缴费/resign_visa_guide_error_content.imageset/resign_visa_guide_error_content@2x.png
View replaced file @
cc57a111
View file @
88520441
117 KB
|
W:
|
H:
117 KB
|
W:
|
H:
2-up
Swipe
Onion skin
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签在港缴费/resign_visa_guide_error_content.imageset/resign_visa_guide_error_content@3x.png
View replaced file @
cc57a111
View file @
88520441
209 KB
|
W:
|
H:
209 KB
|
W:
|
H:
2-up
Swipe
Onion skin
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment