665 lines
19 KiB
Go
665 lines
19 KiB
Go
// -------------------------------------------------------------------------------
|
|
|
|
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
|
|
// -------------------------------------------------------------------------------
|
|
|
|
package ccxt
|
|
|
|
func (this *bigone) PublicGetPing (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetPing", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PublicGetAssetPairs (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetAssetPairs", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PublicGetAssetPairsAssetPairNameDepth (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetAssetPairsAssetPairNameDepth", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PublicGetAssetPairsAssetPairNameTrades (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetAssetPairsAssetPairNameTrades", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PublicGetAssetPairsAssetPairNameTicker (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetAssetPairsAssetPairNameTicker", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PublicGetAssetPairsAssetPairNameCandles (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetAssetPairsAssetPairNameCandles", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PublicGetAssetPairsTickers (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("publicGetAssetPairsTickers", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetAccounts (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetAccounts", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetFundAccounts (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetFundAccounts", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetAssetsAssetSymbolAddress (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetAssetsAssetSymbolAddress", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetOrders (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetOrders", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetOrdersId (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetOrdersId", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetOrdersMulti (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetOrdersMulti", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetTrades (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetTrades", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetWithdrawals (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetWithdrawals", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivateGetDeposits (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privateGetDeposits", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivatePostOrders (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privatePostOrders", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivatePostOrdersIdCancel (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privatePostOrdersIdCancel", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivatePostOrdersCancel (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privatePostOrdersCancel", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivatePostWithdrawals (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privatePostWithdrawals", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) PrivatePostTransfer (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("privatePostTransfer", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPublicGetSymbols (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPublicGetSymbols", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPublicGetInstruments (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPublicGetInstruments", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPublicGetDepthSymbolSnapshot (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPublicGetDepthSymbolSnapshot", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPublicGetInstrumentsDifference (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPublicGetInstrumentsDifference", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPublicGetInstrumentsPrices (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPublicGetInstrumentsPrices", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetAccounts (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetAccounts", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetOrdersId (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetOrdersId", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetOrders (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetOrders", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetOrdersOpening (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetOrdersOpening", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetOrdersCount (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetOrdersCount", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetOrdersOpeningCount (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetOrdersOpeningCount", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetTrades (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetTrades", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateGetTradesCount (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateGetTradesCount", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivatePostOrders (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivatePostOrders", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivatePostOrdersBatch (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivatePostOrdersBatch", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivatePutPositionsSymbolMargin (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivatePutPositionsSymbolMargin", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivatePutPositionsSymbolRiskLimit (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivatePutPositionsSymbolRiskLimit", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateDeleteOrdersId (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateDeleteOrdersId", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) ContractPrivateDeleteOrdersBatch (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("contractPrivateDeleteOrdersBatch", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|
|
|
|
func (this *bigone) WebExchangeGetV3Assets (args ...interface{}) <-chan interface{} {
|
|
parameters := GetArg(args, 0, nil)
|
|
ch := make(chan interface{})
|
|
go func() {
|
|
defer close(ch)
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
ch <- "panic:" + ToString(r)
|
|
}
|
|
}()
|
|
ch <- (<-this.callEndpoint ("webExchangeGetV3Assets", parameters))
|
|
PanicOnError(ch)
|
|
}()
|
|
return ch
|
|
}
|