From 51ae876ff1630fed0115519a816556ae60a03e5d Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Thu, 19 Nov 2020 18:53:10 +0800 Subject: [PATCH 01/15] [binance]add futures api implement --- Const.go | 65 +++---- binance/BinanceFutures.go | 309 +++++++++++++++++++++++++++++++++ binance/BinanceFutures_test.go | 46 +++++ builder/APIBuilder.go | 7 + 4 files changed, 395 insertions(+), 32 deletions(-) create mode 100644 binance/BinanceFutures.go create mode 100644 binance/BinanceFutures_test.go diff --git a/Const.go b/Const.go index e193b1fb..a6172560 100644 --- a/Const.go +++ b/Const.go @@ -123,38 +123,39 @@ var ( //exchanges const const ( - KUCOIN = "kucoin.com" - OKCOIN_COM = "okcoin.com" - OKEX = "okex.com" - OKEX_V3 = "okex.com_v3" - OKEX_FUTURE = "okex.com_future" - OKEX_SWAP = "okex.com_swap" - HUOBI = "huobi.com" - HUOBI_PRO = "huobi.pro" - BITSTAMP = "bitstamp.net" - KRAKEN = "kraken.com" - ZB = "zb.com" - BITFINEX = "bitfinex.com" - BINANCE = "binance.com" - BINANCE_SWAP = "binance.com_swap" - POLONIEX = "poloniex.com" - COINEX = "coinex.com" - BITHUMB = "bithumb.com" - GATEIO = "gate.io" - BITTREX = "bittrex.com" - GDAX = "gdax.com" - BIGONE = "big.one" - FCOIN = "fcoin.com" - FCOIN_MARGIN = "fcoin.com_margin" - FMEX = "fmex.com" - HITBTC = "hitbtc.com" - BITMEX = "bitmex.com" - BITMEX_TEST = "testnet.bitmex.com" - CRYPTOPIA = "cryptopia.co.nz" - HBDM = "hbdm.com" - COINBENE = "coinbene.com" - ATOP = "a.top" - BITGET_SWAP = "bitget_swap" + KUCOIN = "kucoin.com" + OKCOIN_COM = "okcoin.com" + OKEX = "okex.com" + OKEX_V3 = "okex.com_v3" + OKEX_FUTURE = "okex.com_future" + OKEX_SWAP = "okex.com_swap" + HUOBI = "huobi.com" + HUOBI_PRO = "huobi.pro" + BITSTAMP = "bitstamp.net" + KRAKEN = "kraken.com" + ZB = "zb.com" + BITFINEX = "bitfinex.com" + BINANCE = "binance.com" + BINANCE_SWAP = "binance.com_swap" + BINANCE_FUTURES = "binance.com_futures" + POLONIEX = "poloniex.com" + COINEX = "coinex.com" + BITHUMB = "bithumb.com" + GATEIO = "gate.io" + BITTREX = "bittrex.com" + GDAX = "gdax.com" + BIGONE = "big.one" + FCOIN = "fcoin.com" + FCOIN_MARGIN = "fcoin.com_margin" + FMEX = "fmex.com" + HITBTC = "hitbtc.com" + BITMEX = "bitmex.com" + BITMEX_TEST = "testnet.bitmex.com" + CRYPTOPIA = "cryptopia.co.nz" + HBDM = "hbdm.com" + COINBENE = "coinbene.com" + ATOP = "a.top" + BITGET_SWAP = "bitget_swap" ) const ( diff --git a/binance/BinanceFutures.go b/binance/BinanceFutures.go new file mode 100644 index 00000000..a49100c9 --- /dev/null +++ b/binance/BinanceFutures.go @@ -0,0 +1,309 @@ +package binance + +import ( + "errors" + "fmt" + . "github.com/nntaoli-project/goex" + "github.com/nntaoli-project/goex/internal/logger" + "net/http" + "sort" + "sync" + "time" +) + +type SymbolInfo struct { + Symbol string + Pair string + ContractType string `json:"contractType"` + DeliveryDate int64 `json:"deliveryDate"` + ContractStatus string `json:"contractStatus"` + ContractSize int `json:"contractSize"` + PricePrecision int `json:"pricePrecision"` +} + +type BinanceFutures struct { + base Binance + exchangeInfo *struct { + Symbols []SymbolInfo `json:"symbols"` + } +} + +func NewBinanceFutures(config *APIConfig) *BinanceFutures { + if config.Endpoint == "" { + config.Endpoint = "https://dapi.binance.com" + } + + if config.HttpClient == nil { + config.HttpClient = http.DefaultClient + } + + bs := &BinanceFutures{ + base: Binance{ + baseUrl: config.Endpoint, + accessKey: config.ApiKey, + apiV1: config.Endpoint + "/dapi/v1/", + secretKey: config.ApiSecretKey, + httpClient: config.HttpClient, + }, + } + + go bs.GetExchangeInfo() + + return bs +} + +func (bs *BinanceFutures) SetBaseUri(uri string) { + bs.base.baseUrl = uri +} + +func (bs *BinanceFutures) GetExchangeName() string { + return BINANCE_FUTURES +} + +func (bs *BinanceFutures) GetFutureTicker(currencyPair CurrencyPair, contractType string) (*Ticker, error) { + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return nil, err + } + + ticker24hrUri := bs.base.apiV1 + "ticker/24hr?symbol=" + symbol + tickerBookUri := bs.base.apiV1 + "ticker/bookTicker?symbol=" + symbol + + var ( + ticker24HrResp []interface{} + tickerBookResp []interface{} + err1 error + err2 error + wg = sync.WaitGroup{} + ) + + wg.Add(2) + + go func() { + defer wg.Done() + ticker24HrResp, err1 = HttpGet3(bs.base.httpClient, ticker24hrUri, map[string]string{}) + }() + + go func() { + defer wg.Done() + tickerBookResp, err2 = HttpGet3(bs.base.httpClient, tickerBookUri, map[string]string{}) + }() + + wg.Wait() + + if err1 != nil { + return nil, err1 + } + + if err2 != nil { + return nil, err2 + } + + if len(ticker24HrResp) == 0 { + return nil, errors.New("response is empty") + } + + if len(tickerBookResp) == 0 { + return nil, errors.New("response is empty") + } + + ticker24HrMap := ticker24HrResp[0].(map[string]interface{}) + tickerBookMap := tickerBookResp[0].(map[string]interface{}) + + var ticker Ticker + ticker.Pair = currencyPair + ticker.Date = ToUint64(tickerBookMap["time"]) + ticker.Last = ToFloat64(ticker24HrMap["lastPrice"]) + ticker.Buy = ToFloat64(tickerBookMap["bidPrice"]) + ticker.Sell = ToFloat64(tickerBookMap["askPrice"]) + ticker.High = ToFloat64(ticker24HrMap["highPrice"]) + ticker.Low = ToFloat64(ticker24HrMap["lowPrice"]) + ticker.Vol = ToFloat64(ticker24HrMap["volume"]) + + return &ticker, nil +} + +func (bs *BinanceFutures) GetFutureDepth(currencyPair CurrencyPair, contractType string, size int) (*Depth, error) { + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return nil, err + } + + limit := 5 + if size <= 5 { + limit = 5 + } else if size <= 10 { + limit = 10 + } else if size <= 20 { + limit = 20 + } else if size <= 50 { + limit = 50 + } else if size <= 100 { + limit = 100 + } else if size <= 500 { + limit = 500 + } else { + limit = 1000 + } + + depthUri := bs.base.apiV1 + "depth?symbol=%s&limit=%d" + + ret, err := HttpGet(bs.base.httpClient, fmt.Sprintf(depthUri, symbol, limit)) + if err != nil { + return nil, err + } + logger.Debug(ret) + + var dep Depth + + dep.ContractType = contractType + dep.Pair = currencyPair + eT := int64(ret["E"].(float64)) + dep.UTime = time.Unix(0, eT*int64(time.Millisecond)) + + for _, item := range ret["asks"].([]interface{}) { + ask := item.([]interface{}) + dep.AskList = append(dep.AskList, DepthRecord{ + Price: ToFloat64(ask[0]), + Amount: ToFloat64(ask[1]), + }) + } + + for _, item := range ret["bids"].([]interface{}) { + bid := item.([]interface{}) + dep.BidList = append(dep.BidList, DepthRecord{ + Price: ToFloat64(bid[0]), + Amount: ToFloat64(bid[1]), + }) + } + + sort.Sort(sort.Reverse(dep.AskList)) + + return &dep, nil +} + +func (bs *BinanceFutures) GetFutureIndex(currencyPair CurrencyPair) (float64, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureAccount, error) { + accountUri := bs.base.apiV1 + "account" + resp, err := HttpGet5(bs.base.httpClient, accountUri, map[string]string{}) + if err != nil { + return nil, err + } + logger.Debug(string(resp)) + return nil, nil +} + +func (bs *BinanceFutures) PlaceFutureOrder(currencyPair CurrencyPair, contractType, price, amount string, openType, matchPrice int, leverRate float64) (string, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) LimitFuturesOrder(currencyPair CurrencyPair, contractType, price, amount string, openType int, opt ...LimitOrderOptionalParameter) (*FutureOrder, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) MarketFuturesOrder(currencyPair CurrencyPair, contractType, amount string, openType int) (*FutureOrder, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) FutureCancelOrder(currencyPair CurrencyPair, contractType, orderId string) (bool, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetFuturePosition(currencyPair CurrencyPair, contractType string) ([]FuturePosition, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetFutureOrders(orderIds []string, currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetFutureOrder(orderId string, currencyPair CurrencyPair, contractType string) (*FutureOrder, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetUnfinishFutureOrders(currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetFee() (float64, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetContractValue(currencyPair CurrencyPair) (float64, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetDeliveryTime() (int, int, int, int) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetKlineRecords(contractType string, currency CurrencyPair, period, size, since int) ([]FutureKline, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetTrades(contractType string, currencyPair CurrencyPair, since int64) ([]Trade, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetFutureEstimatedPrice(currencyPair CurrencyPair) (float64, error) { + panic("not supported.") +} + +func (bs *BinanceFutures) GetExchangeInfo() { + exchangeInfoUri := bs.base.apiV1 + "exchangeInfo" + ret, err := HttpGet5(bs.base.httpClient, exchangeInfoUri, map[string]string{}) + if err != nil { + logger.Error("[exchangeInfo] Http Error", err) + return + } + + err = json.Unmarshal(ret, &bs.exchangeInfo) + if err != nil { + logger.Error("json unmarshal response content error , content= ", string(ret)) + return + } + + logger.Debug("[ExchangeInfo]", bs.exchangeInfo) +} + +func (bs *BinanceFutures) adaptToSymbol(pair CurrencyPair, contractType string) (string, error) { + if contractType == THIS_WEEK_CONTRACT || contractType == NEXT_WEEK_CONTRACT { + return "", errors.New("binance only support contract quarter or bi_quarter") + } + + if contractType == SWAP_CONTRACT { + return fmt.Sprintf("%s_PERP", pair.AdaptUsdtToUsd().ToSymbol("")), nil + } + + if bs.exchangeInfo == nil || len(bs.exchangeInfo.Symbols) == 0 { + bs.GetExchangeInfo() + } + + for _, info := range bs.exchangeInfo.Symbols { + if info.ContractType != "PERPETUAL" && + info.ContractStatus == "TRADING" && + info.DeliveryDate <= time.Now().Unix()*1000 { + logger.Debugf("pair=%s , contractType=%s, delivery date = %d , now= %d", info.Pair, info.ContractType, info.DeliveryDate, time.Now().Unix()*1000) + bs.GetExchangeInfo() + } + + if info.Pair == pair.ToSymbol("") { + if info.ContractStatus != "TRADING" { + return "", errors.New("contract status " + info.ContractStatus) + } + + if info.ContractType == "CURRENT_QUARTER" && contractType == QUARTER_CONTRACT { + return info.Symbol, nil + } + + if info.ContractType == "NEXT_QUARTER" && contractType == BI_QUARTER_CONTRACT { + return info.Symbol, nil + } + } + } + + return "", errors.New("binance not support " + pair.ToSymbol("") + " " + contractType) +} diff --git a/binance/BinanceFutures_test.go b/binance/BinanceFutures_test.go new file mode 100644 index 00000000..a4b56f99 --- /dev/null +++ b/binance/BinanceFutures_test.go @@ -0,0 +1,46 @@ +package binance + +import ( + "github.com/nntaoli-project/goex" + "github.com/nntaoli-project/goex/internal/logger" + "net/http" + "testing" +) + +var baDapi = NewBinanceFutures(&goex.APIConfig{ + Endpoint: "https://dapi.binancezh.pro", + //HttpClient: &http.Client{ + // Transport: &http.Transport{ + // Proxy: func(req *http.Request) (*url.URL, error) { + // return url.Parse("socks5://127.0.0.1:1080") + // return nil, nil + // }, + // }, + // Timeout: 10 * time.Second, + //}, + HttpClient: http.DefaultClient, + ApiKey: "", + ApiSecretKey: "", +}) + +func init() { + logger.SetLevel(logger.DEBUG) +} + +func TestBinanceFutures_GetFutureDepth(t *testing.T) { + t.Log(baDapi.GetFutureDepth(goex.ETH_USD, goex.BI_QUARTER_CONTRACT, 10)) +} + +func TestBinanceSwap_GetFutureTicker(t *testing.T) { + ticker, err := baDapi.GetFutureTicker(goex.LTC_USD, goex.SWAP_CONTRACT) + t.Log(err) + t.Logf("%+v", ticker) +} + +func TestBinance_GetExchangeInfo(t *testing.T) { + baDapi.GetExchangeInfo() +} + +func TestBinanceFutures_GetFutureUserinfo(t *testing.T) { + t.Log(baDapi.GetFutureUserinfo()) +} diff --git a/builder/APIBuilder.go b/builder/APIBuilder.go index ed304c83..39395d45 100644 --- a/builder/APIBuilder.go +++ b/builder/APIBuilder.go @@ -303,6 +303,13 @@ func (builder *APIBuilder) BuildFuture(exName string) (api FutureRestAPI) { ApiKey: builder.apiKey, ApiSecretKey: builder.secretkey, }) + case BINANCE_FUTURES: + return binance.NewBinanceFutures(&APIConfig{ + HttpClient: builder.client, + Endpoint: builder.futuresEndPoint, + ApiKey: builder.apiKey, + ApiSecretKey: builder.secretkey, + }) default: println(fmt.Sprintf("%s not support future", exName)) From cb9faf127e8d4e5e562db57a6c19cd3c92caed6d Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 24 Nov 2020 16:37:10 +0800 Subject: [PATCH 02/15] README.md --- IMG_1177.jpg | Bin 72665 -> 54642 bytes README.md | 2 +- wx_pay.JPG | Bin 192567 -> 54211 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/IMG_1177.jpg b/IMG_1177.jpg index d67929bd485c47c615f46d61cba73268428e08f4..da66f3197ada37572afa347c44dcedb1f5695d30 100644 GIT binary patch literal 54642 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%0DEoV}U7DHu}f+iPS z>JiHc^L)?U;yjFAZhqj5=04gX0DPnlM?RXzp!!aklPanR^91Z%aHWYtS8M%PypAO% zwlS2`C%Jr6YuI(oqX#-JmxKrRh-Jp`@)-`R<_#x&D_zA?o=&+7rHN__eCOjd2zt%P zYLcghJm_j*{_Mh~J1hT_m%ihz-F##H^7-}@;yt-%I6K3HP^+Y0@H<&131T6Rp+>Ha zN4}laHnVHf4&w**libM)Y9DN09EQw*U+P(lSt}v$N$7I)V%QJ|k)AXUbRR0N*Rel! zI8<~bRkAdZ2!Y!$pv91wY)?3pdT}T7mi+n0y4Uq5a$$__t?PKoL~(+OJZ_3yHZihQ z#U+DYpL)3EM7i$29~^ccxCV@aO(2M+;jSgtSzE-|Pg@&CGjsTP9BKAK|sz%M2KOzI-(dzO^< zPo-@B82%q~gb;uL2$8WCK=NVK&#-z`k}J14x88Oh$iUJyaMGz%87xC}xjcx8$17qgLq-ABQ zY`>y<)4$i`#?A?AZKft?9F>0cQ6z#QVDZPGx;?%J4d2-9?|arKJvS(28rtM|=Lo9m zH=2+)xdupDc1_$rx*$R?HNqFp``rW|?2|q=W!FH=dPcQVsjeyn4INU^EDdBHGF-BJ zAwI|Vet)@%s8nKb?$<%GfEGQg_H|z|V)~=LenXh-pD9TOL5SZ|nlg%8c^s^X?}@o& zec`s(qsEc-_<3VcpyBf-)0SHbDhA2dttg2&J~h{fsrop*p2008*cVN7m_91C>nbE_BkD%OvjkEQ)VI4R;vnt&Z5=mlsh?5}ZHh zvfC}Q|YJMy&VlZDEiZ2^ZP?Ezts%rvtoqsVoR)2H^I}h!%KFB(I^47j7*f)?%u`mxg7F4{tcSoz8DFtsU==bbg;`8R6yOq=` zn}IPb77CP0ZM)f7U2cBCTrTN4o51AlCZh$7k!2{`{kGmk6rwuTBY`pRN0yoXm&=Ay zdEaW$Oi_t?L*WG$5!l?8$bHW9+HatYoYp4~R?ms<~`%-6>}S%;h8%*~;azW+vpv7Ub6QoT4O4 zlul6NzRWhdY?(+xtOET6>G5$k%`7)|0yDCxEuJTSkiRrZM?qIl#<~UURi{1cc%~o1LT#zlRl$iBLHSxEAvi17 z0IoTR*JSpDVA|Yq=GV>U0o+%&-hELzfKH~cpafxkKHDZqp?0#5N>&Yo8D)m@I6O1M z7#O@wb|Mp5r*C)PATPgX)u`uiKr8v^VZE1P=(tZu$1VzH1%F4m3+H&{3ASR{$IZh$<4y<+5r+ z^}~!&fV;guW;nRn^>8!D*S;f8XLGcRrc)mN77Nd$XQz@nKE2 z{FmKU2xTDp6V42L`6hJT6LPUqFxyswRjrx)FV)(&*VjNBx?n3XyWz57gprv6oha*c z71E2~|Z8$_~ z&$Q)pcGYam(SxV>0m;y5Vjhs~WADiyz3&EY^&&50x3y+~n!`{9t2U&d54CTQf{k-8 zzMOxYpodE*_SSm<(sDIX+q(zWT*auYUM132g@6w`?Chq7MuIzMW)x=+@}8Zp9aX?A8lUglezTrQ58cO#3K)l@vW=W3YoHy@MC=p3+SRnU%oNf2Js1hlnl?AXt~XIVb(gS$VF!$@CV{ zeo%nK44QYg`eZpF^mh9+|F17Org##0QBZFXV<(WDy}eZB7Rry*=xX7e^j)S1Deum) zD|)hH^2mENOi9F&sXHk@H1Q?rc+v}l1zHg}~} z8yibhT*H_48w+YmuUlX6K4TmkfmJQL0vA*USsK%RRuT?P(ND=Q<(qKW9SLzbuiQv6 zd^$GNBOVn}qwOAyN#8+43u_lJ4yTVGu?Le`j}V*j6$eK96g?5{>bN`p;i*ZjFYoVF z#|TvmuC>=ivzarlk0M{D;cC2CKOS+2EoPp6C%5Z{-Ir_cdy0G<1qr{%VQ#%um??B` zJkW^-uQu@n4^id$bi7Ui5&G>#y;$v`3o4oJfmOTjR$+c$LC6O;_i}E^n*LzEY=VM$ zdtRo2xu}bm!Twd)eGsBv-HP(v*TrVQ;tz_#s)@nSkE19&z!Rnw-7YJ-&2fAR``Us@s8*bQYjj&;!@QRb)sP*BM<*- zt{tyDX4nvJqmBxO>$ojb34&GF67lra-t?CAOP;+cRl{TAz9e<(WrOs}TBXlzS)>g26#$BR_NW9Nl*UYLN5kWyqjWf>8ryy z@!l0-{Gdqx&Ay=GwzFto2zlFnwja4#^$oV6&d3`wotK42pKXZI_LcqRohuY3TJa;b z^P;9Tik^&IT+-{p;y8N}|AP<9Y7UonN@&Z(I#O*?)sL)cs{64$|M{a8sE#bf7!p?L;1mpAQ!2*l^YR>9;Ecb?*>O&cN3uY$kMEJCK zn)Sj%smJ%h_Z;9PFZAm)tDgV#N^g9YiZ0iITPLjAQ1399i)!HKi#0Xie%CZ*CI7Pd zo{=0P3kbA&t{kwS73;nsqw8#0&orw8JkkTz%q%$l2Dap2BCE@h=8p^4*dDn2=1%XL z?BjTxA*eUfvB|l9wrkA`ryxD+mi;xF^69g{VvRnh`hubZxy%K%jRh#!W=dWP0et|S zsZwkER2%i^)lD3(yMVwqlT7&j{f=$;C?E`=!$BCtGe?A-oz0y{@;5 zX}`p$%AzPvb0d~)QxwFuTQPp$!P+zFtC)16I501*@Zzo%U^#M|{>a2ln47)eD(L8G zR=*81%=IeXwn#X1;@Mzc(B_pD;J*N+RVH_OOUF56# zI(`BnbPF<0TD4MCLaAE~FSUNRerSI+sdp^#i=7TNwZ>-CYi|9{&&zGy(z3|gJ(39j zC^F}FyC_&4NflAorZ}&WLl6%lYs?f_h)lkVdk`;9b_q!evPpDGx;>2?${rp(n9Y%iry-d;)rk9U zK%mzd-IS|T0iAF8xi9tw>OAM$tWZO3F29>45+0u33c0_G=&N2)@act_Cx^=$?i%)I zud6*XBP5bp`%iu~f>n`3 zG2&$JNV`nwN4=MxfzCMIK3jqDDs$+7xZpxbb)H|{+BqY&>k!$ZWC`QNq|ZdFjis+P zCZ^g95Xr?36`_+szcBB7*hY%#?T0fZhw8avSvfx4u2W=VyAe8u;Gq7E8Cd3>lZs3X zdA~O*bNQnPK^38v(ogiY8M#x0cAE5-Y!K6{#yIop2STox}$I2l1 zB{^uJ`z(x=N{B0bdFiYB2?r4fiZ#br8$ad)iFY>%3KV@yx~V?bpTR`bV7{x!1B&cy zC%JUYD%yIo-Oha}oi=$oG<5g7TH}CMG^+>Et};;%lvKkO5wvD7Tlu0&{&Blz)3kxG zwfYgAPYZChKp7eDlyVKMFVq%X{BpaxpB0m9R)fe>6h+Q{ncIx!4fC9Gu#w((B2Cn9 zH;fz!U}r^4&&{Cc-u=!z%cpJ+XYbZ%O!2lzBoF-^QTSndGE80%PMETmOGWH_#?C$K ze&9RErdA|UBf#`Sb8J8DyvKBU_z&3X1UT^UCw<)7x+xk#}I?U-lxa$#UMasz(x8|>(+&C!euxTYf5&qTBnf)hw*(lO-tnpxT-cPx zoB;koyosUIR&JTb7uJ!q0f&#u@v8DZ869h(0HDf`ZU;+uR{-W8%p5BV~iEs8p*9@ zNU5G?^*H!&k|G(2)P4EN+I#(Yv;dU0UG%xC!>WSz;pD~ahUWfYETFuGCqtBKg1$e9 zFw|>h7jH~9o^?FB?RH}_vKBo5m4O3ftkEe%v3*e*D{n&-%gBX zctLuQE(2)@mkfuunW!Ys&29CTSk*KqgR;n5vN*}}uBK+gM8S?=k+lN4t!B^g7w^A{ zMaSzR0!c0NB3@F0h_K2RG#{A|Ihc7?y{=?Ci+QH4uBSZkrYBc~3Hejj_*K6GRuDhd z)~&mFHoP#GjD=9Z_w}3xjm&Rl!${O@6%?7)Z-m@0@J`ziSoNaH3Mm~5t5}fq&hDl( zsV)Y5{4X?;a#z03C7Sm(qn^^V_tY#wz(l$Q%bN#~s1PbdHAV{(1Kpj5h*>j~?GnMI z65U&QR_4pZlL$|5LhV33PhylOYwl*VW?=QTUr?9a zTjNeoO#d=-e@cy-&5FU?-@-2YqVi*;qV_pkTNdL4;g4|(rDQfg<`k|9B@3fUdnK7~ zqd*q94fi&(yWP9er#$OSW~PPq^ga*(R5kepCw;C!KawHAL!Jp4W15K>y*TJjRgYuK z!8`SHOcr}xy3Qea(37)c(a~I;Kqs$Kit09;hCtT z7DZf*Mk*}-M4zfVrMP(2MfxgfBgbN8HyYeNNQL{35IqGQuhDw#yez~Z?h5vno@Gm_#U-sUW_`T;6Qh$_hU%IPZrV4VGv!hh z%UlufhCW((LgcjSNk0e5?G760O-@ow9=~Ok*2m=}M}lwHI@M`SfK*Cq72(;(&LbVi zbslM4jvjt<2Q2bL6Tu&*bAvam)#Ky$61S1b(FaijP0)pocP{3z)kh zlJDrILk;FzZR5{h7;;B0L>l{&38?G+>^F!woZGIWk6sD%;bPJfd?_5booE9FxsYrNvA1Qyhf1V(f zVID_cv%60x19L(2p7_`+>?{sg^d0?aV?E z5)@SW4U;x+)Y`q{kGT@#at3?6oGqdd1E$-3c<&(lq_JzZ3Gn3trZ2 zmn!orZfh+M8zQ8i{J6!(9L2P>l(EE-6!ep`ASUMnS3B$)fb$Ku^MGRXkzveX`bsnrrK5J(1rb*MeF~MyP-&`6zHJ{hyl}% zRYH%ie1bSz5t+_<`Vvmo=3cJS`ovLGejEPABl7P3+J{QdBn&f>vL$#mp%U*=+WBwx zKyFfX+H`8m_2d@4Uq;YXQPkKq@W3eR>JWn3!><1Fy|8=O*4$GVo~AHIbxo5&l_m<2*ObZv80Ho4_4yIZ;OeSsndQ>f&GR7s%ITz}@$l z+aTx?&oV!CB>`)JjiHV-N7ScFjK!5kOYggTaCrL+d!;6ZIOBalr6ASkJ0&F#P00kb zf0YUkdkBU(H}Z0mrw;VrZc?yzgM@zzX?YZF^;nPk`=ec-yDHR=QX5>46_{6#( zq}B3PZ~-4f-S%XS7CBb4-7;oawxacgpYn`jF^n zJ<$TgPB>i0I}m^puNOitsK^eARGw}XvMt|@;&v%fA$fi4L5qqA)^vV%+X|C{&n^!0 zwV^?!@{CKg++z}`ZOY@)ZZEbZlsT;!Lp=%=!wz_c1J=^F03&BPTg}lM;?&!061$0b zWA&!;}(iQb~>H>9*nt3iZk{h?G%NRC+XxcA7Q`PwIQ7K3$)#&Xi!n=)hOrK=n< zIR%km8iu&zEA~KnH~MvYA5HQXm4Z_l_>f`6pc9TLz$eHv7VKFHR-Hy$La9!i(lEkF zFWen*gg;BW=Upv7KH1GD8~6PruT=($U{m$4F6*fde)inJJ%xxx<9nmL57ylDjtvvm zB3t|GHPEhi4X{;Rb}ikkosu9+p>8!)E8j`I*QO46ErlN@_v~_CPWsG=>gS>L1-pU^HK(ONDh4VyqSRX@4P<$t9 zZ#BfNmsv8EFrjofkXwrKkpDTw`zoANut+QWaFjZm zaD}ljY*WU*zt|ZS++u>V5r3>m?m$2@q0)`*+ zIzDg#*`HB~7Fhe$-*~p#$h>`pUO=#TW#qOJy9Mg-(jeHS;^Se&z}D+9qjY}F(NKtW zW0g|(EJJ$e_{D4kMbV*)6n&U#Xlgos%y2CDD^Bep@ye-0Bs@d|eh}X(7x2*iR##b48=_LNuW!I#?LUl7x4Wb+#aBhzl)s)z5W<~ z7x)L2bi@;8Vwt?Bu_WA3T^)qr+~= z((0=LTsJIcqm3=nt1BUQOEF@#0ev0Y?yeTa+!r=;n;v5*Vu-wcZYVy`4e9 z8uge`RQiGxJK=8VOCa};b|JOQCdy;XCm9$p>0s&@P~ekNcZ=H>aB_GUVNoDqv9W&R zCDHy<9}J?Z`cibkLg0&N?9;TTnxS@&AL|(oiXZ$&k=G2yTul(%kRfhlL-8i?At((E~7|FTwx{%7uoMOhA5`><-ZIpxU1uDrtH7&2qAD=_@Nr` zMf>@W3KqL2Bkmi4c-6Oyn(E^Bmz*7JGEL_sxgu*5*`4v;=FD}2$3rp)GBlnPI9ctK zv#Ttce0((+G@<-~d9GJ+lmWPB_p=|Ls+mX|)>y0aRz53`P9%bQXx+E7SEM3-x!aHI z_gwzdSasEE{bQ_ktC%t)Md9x7$4-yt2!(0Gz^E^Dtay!pu;w7+L1KQ}y}6jv2&+XM z?hm(<@t@AM6g}tNl(#3>V|9vR8)H*5$sb}#+feQgdLb>nCWGF>6CEAomZD$Mj2JRS zxN|UZCVBuIZ&*1jPgZ6|Zo2SJ@ULeK57^#qDr(4*~=5wX-BQei2&m5VN z`=C9)1eQ397haa?`(AlKN6zUjBvrREWIzRa&{ME#&7~H?E+tT$n3kbF)53m-h0TyW zC&K(p0g9pLh=y))E}y~m5QYDmsJ`*B5jumGI?};f0&$gJ+Cd$#tG4Vt>`9R?XsoT2 z3L*An@J&b*$G;~*QM8b9l;=j)Dn{k1#^x&;^8NH0K$(UzV-J@^LYCu{x>Eiv)%qY_ z=^xG9g1j*KjXlfyKiUW<=129BK_8sYf@!{$3i*&8ofPK=!_-A--~w4E?U@)7KuCuJ*Ct@565ma#ujE ze*)KV+%HY$qfY$q|0oK0= zE-e=3bov+A?q6VgXK#0G8F6eG?&t0vSo*l8e}kX@fx&-Z_ZNQHzWo*ca7gapVPuHC za$_SapaEzBy1)~F6R-pP02kl|))k8Y_UeJf_y7jj{0IM=`pkdTe}b)LhppuT*kfxv z1UvzE!1k~Dz@IU|mcfR9%GSqGO!O}l4*3HBAXvJ-KH>oYqI3YbdVPI;`QiHd>Lb=4 z%L3LA24{>I`{-61Oz0s6l4^%|Lt(y^~VQ{E^vW|gLQxM4<9gW zSPA{jS;`+-{1u1@2#N8rrw2)}u2fjC|FA##|H#8$@d>ks&-;gyHqVaEkAc0U?czY8hZph~L}AlRjvpDXQuWw# zh>^f#)xc-dlG_8R3BPk%jhKwws5qcW_AZsDAsUx~R^lzrP1dv{8~K|b<~n}=Kh(Vi za3#62C}?K8&CJZq%*=M1nVFfHnVFfH+RV%hZDyu6d)6~^-`u(Le(e7Je|ICcLQ$tq zsgx)~%C~aL< zWv%P-u_u9(qO9(zylftyNOov$TY(8}O>q*V>3MVi7#Dez-Kw~V7z(LwTB@tu7)-t^ z_{zMsM*4ZAXt=s#wOO~e*U_)L8ri^osxfcFd2Wu6k=%uSu18Fwft-!yL;L9xsa29xgbNLj$zTN#^j4 z2I68*drvp#vDX7s{hpefwQb81gNgUKxwd>7B#FWkWvdl$(Z*Ll+FwUzzqewZiNs3t z`h9spGV=0!1pvGQKKZI_y)W-YvjC$2FP8JxinzGFUo6A;JKHdR{Tc!ofdLpXb~Kt< z{_u8tS<-<4EgEBN7b&8pR0CMlu+3Z1o9yEQ5B4Agp|9~l^La7Gyx`;j z|G-cw41b6Oy4ViMaK=2nj~WMh(SmSff=MKthBja{DVDZLv%mRYB>q?NRfpV;k-*Xj zMhR%m18FhC#y}T~;tG-Hj5k$qj=a!?AkLWL%Oe&3GiNq9bOCN_dusC~Qg}uj0dgnt zi*`{8#EMhYWKjC17i>PN3Y?H_JSh!cNEFwQUn&`tMD=t+ zhQ(#)28r5 zu7?Q0yQMtX@58S$AuzKrxK;?%TGIT?k@&Mjhy3q97x$=sm1Vp9dO5T_%oW#+?vLY` z>}M8F7&h|*{zqDWD&d_}QgMN2L#0K%iRDq*rB}zF;b;{pk4WM$!U>Ta|lC95hLeX!5#$U=j<*r-wTh zt%K2#Ml1ibzz+T(iW4v6EaPR@Om#sN899s-hViw8=1@bR(LaKpo-q&J~Hdz5cX;|lUr1p+wkrL`89P3WMqaD zP-Yud_@8B8q;O|)$5(_tbpW6S9Xw$lN*@)1yLB*QdYM&@)>489Ok3FhCoiz!_Ajo1 zSu^&vO1a0zGUiwfU}Ti#!S2m_$Az$QLl_XRi2)qZin^X62On1QV^&5#WWr!HG4;~_ z(fy1Fz3af-qVo>!gwqx(f6uTJfC-4O2xy`V6OfgTYGi=vL-iE^`zI%HlEO6D2nKk- zGTtbR`=?H+xkSf%QA=@L$$!iLB@8Lld4l=h2#$jZlLwQJ=$$^e1!hJj!$>)imyRkL z$Udx)E(75VwP!Xvtjes;Y3dU%uA|WeSkbmEQP-E5CK-ko7}S9+>dY*#gD*F5Fee5O zicT7dESwh3@}kR_H_D9v57PPlt!oAV`%e<({XOoVJ=d4EX7tV-19TvY7o<<@fO`x` z?1HHGFWFElZF2EcQncq88n9uhw<@R?m1@Ly3#ZNIN zq_*HxA3c;TM)7U0i-h{S^AuUBNU3-bsCtS)w}Y41A69g`5fUz=6Zarvams$!!m!iO zIY3QvP5#jk$eVy8fxQCfAe?by@OC{uN0mBv_m1V{jrz_*5f?AiSUHF6d;vhc>2(L; zX@Uem97Wn7KG=y&yL)3RN>OX5vSWlVk;OzZQ}|itYb6(a2b6O7agxXP*!!s*x-P4_ z{mqQL`YWuxSojL!(imBXVjT`+*hT$?Yq&-tS=__s9{2ibq~9=MN*q#5EwUq-KsJlW z9tTn`Fl=%O4+$LU>W!SCA`No=zLVWCjwEgGBUk~9ZZsiW72V8SIH6T z&5y~o4$>PM8g&Kw5j=ykN$XZPx$V{W8$h97^x%p1kG&tRLoU}5m)j^C-Bhh!sy5Fx zTettquaTYP)=ZrMcY8KH?!5urEcDiiQl*~iWL*CU6kLOLhe1au^*k3y+80RttYJrp zm!3d~QPaO5Ykol%i?&V8_VEtzI%I0^k=->n=rJRe3_p*fbFGr5VD7WPT&rbV>-{T$ z=pyVYKOVgT+${ECAx{koBl>x~Lwt`nwlK5CdOPNikz~4Y6Z+YLiOM~I*t0+5)ep2K z2sq7?qxU#huK%^Sp?A`X+^=iQsK(lO74;h&h5?cSsiLsJhs^RP2qk214CopDth970 zC?QB}Z?LAmonG*k?M=p?#iIFG>g@6UGJ!pp!FoG4_BG^VHBrEc)r_|3SDrDaBPC=l zim>NJc-->v2W-+OUmn0utqNhNsVE(kAAGDQL8?d68$+})FWkb|>~N=;euEXxl-WFWY;_(%?G|7m}-P5}>=)9Oz zn$n+eLKC(}qD2rHeGEA>APXWaR+U5Btt>Z&iQWZ6m^O=c!)0lwqYAS9`5JSD*Dh~jNC4N=O~qK(ladYDqhp0G2!>6{q#ymZ=;U;5ms~C3y{65I+Cx6; zs#Peh)|L1@jocYhi1UO<(qwM${QZTv>q?PvM_Ncl4??$aCG!M$K*d=vJ*@>8u+G)W z$DK5*$~ex3q_`gX$!c`Xxa2&CcQd_qeqV0dMYRR#$DmIjd5Cg+-SEWpQk4=YV>n*a zUivS&?ws_>g`q|vs4yHK8woYL&AVZ7E%neNwM-(jror)^#|@y+^Bw#nJOIc{Qk;@0 zM!}{vBR{1-&?}|$HC)oZXiC{=(KYzfT|HLPyI6v7;He^gwOKCmw_#wdZ_Sn(&dN`I z-Kbs2ipt*EKpB~Q2)WZ2)9C4+B~&@hPxh9EE|x%drptKicszxMJ~srrbZhBt;A^j1 zOjiI+f3lz}7zbCPLsSUs6H`Q@it|wGcFj>9M?#bJ6jMY}lr$ANYoB!L1z)hg1oaq# zC4p19ovA(vT;oOa=vsPjq9ZF_mL)rCj#bD3{-97@32d0?+P4XRCgCK64tnVIwFYoK z^0r+tc`_~H$v6Uy?Oo@?lS4q`n`yuaSTg#`=I=8MGZKl2gaJyxy_G@RYqz>8PliEfCWfL zi!&5xIP$9P48^uA?YNSTv?H~8b3k;e8yO)q8jp8&ubeP%Zx}H`L>&)e+u-U6rj!7B zD|Q}xo{jaMiM1fH7>0c^+zJ&8tOFwp;dk`)qSg|I2A+G<%5hcdSLQIV#RppRYb<= zSN6O57_2c!mkHdds6OBEhL9hy%RH6^B9?a^%- zHQF8{pw50A;zy!?qE^_v;BMur7@*KNVIESdu`Q-ClI7Ha%#?>rpHVHzR zDZl1n?a*0402n1L&*7t@hMe%%UmY%<<7SaHS$B@xJhhid-(X8Tib`0nGrPi?dq zShgRJGv`wuh!64DG%!?dh^6(Ko&;J~)E4u)p4JMl`V&b`$2RX9tQd01j;Fy4o!&+z zq3=}fK8$!({oX~|f`KlONy(2J;t*4~4bS`n`i#JG9Jk0T!6mDzt*R#i5Ap9jAcaX` zeJvr{8I^?TyAzCcDa?L(wtZ3=k(cwtnCNI^6tXEAR&P`i@7|gCm!YuSDt3`he=_P4 z87e=glT-abNU%1PLjIYu%RalCbj)22BV$U{GogE;z+LUoVfH)bJIZKxzf=tv+#B$n zmD*YzO0Wq|DUbvhk3}cMruZ-Q7@ie-TP%bPdI#{!rHSO>rYqLO|FMG{=`_emEaKaMmta~|X$plc@QF&k}F=tp?ib21e7~=S2r14091tgS?`PsjE!|eu`VDl>_Z&!-$nziT_ z&FXBjR&7#u7L^;lT`PZ25_Z9zyg5QN5p6(F2Sh6W!k|bx2U~OP3YDq?Pl`AdyUI9L z{K94NIBCBrG_9pw2#@sSIo@dtmcF zNL|+Yq~zEn{OP$&nU6g1I;`D4F1#*-HhoNuls1f(iagVBqUKM_#^r5V7?)r${J;Ru6#d|A_Y zd8SM3Sj&pYL@}doakIA_v_&=Ec@o1S=qe*baLO^^worm;-La0J^g(C*C22I@%Bx9{ zLV1#*6##d%ROfnn^v~z^MS||-E)$SNi;_B*r?+yv^L40!mFasH4zYjqPRuw0GG?E9Webv3AQ#sn~&hPgrx7Ak3bN@AS(V; zG3}Q@)i69c`?Rz5YNqK`+9a}a9m}{cEW<4mR8?vg#A?ee6B-H6AJZ-R-Z=ZTP6ys^ zZ8CU_IcmfWG~g}7%sJn{>U^I?L-EMIR}YQi_8b(x9ChTf>pxZNX$|D-vBg!7bv;!bk!a! z|8rqsCi6Fdo!{FOZK< zM9iq~AHRFUBq$`J^v7uYYbk;caBOFL>e%WG4IKW=I-k>@wHXH@u&$QrQ+O5w!y3Xb+@827&up|?ppftdxUOd4 zH-Mz__%c^Qxaee|=r0JU8h1=^=dT%*!7U}p`kF%4G>7T}$^%t3I4W9{Q0OKICjoEF z!K_W$Fu^d*xwCV`n}j-j`nlgsx+Osf%1p?0gBa2@@l2nACjv=W%M702>(w7IOr{74 zDWqxB3;8Ak48qo1^=|Ugg^%YGrq*!H#Dx$kTR`3k(9A$$j(bs?=$f}!F(gV|yTztAQ=3Y+R{EQa-9&ttspOz+Ftn?6gwF8=BID zWh(fDH1mM)EsL4eE~tY=AthR*4tuFTY;x@>FXt1)fMkYspE#&hi5hTncU8S;*2n;p zByE975@c<8s^7X{mE^jD6n(LtyzbsoFj6hGV9+}U1*vl8gn&rLI4Lik30{FJoQMs< zh=akKl980Jr!Ll8j>}r2fhrk_nLH`G2=#6poa=KD{wg;}DzxeZ-D%Tett2-tDq6j| zInl)`M0-Zy824!%S|sCs-BTmlr*i9~7WP$%HS1wjRXM zqA8Gb;#-s=OoVya;1R?zb1}@a)DNHY-l>C?(J=;DBhpJ9s-Yk)P9{h9ewq?iri6If z@}6m;RFbDI2kq$THC&9m4|4a*Ycz8X9d%kS^yBPfpYQW+XWIPNm)` z;;XwOCLP0oO1(g6vaC*8W%X^!0GCHc5mr`LK*3l62iHEuB12wShFgjw6Zyl}9}sUR zY<$XsphP{GMukcN2fJ*7g;E~*&|H9o0&da(Z@mJ{q@KotsVq8;k^v-9hMa(u7o*W) zwAeX>bS-2)>gUWgAPS~E9a2fQU+I^XU+U8@OovRYmrt;)(sy6J-l#OUrUWZ_v;_eH z=@95sdYxbqfy1)e`N3@3rsR!vA%W5?GvfPbkR1EG#A#+k_u&9JzTR1h<7Z4r?tKBW ze@D*Te8ql(1$MWvvsssByObiunKhxwIU+Q3%W&V}&CKrrzF+ zO!0(*qadQigfKsi!oE$sAR^maed(Z%_C@dNaz~p-B6zb;s=7r~tZJ}EcQ+vdhdnIR zsv1JV8j0K!o=V%znNG#oof^7Zjq8USnw-L(L`ej!0wsQEGmuI{d3cc}oIrUIWoc!( zM`Pufp7vee)<$oKNBoE=%qXo{qfD+nCt zO;rSIEsaQMi5vbJWfh~03mSis??j|5FSJ!#U#EbghwvcqIS+P(voJ$FY@4R3mO<0H@a+TnuaT3)}1;XyL zRaG~fv=b38=s(T@Mg_j(V3>@ALAOL5A8ZGA)9^la8%X|R<;xDNQ-73`sJ!+qolD5+ z6u6{ZC(2Lg@K2$54nKBg^A2((;epgie>EC?K{|M>Z%pj<;0@0=#$jOp=IJ z9rh;M(oHis^SHv@SmxjZgi#H2%EP9JIHn7Zl03abkt>Ih@#XP%NH?X1eXcJAm+U?r zz*NGCy9AuH_f?r^AXxlRId@xFCJ!P_qpc&APQ)+{L?J|%Qg-lq6EOmQ6MMNtMskXY zh(HFRGKxY_@Nk+qL1~9!RRBVMR-6=OvC6q)lm>f90i%cI2e)ZnXRP1u~=POYw zE?Yd=#fLX#hk`{g-=l&#n+eidIafVJZlEGPkTtIG@8a>9mBd*n0PK^ex5kaTEsS6X zfGeE^G4L1Af~YEs&77xDDKfi&$Q_|p+N+=}$%n;`P+u1DyME(}ve1lkbP5*tttdQa=iY27t7-Ox}cK6#~n&GVzQeT@felE8u67+H`|> zw;XDQHj<7QEuYmQ6a8a1Af#RFxiL)PmlttD zS#wZP9YYcL%!45D1FBHxZ&^L7~W_Rc~0Z#(QF@XRhy74x0bjyySBs@d`j@~jDtR3J zSRz0{V3#0(D80j?8I*n|l*%LNZ=tEU=$wpfG`~ zR#Jcg7oZ@$RhUL6Hpsas*0onBtKjyuUIc@nOF z&CbLwkLk?8*-87d5hEfBC=nSo%AJ@&AW_m3#q1Hk|W`L6)L! z-Cke%iR*qjtu|sSb$w}Z{f+zAF|}c9@zbwn*U%hK#}tN*`L{QX9|JQy?Gxyir`{jc z+PlX&n}<;@58a>3H8=M&HV(sF9=g7ks&4MbtsI6pU35Lom7U!88(H-+KU4qL5L{yc zV8{bTVK57&9@Yo#*f9-OoX!!=pwKqX-^`G34(2<&QpuuK(X4$N%f} z{s)3lF0o6Wd?yjXlZfCs6zBp03h&};UPE-DCD1-!hfj=NCXV<$bS`P=~1KQcwfZF@j?NdQp*Pmr&D__H$f^4|{ znzacf?GjncB~vcLo)BEL8mMJXO+M0me}lHJFJ_?Q|r&-dc;7ceQ)9u}GgITT10!x=*< zX?-_Vc_Q1Ad^%{ewx%D>1>=X#*2Vd1j&&_oinA^s%0;gE4oH*xp03uB~#?@ zRzB{sIP=l0GwM0JEOE;d4u&R^;G%l)y?-y${Z@B6b5{aCFlMjsitpajmNLskBibt; znn)c@-7b+o9A6d^Clt2riK#i4HXp;J-I?cp{_R>zdBmC4r$JDF4RuSF_c5hqR=Fym zcOH9RAu&y7UCi`eWlUk_1L?VfOSU@IsS|%R)8p5oYu4>bQQ>F4d@{-w>+IncT8q&| znN-x3sC+F<*778)G9F_$@@B|UhE{~yE7gQSU=T-JF^`$?oL%zInoP!jy(G!07>p&EjV ziFV5Io|r;p9>`4}qM=5-%oDJ?HoX4recnCaId#Lz(q(%qFH7O+Ls1b6fLbnJE7ecV zA`0Rdsouiuu}}lka61?yQ{sy=*-yLJNW>Xc)!GfbJGG>)8$x0Y6>{%4mUlNF-#87=7`_Sob6jO(mjJ=HTZBlJhDI6?L z#xE9z61q)NUcYjQw4M-ZkQ>g>hiOt=cZdv>D?cCr1p!PbCaIy020c71*7epAL=0}; zdBOF)B5>(ege@QKr_`9H{+{z?zHh@w7>qg;F#d`162c>PT{3@fCYs(hCOP2Nd=*Tl z#3%Q?Ol(j89MKVFV^^j*4@2^M=5P-%{d3ukJBRyk07ijxOG1>-4S;P@-%S%X{pUrZ z>7_6^RX;3$J`mhmb7`jLymcWzrY$eEp06*LTkhrmq(Ab-UGu3hLlvU1d86~NPAP23 z3WuC5^tee-2EQmwpd1?P&ixIbtc!JhRmvD@%Ff)rt)<2o#bn0DmJOKUInGg9lef6` zQ9h|;zy-jl>-@pNyY`dimD^J{*(Vlv@5BCX$ONz7a+Xd@9zdBC zH@a+h`(L`8cl#IJ&W9swUgs0B4KFLHzUyB%JmdRXTHcA{uX9#Xr~mow_OJg)@PGR4 z|0P^|Z*3iM6-&*KZw9%pFLP_(VqtKHc(1^3p7zG{MVkMg29 z!?v?5TN$)U%bR1y-vPP^n`E2A)=Gz3d#@aoqia(0ZcGNFP`FHtv7YWk4yU_cF=Wz4 zw`gpU)dZ2>7BL?wc1{Ovn3np78Z(}kyNeJ>Ze#ul&%^2qQp+Yy(hti`03VhEC2xuM z@BjUd>q)MN<%WpZ^>*3IMR2tnx-6uCm9xAalE#=A|ulxCEfnv&-AG zaF^d3bnjs~el7u`rNVS%`g*Ex$e6mS@<6SHIZ!YhvB9vM(#YzsXVd5rL(ff8Po$Yz z03@r48OA_DiW`uELz^9bK-spOr6niVcXpxOe)%|`?vFj{OfjvPz@}7x$Of6^-j zVl98z_0Xaxt?aT~HAH}a`4Hh?14xRc)*oTBk0BL=G+sL&`OECBjCR^UBFfrF&|!ON zPI}sb*@|b7HL2|d!%9x#ejfKqd!GoF1~5CCG3$wK`=scpLBY(6UAU-$KkEUhVBhOcMgteYu$!as{x#v6m-I07(n6V@& z@-OyV+%>ob=2aF_cNy_KkltqI65|P?yH4};og6jnlm5e!#Z*b(BByNE@*{TF8*#i1 z7~?5~Xu>GFd-+U?o|NxnTUkyvzdSi&>K$%%ye|<7w;nLJY%KsLWNP%@2P&q?jB7ZH zgFIqJhl$5iv}#dyXec^dDBv~9wIZx!e}gZq5_kesOMz;uCMoLHTmspS>q+MCi$^JL zI`GRDlo>Ww!PubMk|*V&G|=)6;>=4XT_OAppiz-f#C}CnBk7b5Ugpk!lCu)!V(ywH z!khWSzYpzc@FVztObA^4A2{7~xvU*w+o^fD5qD|0bG`w|K$4l7Q!SShqNf{m|3Ut?w(KYjy)S>gA^Qi{i;nYS3;K zF*RPMyfjmV0v02kDu@x;niW3PXI4;+-YZe${qp8grs*P3GNV z&<^JNPnMuiTx?x(v9NAA3Rdndme8j{7%%;kd5vYi<|6Djm&|*Obe;(*={13ED1xAF zL2B3NmJRi3;sLcgBK+!N3e5be^mZJsUm97tThQJ&DHDf591dIY$)w97A$R8cTS66~ z(6UoCh7$TDu2^*XEh|L^QNzxg95$e&8b~gq3(fa7WkP^LXMzdU+T^=aKWHW`q^A!f zEw7?=v!q>FHtSXC;v|mGN>?JLZD@JXodrtoSg&kUWW_2oO54Lm_o1xKArDAc*A^)? zk>>FA0cB57Mj&Ns#|||M>e{1)-AAL%Qt>3=gxC6Iri4^LBgK>|)EDQJY%W?$GKc9` z)IEQIqf6yLURQ;Sj9!HIjm>AO(6 z+6_X2k=)04YEM~iRn?|M%p;|TMPmwOa*V0zaGz@>gsMKNorCy&pX0*axPxVA_Qaf{ zhoY;NMiDJ{sO|~?j+9liMApR`gy#9QVjMNaY7}>CT&q;8qt6a6@*<0Xv|gxC`#^eo z*vWYn(Ua4Sfszuo1c^;+TqW(}dwG_RRIQ->ZlXv5GMJ+19i@={w*AdrKumFqauxc3 zl!UP?thLlOMa#Kj-5excsNvBft;R~*$=ObHSV;2(M<)hr*Sy$pk1)~Ke!+dkOl9Vw zS#d7xDbH7`H@?AzR9FV#|c>dIT|Pph%qa?MeS5&I&YP%@p!U2MBir_4>D z<`}(O;Ybwez}N?&*skeKTI5=#sY+WKJk#;(DI;S6mgZQ(X4IM^{4fIH&`0{ylpCot z*&|vS{eewQP%)dvYD(+=<@DI@;_Gx%A&z#z{{B{xUt-tA5@9jatw<%xtrBh9Ge=dj zn)W&lB>m0vYve5oGm5!6{n_^44nWwI8p%(}9q1<+1<*9bXK*Yqn7o4N;B!NH*8`}F zAM_|M}yEs9=6Xk(ogi1BrM!&7%x4SIdJ;(MlRfXmim>f8d60AtfzOhMA$gFAWuwQ zN-o}2@tCCR;1_XffRN4{K4EGq7&ekfY$TT*if(bi3McY(QCNa2U^r};AN|FxJ3cNs zHG$D|B$vKm86PmdUp~8ri}yB_banXx7ALI6yWiwfF!wt3sYJEb?k*|LiaWn=`|##P zYKoC+eo#Fx4*Z%Z^ZVhXrGoOH_8WlR0z%sg@`9rhYmVmyQIXSPn);(#r!q^<@{}d? z4a>J^d+Atk$J65@!i^Cb*VriEhj(3FGL<*oeYxR%FWc`^((CRt4O?XX+7tHHjq7v! z>hIEfD-+f&_w(vR-S6Has_)a%Ew8G#<*C)F3V9>)O_G4amWf zfjbLoa>!wWTDzO;G(oyUCk4}}Vg257FKxk4=Nl<$QmRV?JDFJ4lNFLC6k`&yi=juR ztyS|kX>CbAnWv3VpZEMQTyQ-Cw^y<>PiWdy_B)D**kpfpIHNn|(3kj8-B`$U8Pw~{ z>`^%A(Wh!iK8(?VT-I@adN`OmJLXEGAr!3HKk~A$U7;O;WhCRMuR3$YRch?}4`&TB zwgn@XnQ_$p22heY!j*dyF9~47?{*pSaZ@c-2uk#Mqat$8G7hd{izcJw)u9 z%hW-xm{J7jBN9K=SP|4FdoD)o*ICT_DxQjxPQVp76|A`;>DO++Soq9CO#g#$a|6jj z>-my_OY|}{%P=W{b=3szxHLX=&oNtxA4SI^@tS!6{fdH`vHzVD^>s@wve9JY8rg_> z0X+ee(>*74@6jQcB3-Fy%$%xCXof-$Pv##oUviLeSgFF;ng-1(DHkj!LbGdDj9~>< zT?3)dW>@pt^Fif>cjHhp8k#i|Qe&>nw$;3R>po`F8athlwMgfw`+kuM!P%OIhGGm= zU3Or+kX0jlSxOyDjGCJ6X)$=fIylu2YFUD-b5Kc5lnl0{Zp|+g$GDkzeMoRHfg_j* zu9q;JK?hsk_@TTX?S~stI$>rcgA@&cN1=oYTRk484pOkbfhZm_NsE@2E2?dc3_&M@X09F z6icSsnFK^DN{BMGG`{-C_i>SVod7Bo*B$j@fmAdm*mc=CGyD#%k8lvG+6hzhqfYd-$Yxac4kj=J?l13wVdxkLJbsmDC41pE93k zb7951?;-*gbVRIHD! zRJ*qrFcw(GZLM31UnW+nt0FSVBSKf4K}}EyiR4qQIX#>`kBWB`Lo{58X_rO$Hps!) z-3%C(j9GLIKaDlsP?B_abp+^Md|orRzTrs5-DkXFdWsgb>U=o$yl!I-drkRj8|3nP z=L?}oH#HEBw#19v8;@5%ofm?Umf#vta~F5URbCKoz)D_yx9Ye^F}$^QTE)-$aproh zJD+>?ms;66QrwKD_`(8PYoWYWr`NI`Ju%(HnyBhu_;Z8mo+#dS`FY;AE(5bqH`$&# zF!8murzEE@zdPJ*TBU!V#E{ph%=8H}8V%Qg*vnLjQSnB?(U){FNjhq=hX1Uy^TYc)-r>FE5lQumvyvb)G&wxQlu%R;`r zBYWdMxm!W8MWu*!p}f`hl17DHSqfU?m$6)V*V~>)`a4ye+v*EUqJruPH< zKH5_TmG~3pHC?nuFupO;MrO*6bmcCvC^Yxw=>a-E%%8q%q)VT9V)kN}eui z9vSx|O~x@+tTrn@9;*SVvPY8R4J13YTDSC96d966gkrc$QHs9TnXpx{T1JrsgEswC z&iw3|PD@yTh|_YFqnv6Fe^xzd@y;(T?&vp6;?@{X^j!kq7t&hGRyO5P&1;EImQk00 zkeyJJQ+ahmMpnbFBn+o1r!27{@t z^9U*w?3cZ}lp$PJOO48%v$mqB)|QUP2l>n`tq&&VLctH~wQcp!40vLT+puoH$!aYV z*@3Gv_D|#%CBUk1g7addVx#PolHA-(8Ou>dGS+oZw4e*&!A#S2I0^xE@iqID%&>>f z;>EL1>9gv&r8%XQa7p2!4tRv*CE5*-A(G_o@2JZYOLHE+MAw8O@0g&YxDi&}zuE*7 zI=g8uY!wuSls8iG%T_PyYvDc0H%WPGG0n;;K~b@@L(=*W(A*YY9E?Rq$X8WnVR={u zy`Tlp#xt`YE=DCtQkLZ%3x;=qZ_DO(EG!5vj=9`j)Rs~EbL|?_q8STQhqxEV$v^{c zNI0;%BvQFp1EVN_DIKjR6K_gPhPnfPD5a@gxBf*x;K>fOk5m$Zy&@txDf}5{+m_d$ znnOYs3dm_*^N##`mfR&8)-EGc9~)1|~od)+%g*}sl>j%yoy;FMqUCLm_hf8%j4r`@BnFG2n~ zbS>mUPV}lG?2`l`1?F2hx~kIx($72PbQ*C>_ihqcnt?!5A9gX1U`Z%52Ky3DY%VnRTX zld-^siQJar1O&FYde=wJjxjM*x=i zi;nfy+wXH0;ah+SC+^8;f%q_`gstA+F^UBdoRq)Y9a(-TPvD$NHq9dVFmw-`Eb^Xg zDeiQvLBQZ2VF&Aa3w#{E%ILG78F!RM5^NEI=_v9#4eEnPE?FuuxYD%5&&de8AJ!#t z;!OH4iVgpmsH&!ch1Ilf=D|o^e${eRJjYQf&z@&4o_6k+S5qJ7u;_jb1@AJq)b9Q1 z?YZ${33|`-fjo_S9$^f}ytJJCMs2}dG~+F)KiCE+zG3JCquI)W6W|c4B}sS8Y$`Sr zZr>atiNitDx$P_!WY^SOvu4ZNb?N)jOei&Jf!ruul(LX)vy#~!8) zEi-w1lEN#fIH@Qhj#VSWvV97%EpqZ!16mXA%BE0m*kwJcTBc$Pe?3EC6WeiHwiQ9k zQW%t+eGc_;nRw9sPR$r@ji%);At@$bG9w&FQbQ-koDR`FcDP4U=956z+dkTqeFT1{ zGBerJw#z3e^Ifp}b!FJ-cGSYiZzDF9LzCLdn*~g;*My5xN=Nt#S6@g)w7AtIs_>?` zIjBAFEg#BUU&93r+&3d056P*Annt*)P1Sy?rGN+`&X7Ggp#g_xQ?nv9sNCEYfl5)i zxMnAg*5#F=#5jrMknB52v2O060HO&W0l+573RLJyAKO#ysSFv+mA4GWaP|WJCsvh@$&wtt(Zq#Hpc>wT(CYWG6bTG z4{tBokEBwKDTdjgTQ=vDSx>0Kunp;3vqB z-$pSOZ}@{0Q%&Z8IiO^y^)6&Qqe=_E8d_Y`bi$M7xMY6iXg&_9<&8YS3Y?=XMqkme zt+^^VI&#e-JX$W|oSIW*@1VROq@|@2>*}P2iDMYo9ri#1(cxly(&JQ+ShXnW8m2|n z_B*X-UCK}5Fpmf-jXvnsi=R2R;9>1B6qDl=FCU)a z^|{35$J~GO$es0i#&MYx_`_J_%GgZ#uxlIlO3d1i;}6H zjMPw9_6?XP`FX^^p>HgVnE8JSyMTi2}da9_Spxb3eE(yvS4cx z9_xU|hw7Jwd4{&<#^rD85jzkTUoUU`m#QW<_I2gS(W4HqUyVvoeZE6;X&xj;WR`!S%DgghcP6Ie1Jf zZayb$)mnr@+1h@p&Z82}N2tR6uvk6iYobZa&qZi|0K8uAM}P_jWY|@HgP&i?Vlh@8 zuHlMqLHs*WuD4Hw*iDT0gJfM30LP>%@9QA@nYwIb>Nc zL8FWz`+#a{b1hIo&>>hMUuZD6$}bV^$qi~txL^`PkyUFFJ<5?G-DHk3o6Zd@ z@ctZA)QGSslB!dcgv|D~Q|2>bQFk}b>8R-MdfZtTJTM{92Z6<7204bI^1E@5zYmk`|D z-66QU4(_f&65QQ2xVviz4uRkhG(0=W^MBv{_S-$*+4Jq*b5GOLQeC%asM}p#RX;)d z*4FdQX<9;umQw$)W9M{YLw(K0u8T7}jkU2Z2}aAsX8YTv`Pfkjwl%3Qq0C1;m%Z~k z4a8C%6~#_itG_VS=3^ujELxLPtez4`1>1ocmVwSz4W{6YF;P} zuXJ)H99v|IL%J`C&`sM8j$GerGak-)%CA+?bo6Ja>oqf0X})ns{DNSOj-njU!-l;t zDr-x3$h=#ery317tbwSpTWZoN%PPAgKHmJk=kTLbcjy*HH2U4A5p`q!^(NO(1+Qif zp8vFjv3R>40wU7v{a;(R_)q-Dlq34{Bh#FKW*A* zkYp(D#K)qZ4mnLyE$$U2DrzpVKw^M*%D>mJ=JP*F;2h>?p3vYt)yvcNNLpmjBWV&c zrRR~1IP+M=Pa7aJhiLB_Tx6G|$l&xn^&Fuz1W-+X?+&XtebJYi_?_c#qvJ_RU-6g| zWur%@Gi9%)sVEq;Tf_T4y~1)73n|sy*-6LORKZFu=?4R9<*#)eJAzbOua4oCJ^rNp zB3jD2Uv_sA$`s|+`M& zGU17{PTY^Qv~-?WVvGOzG>7sbB4|@lijy>;mNkbZ7&@R+^rVjQ%Ug3GkuQv8duxu( zB)-ga>rulO&JU|P8C;t;n)FJi7HX*}r$*b3oxv}ILDm{R?CTDPd>5b4jPt*QOXlvW zg@0|sQ_CCdugrft|1Fgh%{;2_fCevW0d_Lu@BdNeGL|UktAMw3igA;gl;gI}O`#B> zZ>iW-3hi|QS6mMoRnz;T|UvtGx!NwaL;#rE)>N4fkuCfq|_LEbP824YlG-AV#*<=-TqTiCi{iCv2|PB zlzDp-EA_f;*UWk^UV`3-hP;8+dNcc;tb^y1gUVVHy-!eXtNc?tNq+-Rm=nqR{qb%U;at?Y z!7KOpCs^T++K+U**BJ}%I?+DLBCem5)k~9DOscc;;H9`4>efuJLfF~lf3#NkM8jDf zv6NfWUg+rmV<&2fm%u@xUBhFXiFL2jmEXJ@5gsR0B-M{Wsg@7LPz zcZhTAYAUzWIMni6sQ->%Rx;_!7+=e84X07)^ocf)vMB7o!AwQ{HV-EIJS+>mDhUn|SYS7&Z=_iVXg!#he!vkC=L9|nc zlsbfZIrSypmti&%9-plt0FOP_kf-}(C6aS^jw|40BCykCsR?x}ug!{hj!IG$K&}JgzU^JMVKY>rShh_Jxrl*z38~32cCl1s1J)Wi?R>+3MnFNeHx=)qaW*ajmRywe9M4USh zTdmsbPp<7Sb$A`r@iXU50_%hN{_Cs|V%DtK8P>khRwA~u;z_|a@nGdpkIFp6mDb)% zDB{3nXv?YC?o~qv$X-kvbS3V&>C7FtOXEojqcxF}>X&sc%SaN@77_eCkg{LRv$xnG zr+BVVdx*wWJ+AURS{5leLhMrYonq0&*9DWvktWbH3BELG(riqmzW4F(KGrZM;QMjV z4|E7#Ou-*tKL!j)^gtjq3>4&o{u@IO2*4y~7gfbDb-4;oE@%Mtvt5g*%Q^c6Q;5UM{m7s!?qoPay!ANH%S3429!kTAzyP@Eo`KDQ^!cvp zNM}{=aHiVr_hb)3Q4kKAZy z+`gf@!QJU(2X^lA4S*4|X+ol(g^erivfTR5@WM`57o38x;doP7h@EkQmmE!Jgv7kV zcls1Zs21m>KK8T8=fI8oG42&VM-V$K+H+|rzV2(?AVC7J)K^x1FcT57pn2j2VCP(f z==T7bRt#?4=#kxXFZlCpmJn8ch32{&skI2Ve;ASlG{za1qe@PZf8>?XiH#xL*e*5z z5s75sXyqu$q(!>FE~M3AszB^eU*a@_8%Hq z#<4m=AN0NJW|g##Ktx;pTd)0bziOCC{R2(!+CmtI+9RhpZGkM8navKYw&BcWq{#*R zBI3wjcAtQnyuit3>|vU;jZf1*-=5XrvsK&zb>-pZ+l~*8ybPK3hYM-t+iJAoIjwC> z5&}Xq-B*i4>L$B6RR00YXT6G-sE(|!?QtMp)FFvP-Fhj_vcc!GT#r<(Fvpno=xrxZ zY_e*eR8@;;dd~j%(2h}L_uZ0{`asaT1_bfKCWgz{FCx4FyZFdpNP)LoSj4y>NWZ7V zIgI&R?UfMk2U%yolCjR-1E$7F*7i3W>I_|rhY$O*RE^_Qjgz$PZ}gTKiY71SJvIAv z9lQSkc$aRMFTCBC2nlR#C-dJBQ)#N=+)2}QXZVF6jy_f5M#baJOH#!8r9W`=uIlyT zNjwy?lg}`+O+OL_qbzo2YUCLS;Hi_Md$_yAZD=7qviPD-H6|lZCq#om^|)yzBM?hE zi}4DZy_F1&(r@pT-y0oA$~mVxNj8AL!`*xM>ploJ>GNrV+?BA)aBNpeh?#CM1O4J{ zN1a1#H@gVc@zq-T&6suFmxXsig)t?)0>5(v6N%O0r+uTaOxd`6R%riJ8SKM@pz3d3 z(2>()lx1WufoI#x5Fq|Imjo0{TJ+{fD0@#Sy$=B_zG<8J`K@10pk?JBz#>OgyS$|& z%W_fIxL^~0d~H1AaOA2{VAZEx&y*h;1v3=bAMBpR4mfsIMT^s!Kv9O{5cLX|CD@Hl|!5Q|#{#~|5O)7Y22 ziwF-y@A?ufBmjSr782Q{&Z*T9BW}Ar{N#X$jPQk2k;q!GL?><57EU@(H@oRV(*hOQ#I(%wIy=|F_Dmgh zE=tBux4bgKvabRvPkxbgE;|USniw_R#wU~3pErMMZF?5erscgbO6>5K2%?tjSc?-@ z2&@j=K{o40n?%%3;`**i$4eHmOF+p2Si~34JEWJXpO}f!|K z-A-Scj{&P&Mu7njZ>IDM0T$QlaYd1|mqr?hN9l_NH<0qnfv@jp-=0~t=E@&km#ab5 z^$Sh5NR?tSgm%7)$`3mFBmGYHJ@=o?8Rkm|XA0zsy7fpNH5xxSz^K}p*&j7;RB3)# z@f8-Zslr=l`4QH)5qc=OJkn)iAIxrKsVSNAxc54ByTvM1<&H0e`);?aGpMug)P9qn zPb-;>>+DxN#CH{4eO9|;cdqY|iCJZ&@(+o*eP8vG4EJCZW$y z|AzFf(E)(w_Q@C9=HwS2EyRaLl^+vHt)UKGL<0kg-2a!DKV00T3Ns#FNA)%($=NX4 zcXHI*VR4YTbV7I?0JT}Os*9jzvXU{_IYN;owX;Ewg005gn?Qk=Dt%0kxLg3yg_;sD zLa<5clv~XX3lCLz{;9BnwwZ`gA@BM5?>wagfuh^E*2H4)aOfi?ZwUT1z*2sK2+xkO zs^TJ=dC*$lS5aF$e_eV((L736hYl~|PjRJTjR|Ociv4_tA-B0w2>mS@I_h)*S4-t9 zC0c|L^XWSCuJy}h=_l&FRE1BW{{Xb6eB!uk+tp4(?5_dmfF_H(Efaj7))uZl;z@AcW~SX;crlHUkca*Tt2 zocf$T2np!jUqg^re$-W1v_b(^#hh5GAlN6{A;Zhf?c8RuMO7ExHiF~7u84X+XKUZ} z2CD=#(7G^J)%yB}$y9$_?Hg;dp5#f{g!?3AB0yBMfEo(CE*f({%Eb5 zB&@RAh5dcXd=_db{a@8+xGKKzp@-W!h#$UVtl|xb=`*LkBUSgq}r;yM# z%$6woC>~((9jYLq{DfGuG(8%odJFvxQt~Kl&GAgkI@G|kT8Nbw)U=;IXwX~Rbhl`3 zjAA9t`2=TyxVQ<2`F#da{AfrjLTw7N$<*CfHJ{_qFT8|>Pc}O6RO~`?1E$o3rjS}U z%BHb${pkjD)7N8s2|I ztd%{NWPf1i9^ObxRp60h^YDw*Wt76{=B1^b{7%Nw0|S4+A?svWXzQh4g-s$Nl9CXJ zcR9&yb>TV8Mbk@O=SkpS$(dR2IIMW$oWq5&pePZ6q*O)W4(&NNP=sVEF8^hZ{0fOF z!_S}xYn!g+h{+XV9z5jRdk;;$8pizbo6_^noVMpr4a6lp2Dc!x>}XRMYPQ@h;=Caq zA3CrYe$`CDw9-dY$9Sw@VeNnJjnPu(9g)W+!} zL@xIbgX?f=QrA}#|IY0REkinhUbFj*eX5L9O4mR{i1b6TZ4JSRj)}pr@s^23UOcVq zlJQAxGDiGUu#sO&$d4WKRTFob5cngU7|iH4CQE1rqSKEhdZ}V-p|rFJ!Vxv-p^6`3 zW1NpM^M$g)1%;6LSq<%M-olCEgcMs?vs?+PNOij{(jRB!v$RibF>G$>L?aAPys=@> z<4o-iY4pf6*>fmo?W)9;f96z4uhIz7tEal_=m{k%|N9!iKv|edDrs^e%mU3Pq&En? zd?_95VV_Z4V+d>Vh|MNI6cW4Hq^!nhwS{6DSJUd?z+@riiCfD$U>$<=i zO+P`=i5J8+4>ft0V(}f;ZV|B#c^iz${v8kAP7*2*`V=~cyk<%@O!LVN%l2fOM}Y-( zRp#qBtex-V*z?(cmH@scCh6th1%D+9R*HqRhMNyqUJI;pZ1467=o`Gd1n z6#+W0fhw$z)A02(wY}4xc$N zR|7gHvl-mytyBbn3}|4aJ@&Mft5ku{r}tW5ZUE~ot1z;21f~lt!@SP2hkSad&n_n? zv@sfoZ(Y#ne^zHDDIpd$OEcXP#pf%Z7ykiB_??te5gi+Bo1e8zXY2{%^Z`n{dkbw1 zE-g!psYpc>;J5&I^^5B<6!$v>a3LTQ)g^kC>qI53=TX+%$;*Y*2_`9OYhOaI47Kxo z=6V~Qow^RIQ}MyL?2?2&Gr>;_4!3RjtXh_#x$ag*26X0fwc){?^euG51;gqMWOBUInUX#+k6QacoZ3{rghY0xf-u?8;1YPcScFd+K40 z@`l^3^dxaX$uVix`ehuEOl+y4=-}E}W2ySwc>o{N5fV1vLVan+lx%slo9O+P4;s*6 zW)5n-?;bw)AF$&h!^Q}z# z64TEgB(~8R7D{=MaJE_c4GYOR?$@D#gL6$~DrQ{ktsANq=YM$QFG+F~(o~P|MGlOj zfmy^>eIQg_#&+|L-UZakG6O6;S?j-E+>9xOwr^E1S$E41c`nbW_9(35U6eI4vRx$k zG-PykJ`J%g@1nrb9JTqxKZ!PBcn}tfi3pQ1W#>$5!_5Oq+zC(ohML-o>~U-{zt7GQ zNz=T6CZ;kbxFh&H({tXWCH1&Jap33;;0`s_m$r&`@i`vk7s)5NZhb_%ZQs^DG^ql@ zvSOmAAa{Tdme=ukwPw0|{#_GDunj0Sp&mLc1p{JN!eEjTjO=PW+XvoS%x8?ahplwu z7WdBZZl)SX1b%%MqdP*$Z}GE1;}Wka5{6NyoFA#G7}$gAg9Z_ySeKvE_ksH00V?(J z!2}q#+aXO2WDJJyvezcBB><7Mom`V}h*Ki9JoS$fFMDm8MOi-)^%R}KsT2+^Rlb{> zO1>_0c48-0R{dPHY}U+1T&~j$uAS<&Pez~r?tg0Zbm5h$J^5zuQ;8DhY9$wP+{roA z6W7?qzn%cFCYhP$I9#z)qk~Sd8d3c_DSTREcEyqT`p?eiXWm7~n6TOoI0eb72GJMz zO6oZdQk1HIy4~156`Nquk2$O()$CQMjLo?HmN@(2y3)irR89_65FLWTgu3*v^a&EE zCWpibvjdp=il{MQ^9dUY_En3aT4k!k?C`1LTp?crO@*rAGVzQtq*{Noi_=U(G`?kL zSb49*!BhcVXeSJNq^YIklg6gH3^0UWJx59$P`;+|YHAF&XkbGbB@w6a@HT$!lsmGw zZ+dZGBrvMOH;z))H1RB4HR2Sl#~hnjcmN~XaZfbaq1XOrS)^BI1^&U>voDkrMK`{s$@X~vqr5_x1`p2O3;ZreId|Tt;vy@Bsh%Up zVNs0UViKTI%CeR2tYXER%@D8e?Nq%^n`#E374c6Fa4SW9^L-Ylk(K0%h+gZ%w8ze` zVUfynGJOUOw-&9(ABrQL$s{^7Ihgm46g8G2PNV<6Y37+Xnu@wmwSIeFtCS$x!X!}F z>@@IHnlv}F5tqkQ^xQ zalno+S{770k@B7NighRgpHAvjMx?Srv-3PxZmL^9!AD&oCoI59SO`;~Fd#qv82Nn= zS8Y#!e=l_J_nGWA;O{2(_50tK-y6~;eqNcXhsC9=4hZgyVuuN_v%Yi32C9OxVe9b& zFC+EL1oMw-J_+vz{m-uEvzR=}j{{vS4J^%}9$Or63;eiUXsn<`&t)hr32?CE;Qhq<@R+e8_}6Eb(7V^d7w+m&+r7Iz0Ji$qY(}^bh!g?g6YCANJpSD_a{aqmy{{S|jcX`Lp2wiSPeAnKaqmA1>sa)mK z6g5o^l3E)c_V?1V<*jK$V{icRZZvxiPoHVv5E==ZvCg;*I>0!EeJ7K^2lfI+uEAI0 zzgsHwD_EGK;4L%wCXp>2sg|~fSXTBYj+HsEdKmXU^N(zfdewW}fLhbLBcUfMFDN2OtIUP$;Dz}xqK0FdUFkm(BQy#WA00LA$dQ5Cj}52|@=507JeAQP7_}A{7|&Adsg(e?87fHmZ%Fd*P2Dz5wdqito0 z1kA&bvL=j1JNY(8tOtUjQ`XcTU7uBSGV$7@SOnVwOu z-xNgnWH^~cn{3~(-eF*So6H^q;;#V^fDchY-Mr6ER7bNhg8m!q(G7Nq5Kdp zw1ez$XadX_c)~mTu!kQ}5Qh$%SPhSUJE3dE&?MNSNUL5o;TRA zLr`$m$dZYoY4}tD4LUj%&~yvrzbYBnYtm-4013IW+|w{HlZ@1oxqO@#94x5-cc`ZH}Bo_)s#xP%jX3H$P+Foun7W-n#!?ZEi9J zyTd{JG5kib36UhSd4EQdK;q-%=SL2Lrr>_hAz=!Je?XJCeNQ8a+I-U}o3>ytY5NOSy}^3~^)ING?3km-F`2;-(?MFF*iBI6hPWhRu=F+(8%0X2Xx3qprZS^v#qg-c`hDQg( z>Gc1L;&+T;yHG;*=^j?)*NC?S{)O`_2Sr$*DSqde;NU2#Vf4E}AKZT z4CdVdKIjKOOP>voYirpiVj!d8UDjiew1@lyprecnuK#z4nm?5ZZPbRkl>%FTc!E3~ zWaR%(#Rv#r^uVw#2HLp8|EmO>@hTS-^|9go9iIp=xb2hj#i60A<|?(ZYh8x~aRh&k~kZrNS3MuP#EHB z1}E_~d60KoAN1LuV@C+S8AL)tLZks9*I(I;3HWpDXqw!BAyRPV63o^=54u+Q_t^1I zBs7d40bf&iClEU;DV(lxMT)5$?U|}>NmQuQXoI1U##W!O*qpI=c`8+4q%^Ffd#XWZ z0M2`Qcx*Hic9A}598|;|!qUyhxc;_lqE8;9l=)bNDm`z(Sr(YriK6{s8^@7EV)Jzu znECsNXA^S~3$xP3iQjkwV<5Q{4h;_cxxoWB z7Tq0XqLUDQ&w_`GNuhU3Ac0xW8fUuiR=5ZH>YUl>%C=?8upyv^HLu8te}j|7leXvl zeFATe?2Ro1syHwIRg1I?kdMB`YCk*TWg)#E%~Rh})7U}}@R zi>2%ra)Lr(z~c*8h>rH7LzI(XI~pJvewLVr#r874_&ghyEMd}hI4KMvp{5)eJe6dY z+AQkIw&OsAA#T6;9`UV+KLX+wv=TG|1ayxJ3t+Kfrjrz_6+s+QoTk3N|bpGrG9+U`_WrnQ3ShJ{@9v2IWmE;Jx`fTK z{YMg+Gu0I|6smB60`W;cco~Z~Y~LC{z$M1ynwGjQ{wXe7)DVoNH!DIumjERRmqEjn zj+BaG^M*iB2qToGC;sdQ72#aP6QTlb9XRa`epgE|iGi%+kEqyk2gj;Vun`SlsJYui zR1|=d2x2s~3nt3r>%TnRykCO)mC;XR$Ivm? z5EY_KumtsC|K=|rPGcf4W|mBSD$wt)d6=iLVx-Fct@vLs_`mg3|F=$>{{X6_NnA$% z=i9XboLGNaDW@%4xMAIz&0HF5^S_lbr89#!vj(viB0@%jquWpH`vQ@V1V$zN16LuUI^U4qpVxv#zn6_12Ya_@_hK3cd~i=cuqSFi@btnA(DtML@B2ES{3zgdSl z&Mw=p>_|}~W2oQt(2v-g<|S8eYz$PliR3Q}8)e*&ec%R%d9tt}q|}MPXakIOtZ#DL zdO;7cb$PlO%Lg`aU0G?{4Z@!Ywj+CsW*S3rsY0Mzu*EJ>YI&iyqjJx;S&fu@z$It) zC^+#VL%!k`gIH>)eX+XlZ^Knb4e3=kV3!9FzuPa0n`ogO^98c9tJ!!l?kRf@7G@xK z+KNxt#eI8~?XwXw+eyOuo%$R7E0O3Y^OowjpNyZCqA#iwZd$tU{A9UWy0Qqwy_VkR zvQZZ8^eN5AM=P%Kia53X=C>|=juYVN97IBkkPkL9D3N(T(eD4?n#@QhfFAaJhQ#tZ z&h?-OxsA1mrPIUX@Pl}B0H70gWoh!2E!2@*iOn+naH*U}aK)u^RHMtbtmh#|){HQI z0@p905u>J&2nkxH3LNo14pnTDNf^aC#>R*&E@TvU&)>~*ZBOnQBL^)`!q%&S4IMDz z79zP~j}yGZuH>TD_2ICuX+st)6#04xTLit2O^kSWQRT=aI=>htouBq1(j8U*?oj6PUsbH>wUmSfY9y~aX0PNr5Jbv&d&EXZE!_Bli&7P!U3Vs?rA8_ zFkdV))rmm*PJ1JX`kG!h7|}!{*f9Hs_-GKyZzj4$AD73OAS*3@O^&(1_crEIHxz0$ zbRQ~X0xpxD{`MFF$pSg(l<{Fk$xQdDqI;Uw+fWmzH7)tq5N9zv1ws9PK$xb~23*M9z<3*B0_73Cw{ytq{lFkKKm2ete}-r-|K%7nMg;ZPw`?{S z`L?1Re(JMFnpaBMQ}(O(=xNbbdgP_Req1*)FO+s4(P!sNwWZGy8M+2$c)V2mYQ1i$ z{=4P=;|~T4xJsQd+|!5CKhp40$8t8esYj~$wTrjmIdiK%S8FihYMwmyrSwKHT?%!$ z&`)q2s%Wi#D^liJg&4vF7WXeZ^B9>X{)Q%-WB;#Y{`y3CD@bJY4&`s+hu#Js{NnQ4 zi)_{9H#Vf5@*7Ez;r~!eHh=wJU00pa!dtem`_6;zD%%*ejkGQoRcInc?;r*)uu~rp z78_@jocrJ}HM7Bb*<@8T@||OOkB&H?b2eGGjA6Ky6QAcs%Nak5n8<>|)-&XvWu%Ho z^inms0ho`2H}L}0yZf|6J6NUnW_Ca1vh>CyX~Um6On4B&QAKc@J)V6yEXH&_b|Cgt zokq&5{OX-8wJL%n6e@AXu|^tuLdVy}5Ag|Q0J|CuyRg|^p~DSRvzSqK`1(Gs@ue(& zZ~%cDpc7<5bOu3lDjl_C`AO*?=O~mEN2em2Xw0|ztAMIGg~jnUt`)mIq*8;rS;^Hk z^Gj}$wM};4oaHVYC_a+<;8{RuEnb&QQPxhOFkUi>6DXA^V2r^YH_e1;4J^Z^k zACfZCKdgjCtN%(hI<7`zz!72C6?rw0*Ze7hS%Uef@W%LdT{gLltTg#q`e$Trh1ac7 zV12@es}3mjIOH|l4&=-BCD{1lmtBd8JYrCNQFV$ZO5mmsb>+__Ji(-D_aRF)>jq%_ z$09(Cjl=c~{8K;)fYQnafoRC5L%c`i8XJvL9#u?UYU@_}wUCndMJ= z&$TD#BTjk(xa_hK#v8%M9gPk(vwS*+rt}dZk1BGs=;5kfGEq~b57zlU6PfxU=HJ_B zCi$t)SPAHO@kd38c!X}h%=k=abw}$#{R~TvMQYeSp8A|dYHQj_Iqs5K%8p)OO8KoS zygrwgsJu)~Vw)M*@ddJ)P4XIsRSB5Tc~beNAYB%N3+^AMUJ;OpdIZxI#-LYMGd6Lg z$;m3_WWi-;w1IQ((lXkMa@!M@4Rd|s81%zLmkNeQ#bY}RW=P`qSfSw}N=RHFd<4K| zubafkXMba+UAPK=!FcCd%(bgdoe!5%u=d;8WSvAMiB2uHp@Vg^-`Ky4e#mEr+CVLI zJP2{pM=Bp0Ee<0aZr31@MRpG)g1{hp3`-3?4R387ww;P+jd={p9}MY3Ql6t2&%x1^ z$PK?9c@&xOj_TQ4DHeiuGcV7?${Nj502OcXE4XUj!=lRK5}oFtlieHy+Y&o6jmE;I zqeuqignXF)2?t+zvKcxM6@?<^U*O8V=|LcbO%=7qfWqyXX^o?msnRyU5fkOgXcFLT za-^_+N)r+*L?(zDj1SnMzeeFopz$r@%mIxAkznb$1zYe_Ev33RjMv{`-R# zRI}KFMD453G~?TPo@bcv(fS7*GiSc*^0y5NZINxBQB3x(=T^m$UduIbGd~fOTk~?c z=Gf;Bj?fFDtaHAdx+dvzeh?B(`k#oFYI2R_1L}= zl3u~6ZHMDaRswzT$$=cD=k_#R9Oza<4s8RZ&NS+}vL<$jr4U&GUD3_%Vy$ zP){~u&Dr}=AwJjnNN@$-PeVHv0~16oBn=VmI6@<0h>2Y|qEofCt8IC_3L`4i?ui@$ zx^GcwTkz(+wP_Bp^zb1&6-`goxBhiM?MA%030zBr(pqlikKS z(Pm_)APW!Jz+iK979h=f+0sOH2H~dHZo`*T5D+LK!8*k!eD>Nh;_hBv{rsRq7v0t zP)HgwE}i<0sAVjXpYrJ8`IrGWqQLI6>d{vYn>Rd@DsSUR^MTFkRrGei7l8ODzhUvt zWc$^^T%n8Jx%8{>Y#rVHJ1SAoD_O<28t+u^Q(R_9F=~ z=26`fyB;uTy2Y#cI6eSlDxZlg5V|-sLw66qBqkxga_{;sFnl_f4cz6a_&ogCxxCuNWe27h z8P%n1)#@FF%RWz<8%+fqg{m?k^>BA_ zE$1kyOEl+fw*(+nW8hVh4YJh+?7)o9rb0P}!Oj^t^cP~a7E{``_wUF=15DNB*w5sl zVza{lm^$${7O&w9)FOcJsPo_8+jK;onjS8SsQytti<#m)+<8nWp&j10eh7S~7p;h> zWJ{?XfaRR=+pnG68uk=Vd@X8q3r`a-9NTniBgsLr3ovGM?dB?h63vwN1{^~aMbu@g zI0K@j*hW`K7zsk0vm}P6At=?k zFdJu2`Y2iv&)5CaPS0SIIf=Hq0y<@+wJHfi!OUtmocnSRzEdsjPbJOq(5Au^^JXgP z_n-0)mxdW6HNGPzy7PS0iUsez{S4wfK5^!=ogxKe2&EWaN9oq2g{ZD;o-De9n@f>ORTk*B zeWrV@=_kTWK&mg9th*UIkuX z^;KzLMuPQ|^2S`7(z%>4d38b`&4G+6c5cX8E!^4A`m{xWU8Rzc$OXS=o930F*nHbU zU#qw*pRBL_Mlt(NNjtPEz~*vyA^In_5h4=GnazWa#y%JcY;j!i*s*ktc2exG*Ka{e z^vSQ)jOxym(%N{x;Ho8)4edT8UJsw!Ow!0iFjPSgm9n*c=(RPacaCTI6qfRaCLEC z*#d1_tx3onQ8|N;5=oI@CTgWXSPY3l2-Cg3IHIMHq)xY(Kh`=5E9A2);O$K7`%WI* zwO{HXUS9-JtG^l1!&os>CqS$;eH*!gcx6~f>MORWE8omnM7Wy7P78s>>H=%EeLNSr zcHPnUGc2)5{n4x_aUWjU@6d9GXe~2p?)1{fm{~tfkZe5t_DQFk3JaL|1D)bv97*Ag zvacGNsi?vV=0p+8O{Ssj86@IgKastUsMAU?9?gZ7`vzuiy04gsyCTQg%vu@+aW_j= zWh5iQknvYtyYM8Tr5~A_X*cC4QqJ`ltfD7c)-y2^)APF)Ku4(aK$9kjF@<$&-1&OfiFm+82^yBpb%u0~5uA;$=@%8?2-YXY_46;a!eY+A!P%4A!GXu^i z@whTueZFf92P)4CkZhy66ONJ;Lh)viZmhYB7Y z;V~-g@rU4h@LVr0T~Ch1wJ?7>Z&LKyH_6&ujAHNDVRkc>U*$9#iLC(FAM%zXH(EBl z$}8_&OOGwMWf>UY@)euj1#5{A%J6hMAC9R_W&8tR7K(4Vjc_qc(zCD@$Qg5$?hnST z&0l4azmOFf_*v}w*=DcaE+Ss4Rw!HG6Y~Ff!|o8Fq2? zEVuk}&FOa288(c_ggI|Q3;|!GuWej5s@x(EksQ?opS!pSl+iY^6N?eEMl+WX;}drK z(;~`?7R)G$UdnhD^@;`CvVP<{L`wOoIhjU1{>Nw#r`7GZFTMD)lC6w8ibVmu5i*ZBotb^;`Jf6JIFkqQJ?llz$1hr;oY z*6!`AYiUG^*3R!gl{9?oO1D417;we4Gvw~zhL}P}8@5<@ki42uF4-+~%?|vKoTOkwZ zDr!6AX(sdOV$rHg<;Hk#@Sp= zQ#Lw6d1|~*aq5Jw)QETm@6QM>85AsNQgQiFY@Xf0^sNAY__N%q40jlEAR7s-&~M!) z?_74M%6j0o11lf=W)GI@?ffa!f*8GL0V;oorEL>;?&)cra6KV;oS*B=3UM~x7{E6F zc7{q^B)(6_8M2hf&MoE<%pq~ou8v{-_$!2K?zYysut0MB!R4-{LeU}|^v%M-D%z4V zS+nvPuBE_m>oig5BYD9)>7o=q1| z{%DZlNZSHjGQYn|wRlF3VxysxM8tmung z_)-Ff6L`rUoIyuUpsmS}VY)UYzxJo{3=9N0Ihkj^1RDzgIqPkRRndK#jG)Vk_bQic z_yCn|qYG%Kh1uYY1T0;>`(9nt)X)Te%oVTn=1bWnY^qobxAO<)Eg5WtdfgQlf!=FZ z8s;d4owdufA$Pd^bgSv1=-&M6Wm2G)}T+v_l4sy&&-8&qi=%A_>_G1Ra*VQl8 zw71)CLvsR~lA=hhj_pL{3r61z>pi>obbU^7JS9I)M*ALQe8e=gN=>4=2-#)KZt?A_ zFrn{^DYNLq9eflM*kv44T;XJj4$A?=TuLtWBWm#YESGv@d{L_DhS`_hoq;&HT_sK; zq+E`GXqn+)K=H~X1u2(H)e$=|(&{q|x)*E!XO{Y}cPFT*r}(}?O^;;H(=q-g6vYjk zeMi}^{OVSISS*j*g0AHH#%d(?uV&ErH{z%zvy{KYXEfSj2K;*u=4qLGthjB4F}8f^ zL@Q?bU(0fH3VumaF^(lwb>)J+z38D7^S|e=Ii!lF>DF#p*myTN7;BNq@L=f?9}PXg zFES78*w32hDUp&%v#8Tx;$c%t9e%khnP)}KE;QPNsb7X- zE+g3!{K6-l6x;h`ay1efc^O?Ou^WN6CU{*045MBp) zARKac!%V=I!esp*eF%@{@Xa5iRFdE_p+beVdX zp-83ddo771`h7*d8e5~<8n+Q9*V>Iloenh#2Rqhi%-3o7H_YM0LCe^Jfni~b5TH)W8_ASppS;2l@625=a{Vo0A1P_>5r zl5_D7V0T9I$0=ex!WX`Btn5s-tjFk@CQiC8wM7n^0bVyVX1S!%Lkf=x#A<{vR zNS7|Xmk>Gx5=sc9?bqK^{_lDBIeXr-=iNPf&OSpMhHoZw@7%ffbIU*ih$*9mfS27!!>K++%(=p^Vk!&wj$&;uR;X)_4@XJ41$5{U7i@naxR zv>WL7zdvIP{QTR1+5UOWzx`x>3j#3%BgZc*DJdo~{9B*l7$fN8e~c?$zWkBl-)98g z>*KNin33W8N5=o?AG7>&;@_VECi~myIFR~1SMO)uey-k6&ne4a2C3iFH#+`zH9-5P zFY!0#{;q+f1u9L?s8NM?zTmT*8VqoNAptpj+z^a)T{%QZb z4EP2t^ElH9=98ybSb+zsPJ@myFftxH&d9{{_iY%$|B`W>i;4TZ;*AqLrVh*(e0Y^! zBz-z5cC)OB&ujoMuKdXN^}+n7hO}JTY&KXZO4F5#$(5Ttzrb)aexG%F`Z!g zr=9rs#{5q^`L~_=&qfC(`Dcb>$BqM^r%o`P_|L!nFL&rOfQSmwCqZnC41h2(a)BVA z-J?sN(Q^?r%jQ^VoyDlV+#ALIVxRNanx?$NVq;%)N!j#V`W$42@bt1e4 zAcEn~uXV6}-#U>})z|>y7maO$(YYhatIlN!Udon`>*9RQwE2>4zIuo4wG*ahY$-L> zZqYBV7fBjkl;E{^&3KH{AyfWGf+8>((dpbnzq|P(HK%l^Uh!IdwT}N;bV?@4)a)s5 z4pl00Iq|}@<>tFobD~e?gLbG0`klZ8bm^dt)m z%%;p;g+qoXw&)<(j#Qhcue9{NTZ!2_>b%Dsy{^Wdb=T?=2;J4i4!#}mp&&+(*OL6 z)!9%+mB}M8(VZlc2mfOa$@+DKirJ%sPU-QbW*|I=t!2gA2?gm&ox5P=K>OH{9)K_1^?d#P`FA^DLQOQhEnm+*H%vAnS6=jrN#MAX^_(U=<70KwM~ zLr6d8ZNaZ6FV=C!?!A{2Z>*ej7&@@+2WM$;*L10E35vbCCbP2w!v~bnLC2>FW6?Ba ziX@>UI?Vg4v6rWnKvG`9>EFEX&&b5jU4FuGy}ty`&}^^yr>8;|&dF&$*=tD6Ig`qp zAu;Lu^uWKd!tf96D|S0qSL|Y!?{t7_N-pymg0k5wJ^ud3!+f`w@+#jPBHy)K zrYIboMca+hSnbFU4zm)FnCxdA<6GesbdZAm{t+kHl@4mUNz;J$&#`H9lj?tsX5OuV zYYcGY6|vR_+pDDBaJzWk;=Q0nC9Z`Z^30{^nnuAJVe^PK%y-Lj*WEEsJ?bZ$HM<$I zoQhUYN|QWm$GqbGcs61|MN6L4+{vNJ4{2yb=}*q3z1;JM#RFlA_~-?6eC0q%kW7na zb(ynZuG$$Z^ZqkSV5N+B5#LW0aS?WO5KfAGheQVv^GPw_R&>nMi5rD^*;Y4X#gf(I zOs^^>qhzBslIms>-M1P~(Wd7rS2j21+erv~1}xEN(5N-TS+cUK_Tv4U#j1y&0#}RM zePCag1*WM>mFx4X<_Q<98YDH;OKB9xKyUmyTq7aNE1ilYe389{Zp9k1yH%14YMa|0HB92qP zoTGzYI!@3A2p+$+VDb&4?4iV~c8%9FZ%-`->ni+UzN)+p%VMOlbd&vwgh(+OCLK&k zgr(p+gnZgP&JMOXeD9txwpi-bMDhk!ecapJ+k-s8a)ygK{n;G6rFPK~1fLHgp;X@@vfoIuPCx6+a@n zFQq}HHH8CFtA@mUY7HIaW)g)gmuyyuojpBfHuivE_dUftdt&mpg!aw4^P;M^4-?=z z;2W@Lgeb%f7Kf~?u5wxc#~o#^k7Yh#_w>Fn)#O>O>bZ2M=1x<0NG!2I1#5q)5A~+) zPc93K`5T|qY1D~@Js*QHyKS!zoLPjdmK-ij<#%ggqmXwox;zi|*4l+Dp!Pe3OV57z zURe$jqGI_12S3R@x`9aNxs^CH_!*o9GiDwWHx)N8x@H_@A;SQ1;F`o!V(D>$JbvY?i10Omlg)+80Errd$$`#*X*6K8# z8Ou{?;iglom*xfuzdvXH!kz3mSUTzWV)j{TM`Z2S`z2C+K{l1#YgW>7hwX!D0~Ach19rBAN+~@dJ)WM@89|N0 zsoVxf)ZC{%z0D4?Drt_GM~b6^*uy~hTY-FW2ZOy&ZM$MGT?f@Ycq^)#p!NLD%s@0B zMw6JL8c}M$8pz$|Baymueel=Rf}aqdZ2XHleL?dVNqsWJVqz%1x{NG}Xwsy(kxd@_ zBGM!Y6t}!Jr}7e}w5FYfY{xVgIq|L#rEhv01mb9VE~?F)+Ih33uX$$1=Zx@y^$%R`=a9v(8A{ln@J zO?NGn8qlm64$>nXmJubUHw?lmzu=72^Kv)fywY9U6=<(VIsN(UB$P*|7BA0 z^*-|u4wox0Z)QQ(HCzh7(Ls6+2S1Y9!iDG{j(60$j$S(GWL0fHc!#Tuf*yme7PR({ z`w(%>U z*X)P$V;kPjtNJI%#9%;$`3CV|JL2KIuG;D&S3cNd@1|`#yp+mPg54?C+V)mf9q>AR zOcVUG1LD#~llWGDDiW1$dNfvp6xVR!6I9Lmkrh^QAB@E7MO0O2c_}kzSsfuq9i+~n%2n|L!fnU=>6*&^4*&~%WDNBtOj{u}Zn z#SkL``K2vRV){J08e)j}Wc|RtMWU*a7q#`-Q~hh$m&DY-Z=)LTY^M$}WCYQQj3M(7BdBn^p#^RB_!NE%o=C`y}qNb6jq?10ym zt682(vzOY}7An%XX4SE~S}4U-Mbo$XAZS$t;g(v0TU58-lhPo6yDmkq5)Fj_d8YB)u)u&t2%JZpmEykn`sQ7!FL9pj;;L&EIKonxA`fmNUW2>1V?5 z+L2paPb}d#&27R*nb$0~p;Srl%09H^7GUKbkRoUL-<)4V9^&$I_DKu2Y@sW$yXtCO z$mO~|)o+C9+OTU-PM6KK4N(hRAGW6|bath#V_aUavo=(r#k|{sAdt!8Ra|W9+gV-u z5h*rReiarida99>LEvuz&W?&3Hfp=|YHg<%OBbf^nov*j%`k4j z)Vg@T$wW8NL3}f|vvY2urs*D@v!=VB^mWykycl;!(Rye{^tellW^`<$AjK0Ab95Z4 zU*u*}JMcaQ=Y*||^{#O2?SB`r36>8GKv@B@o(k`nJW)k}b|As91&(;PfOH=_#KW%Z z4RYRYXHOEASDw}Tq9t`aL=x? zUv0@T%GPIdDv=kgZvUivrw)|O(OjiRIa5KbZGvqA8kTJrSvE}v?O29e8Y^OrU_>q9 z5XiSS_%n15$z6*FLw@Pk@18$0d6X3pj>7HlmqX68Xi^v3RK~WqaiIikJEAh0!d=q> z=5IWw=gCo2NXm0elFbd8KQ@DMFynha?sVF#TQrm-0?+#*+oiz$NP$CrvNZH%(d*WG zMCHgOW>GKypn5lX>$$B%q};+>bP!y)W3c5RLH?&^D#p~PWuo5b3AXntV*b{pB9_Ic zwG_8H#yIGzJ~&MU@OPktIf05Ge=P=+By{uv7mgP!_p}I#BwlP#Zr0?5OAw6TV?wiPH~H^1L`{@l6zh(> zy8yWoBgUXyyQ2x+O9asMIyFw~DxMR2u?j1qwjdv~P=``s&Ej#%Pg80we_*S>a=N^3 zveBNCFfT?S3RuIsz1y^(QXiRKAIVOVprO`B2Cx3~94jAKX zZ%Z%6)vj!POgZJglc>0hiTbBh=fjXsIEyct-wN50ijne zYbj>pwUw{@T6)6?Y&^C@nJg z0T=e(4f?>pJk2j14A#D(WDEbjxy^civf?*yCa)vdq-vTad7F#pOe|` zmd{F%pgd)Z>bTVz}yO?p`Og_8WE{xD~S<8iTK`%shS_q;w_ziDl= zwrBA~81mD>0fnb})&n_yK#Z@f)J@mdx_05~x#^zvu1zM;F?~q^#!Sj4VQ#a6FoyAN zkud>)DA%6go)Orr!BEIC#Oi9y#bk|(jGLQb!$xJu_airOnN%V*9RT!+Fa6;CU;!<2 z^2MNI3XC1|GZ$=Eoj#1Zp)Mv&2A}hIb@=XePcTDXO3@;R$u5SFLX0Mj5Xe?%JKE6P z_8w+3+X;dv6DB416J{@e|8!u%Jc`bwNcU81!cH$+7T$|zk^g3=V>x|xeulm7sVFK3?k`2&ncO@INDNqI{LP4v^+#ORv4RE zh(Q(|G*%6F!l={*8NSv)tjs7-HFh9EQxY`_me^8_Bcg~h?5n0Eg=>yjOW=riLAmX? z+Ux9b^`9Yku$No1)kmj3eHttXv7r=cn7<8X*4Qh_8{L16g~<~iz6OD=zP;j)6CVSXqxLWmziAjjBIaOmDo+Wup$D=M#@K_r+3R31ergivsy4w&k6ZIPvurY_uzL^Y;3! zFf-ynN3%+rd&8e+RcZN$CGz3&NB5_Cc4;Ys2d8Aa#~XeW)I5{&?S&pZ%H~5c>(||P zrS6AsCf+2;VGz+YMN-}ulE*^+k1(~5cJ*(1??}F1l-BJj@P-8cvj4EL-vUGxUi#45 za)d~p`C*QuaOLS1%m-&jrku}D(mrNd&KfxRMI8!1d~smy-wPLc%g_cdg#+eNTR6;| zS(*`%&fJSdOx<$T z#yESu2^gC>?bHFjh3H4f*j#ZU7ekCiTtFd zh2L7I@cmf3QB<+ri6Gp^p`A7h?$-2sA3>Un&=q9c_Ba{a(bOOJCyZmXQXf?nZgxvF zebm+I%{{ZHq9;1eaW)FMnP5R|V{5VijD3S>lGSE(4`H00at8}Hc)N=Ec-_vuQ}Na( zLj&}Z^%!Ebi+{-#JB<+URVsL%D~KQUu_~20JDkh6X_KL6W|e>Fz*|KMs9xDR)J3oj z=H|5>GMyFBYLw?rArclx*HihcM|}}22OmDnMlX5eB=Ic(>N}yWPD;U;MD9ay_3S4$ zCnYc^1!uUzMjqDPGwuGgq6PgZ>%ZRDu3NQd42ut z`PFaM-tez=9X)1^N_DmA%K^0?CiNvAZT9FpKl0U=OxEAXarZFNyZ1e6fmP~D?A6L0 zc`kvk-QaiSPoAp#&&E!LU%&PWVeIHD9R47StSOLV(=fz zpYBkxje~rZx@YbiFYla&3Tms)Djy`zc_0U1xIDrNKue__g~#I_>BT$_LcV(IO)Gxw z=o#B(I>@Oqr7QkDBJ#(}06ORx2L9wR?M4_c9)){>MMa+_{>0l_joRM8KNIyIwhBr8 z{(2-Pz}hqUx-~W|QrZzj2c1z1&p)JtqGbyu)d}7(@{_+FsU$In0NpGggbXc!qbCZ6 zmRiqNy;irazp1-;`2Bdy!RIGoCDTPuXpER`_K_w$%^{*o>gJaT5!QSp)Uqw*9J6)69}?A;o(c1Y#-#7jP6mrm9)C8(kf zJXR7(m*zH?<`bDbLLfLP{LMS!c!gF8@`F-mnV%$dFrJXNB_cBx@J_G2}sU_IU|E;!I zH-Yrt_!+*>6seNw)+Mj}25nhk9}TGB*anA%Z6Wtl#X)11^&_RZH&~29RZ?o>4KM2i z3%Bu=g*jheG3RtjAn7vx0hWnroZGx$qG{uL( z=Yqxx!bI>Z&$a9b3cC2QR-6lsi+W<`QO0C!{;s#^==tjTmE}p9gDnZnW@)LNX3$sr zMXT(hT?M?a{9_yrojwmK~RwAz^ilgWt2=7p2?nu#$@?Irv3ie%| z715$Tj=csSj{w3^(9yXwVfV?b6iI5177zKxgD{RE)I&nSQN2W}j4kEWp>G^GU)>ZY zuCSR4XzMN4ZOTqys1THy>oih3wYrFUiOsgKRl~#KZk44kYw~ z$s5rN>7nE-)aF%yv}$1kRJqHRf|P9AxM(CS(s3& z$1T#*HQe+)V`7=mg<=&#{?Z#nTDz_52F3DFt(&Jl1vbzq@HiWyncTKi=^-hiU_0eH zL*u(&A6$E+iVzFx{6M&-X@S4r``~I^RkhIi`UaT}_}gPnS4)e)17hy?jdXcHaWryt0?_G0Y|kws9OOmGq|O8Efpa{#QE$%Km1hDdgxcxe4+ zwSQjB!q|$xL4(h6Vap2z9``+p z2&k4hl4K$-nqb)U1CbcUi8;|Y=x=?SSOfO_o*1GgJ>^sf6}kF6{Q8<*AVqVExZTJ9 z%c~n#=mrR@x6BfbpBOibCSHK` zt767o;us;tEO-G9&fA{=_7X)65v=XC{hjth-q{=0`{`B$tc99Dy=A~}mPjZz%ah^m z35tE)S?PJlQ6t5JKkTZ!cOlkjH~gcuMZ*l9EAB$H`+wj=u!>4u$3u zV-Y-!{GEOZEr`?ZnvC|FyS=Y^(rMmlwfWm}?YR0F#xiGA3_dm|pj`Ozck}!*gP(@G zem?@2$7W12rzUr_cRSpk9vpQ(KbrOkH(B5Nmih@7`~sj#2 z1Zjd3QK6xqd<1BggLo?(oqi1T5&&@BnKrLSte_UM9Mir)dW|HXnn4h{ZjkTOhLL;s zD0*~I#8nhc17^FA;7Ycqu_LCc=pgxU&bL9xQ*#ZgjsSpg2Gc=lIaJ`hR8kwzt2a^r z^RDSl2T2TdP`HPP_;v_}(Pxf!^K2k6Hr79fA4OD2Qh6a&@_j& zg(-K+X#Jy=9e1`oDZiI?GVcuD?rz?SPjm84`z>;a8s;Qj7<@rC4*G=tIlr;Mpn=6z zt9Oi|mG;p5Een8^&_u*GUYVZV2&hpb_7?Z;He~osiCyUWtlPP(mDZeW@{rS=77MI4 z2YD9ZxP3azc@!=J??!Vt<2Tc7m_`;SXZGs1R_>I_VO<02d(Y{)K$q_+J%6%=zJhH; zymKJgl)_*f>lPobc0JWMOZa+J=NBTQ+K)O?d0K57ihZlZ`H98rK5kY}=#7WAZ;C(ma<_{+$(Hic@az$c zvNEgB0KjWYo9X#P2Vsu+3OokmM6Lq;nywv0BDz`<$4BR|0#f zQ(c{|blWSbEv{44_Q^M!>!(^+7NP+tV<63rJWaXF>ywD{m_;5OHKLBy&IX5{a>zN$ zUH#SIOS092qAQnXrWOJ!Lct>MyIX!c*S>p%jVt2t6n4^O@3!|Sy6L8aj<(IK+e1(^ z$A|<*#$QHpE8s~@w*$a9HL7Xe+ zMVc-!wFe`JdxbTfwiy#rs3o+T3No!^86K_KAOqp7aA~pF=$Omx#pM~>*_CvjtUstD z4Qf`we*+VGKo;k<1nHnhX*IO887TJY`UqJJSm8GyY4aTKLXEYWJA(SdT-p#jwo8cp zEi`RBjQ==rjB5K38_VF`B+@k1E%jjIE@~>T9FjfTq{C~$ji3+yE7njDBmT$?($Mm8 zuTW+Pewt!QFlhqEoKVDYd( z#x<+l`}5BaKcDpLNk@tLV@&we1XNMtb(wZHQ0U$d^fP!dK*Y6g+m6&&i0e-s%;T3P zoV{o71X=l){h0n5`hB_%jANlVSoC+talt+#g&^~VuqyrzWb_yv#MWS{nw7s6k{KN6 zXjJW*mnplH>yoU0M^{+=9uPZE{<1|`+t_{nl;h;8Pxe0X%3*YrFeG!HU`^>zEjVkb z$YW+|wqj}^eRWdJYbJ40>+!;LieN<7&bQ>s^%hp+dw$v1kjlQkgIa^tnO>cl?F7}R zn4LwYuCkf>=b-JBL9`QM{_Ch(rc2Y@#EQYN>Bk>6_<9{#ugkyJybFqDI9f&7gTXHl z^CfgpRbb2Z@m1Qf0o^xpIWaCwuj)-)#Jc`WwU?a_-~shk=`Mge_fW|YSM+4`!Zyxu zp&P+Zv1v?L_fXgF_GD_fDIkZHt9yA)JpGYxTa4q*BF56AqjhmwCv#<7%j+sDi^|i% z?7B4LVB@tmw{D@ps)=n(P{b==FM*DErD;o>eS&GEr?hmoL)T%}GBJ4>hc8BI3cJKo zIj9lnM+!Xf!A7-8LcyDFUn)q!U%HpqGX{}z@@GVCX1VXk)eEF$ydD$(?)h~tC%!HO zZ{j7h_Q8c%N7_Y&u?(VJ-1gI>n`w}X3J~ipB&TPZPnrk zjBS#YH&P$+7s=DO=5VIU$IfZW(zCyZqRRPGm%`=tDjeJsSTkYh^ zEVy0~ARM>QZsC%|RMNJ@SVTY~E6I6^48Akb+<$)0mzH-iU z>Pw%R%UsFj)0*Kjlb8hImL&~O;fj-}lj13qsc_qn9Okn=x-we5GS2UMUCf|xyX1-c zaw?EVbdVS4Az(c=sfmXK7**1S67cA;=jX=Pqz`1{FkMm!KC2maf?_0+?553@*gZ5m ztET_%WUFIuK!EwL&5zEFfeOjC>gs!_clerDgkatKTJl#UB+b6muSr#-PlTi5g*{&O z?*=&wu=Exjk8Z~DoDOd1mUt>xY{58asUsrtSKACjWQN5>EuF)=>i~MB-lKRbs#SVM`r^M$>!?$&$pd%se(!(V~c3q++B*wIKT~1fA zadKA_&9R`)Dcd~Q?sy(17&9|8m?lovDA4Gp&D`6EAS#h0Y5vVR{CO2{M5a!AJ+>F3 z8($($(D@a=d|g*rAk8uPA#;~8|0NK+0wRefgJ`;DOH57%${GqbBe0~#i*l6qg`*+! z_veNO77rV0l1=2)cAE{}Is`33v8U}@4IDjFz8c==zX!ky>mof_EE}(f zLoPm4${>4n??Jhjft8)KE_4fs-+aP@u_jIR9o3{FOuXJL#hP@9+830UeuEmnb^s1N zFGHPk+<6=Bv8T{7hqnMvZs_4Ta`7uxqqzNIqnmxUiav!l9TLN=(!8_D`ORC(O{tyz z*A!tn-*~wTHejXrbQ$ebY4d(J^SFa7St&GbW~Zvx-HgESz)Ds$OTR@kO=QTv9nU2ghK^y?{pUNq7bG`eg+31|(u^VF-}9tkFb^pSZ+Yv^Sz0t!SjaFs&&K1m zyJehQL3!lG?NQ2ZesYa7m6Hv~#rje|_5aP%^S_Qltn>TRLG2s+xx`YEA;IK6fSf`p zy!gHpOuW_hz3&?JRWG~TB%dF0bI!KDw%7jf3-vaU!UrP~A7DEi!9=zp$RS56qR9&3 z9p{4uU{sTH1|9UcKglC?-e>%* ze_68iyGv@Dg_3+ddH%G4#c+MHY!J+rR7}>|m@C`HU7g1{>I`i@svXr*EA7mkIZ^rJ zo*mZndxV&%fx<-{g)@P{kI)yw?C>=UdM(5EDV`Xdp5e>;Y^Fw`Zr8r~mhT)BO!B?6 z!puCDNj9X3R*=K!pg%-3Np_G9I^<}O#Ae`LkacK-KP+?N2`CtCvT`U-*%mb+C)ZHN zGXG%|-)bUSAUd*!hp_nA-_IOrg~p#8D3N#5y-;gVf-(y|^Wook5w~heB(9+ul)+0R%qRdXCfN%&kN+HGd5Ij;*cy z>2*2S$GHkM3NLFbxB}T!Joi!o!>-UeX+-=aLFq0O&eeLujZ?%uK7ZFhFE?~dnS2L6 z5n_U429no2Zus3B_^g(I4Ch^=>lKjnWXbe9H+DXd6Mw`$P<+{6{%u=?jf$t!K(oO|kiTVXY+#pXK#=2K$bqst*f6Ma$!{ zJ_W{U8s_;!%f8EQMOV6oY^KyC;RP?CZ_3&Dne@b)hdyC2IP9ilGNKA6AEFevR5ds}#!i^yC9fE?@Dbkix*?X)< zN!I-@gWBw52_8f1__^*mwY&v>(3S0{o0W7>VI9rBhq^~aHL`4gE5<0?-7R32D?e|J zS=0?t?v-a{T~uHciu#%ADHpL5-L&=_^~=|=I%Mp}I-(NRCI_82ir&NqhVulO-2Lf6 zlGAB;r1K$DPrQd$<9N?B&*504V&}!5NR}W4k>rOS4i!>GeU_5iu4{0Y(5it0o2j~8 zni^s2eydpLfUr<`xiOACWqbzjV%}L@Ac4Au&#Ic^AMx`k@Ay zk)u(#*7elw3#v5NygGMGM0G_3w10&RK>p(o2KITWxnY*!*S^IZhjZ1(FJ78r)DLtv z)nBW7smNG+d<^@7jUyOh+`!eb&JIseqwv`htHA6IB*%g|w^3E%QCNt({Vi9c@mFG} zqm-_eGfQiPM;uRXh@}*_3m2&Olm{;!dS2?D3N25~>+Y%ytdUtpsKBS@pumiJrN=@I{~QJq!%6HV@Ie^w90na-Whi$s_)*T9m%{r<_1B4S z)0k7TR|u%aIoioxf~o%BeZg0nyG;~Zrp;)1LqC8=epS~~g$W@gqg=H*^%>V^7lvnv}%h$d0EjIyjJwx9KR z2MsQ+j{Q?mU^5G7%ke3FC&JJ#qVHQ91=gF936Ui|^9yLffMZ|vF#CJjGsc`Jexk97 zI6;CTF>!Pc@S33wu{+y_6-L@K3sLIFY>Sm&odnsnewzjFt15O{`h)G)g+WFx{sj7o9%MZ2rUcADxXi*8)G+?~>8vkZNYrv@uNMfO+7 z%d|MF_i%pCy?Mnk&`ilYb9BJHdfhUtB}yshWV@3F+-X0S6l0blou}@*V^_H(Craf^ zL6#`xO`pOJ@d*N43QK{!%kw<`Iac}(gg*2y*AN-S+JATG($~0e2T}$tgqn0g-k&=k zIQc~QSk~?{t7axLrX+1@S1zc2_~Pp>Exov%J2otwHT_QZhB3C^-F*fBFUw$vr`lOORm`n)}Jj|teo%wpcN{WAM4ox5fU zO?{uaOg5zH%lg@vEp6^vi5433ICH?iMa z06p<9T+N>xm~g9(SlPN`ae^U%>B@8Fgw#o?A~$Ezfr;}*61?}8{^UF@I=SkuDQ$Uh zJ%6+?2^kC`BwUinSnB5!;nmqe1@6;9ibYe#k*}WK@)vQ_Oa?8y*AY)1VKKV$-D0jm z@dZVL>V8%lHS?g#GCyxP?Y%K?f}UVuzrEC@qH?P{y^Sw)c+F1(K}Has^6(E!#4bl= zmvk!9N_~RcOZfR^DdrxZRjE{qFW){BZwBzb)Euf&e8AJD6nl+zWpeR_t#_BNly8&o z?7PCkg7A_*UU_@zEwOKv+$v3tx{k^pWK9G0^2sLjVPJO)xc-EUkqN7auI61K9sT9Y zb{~rB*`YFH-}O~W+Xsxtho87xUBJ2)JaJdOa)vej^M|s+@nLIupo*qF*U|K0?WEMy z+4y*!m;axAq^OloDBL|&Xo5qto@>C&$>JdjVv|r%=OsOMLx}^ zmta%^YSk;2rVm6SKVp$b9CT3EGxQ-Nd5R{EYylsgK`glgamY$qFa*=wLW@Pw?xD$8 zJ&L+DV!#r3mY)s^^EeXvoJh*#0HT>6w7dWRQc@LYBp~3*aR$6+iP(8X z2hE+OMXl!2E=D9ERqmeF zyNUj^?h$bGhn6br?-3sQFP)S1Kk8c^h+F>)J)$>hV}bJ}auPPBchgmGDhye1nB!k* zzS6ZTF;&w$bugtq1Kj@6PDwU7q@^7InwpQ3X4102O!Ws8-cWc695HtE22<_*x&u$+ z6nc|!MSti`N;%Zigt{D1owz|*0klBtdB;C7S$f(@(8 z|HUBLVg7)UT!)~BL@y$GYZ4JV_m`3TM~HW(I($br4jJfU|G(z|a7Xd~F&Th7hmf?r zQJX*a2sN~M8Pdf+6sd(o?r%tZf?JJEbV`Ke#HZwY?^kUfs`vjyghKFPbFhifHLN%F zmlZQbP#*(h3(BJLyHLb4Jxf0=B3uM$L&tqn`!>^NIh5yk87PX#S72WBs_h6wNCQoZ zg?AHG(&?5klc+-H2R}L2VH$l8)E-v`+A)}Bn~@SrbkiQ zrW(v0N?ZqHV(1{2+=UD(Yi0qB0f?@(nxiq6Va81gm|k<%PM~H4`Mv+(vijmOdU~95 zBI4<|mb|_?n6NaBt+5X}_MTvZacL%!U<(>z_}R4fv;e&$VeoES|Koo98@voOQzZV$ zQ!yH=4E~qsN5Jh|jeu=zz!u|y6f>R)MpEF990_5ET6cIKuI-`r>pmVszf>Sy^KNdG zB&boOASB(rsghg2HDgjX|L9-3i)-?H{vu}rwH;8`>(`vaPms|K)61V+7d5_%aEsE2 zbt$r&$KpS7{^BI54z+0u;!P;rl9-xkEteu&H_dqTBxTBQB6&9Gz_8XU;by5)twYDT zWwa|?I?RFuFpH(5^*nYf|#G#pDAGTPLu9fWmcqVO! zcCZg1U5#E4;+q0Rm>;`+Yy*P7+0W-@qgz!lYp0*LN_L1^<`3w|`0(|ciD)xA%7mmE zVKrC@A<0U%Tr;u#5!*Kjsou(TvAFS$bJqDB8+i=7m75122$_j+%dDz-y@h++P8z)J5B|!T!qD9XiC@Us2Q^b+5* zxt>LQpjB)R*|ed-v*Wrx*G1c4i=1>2vnHbJF%5vrQyH|^e6$7|`{F#00K+2JF;lxK z{SOs4*H_2Y)t$tj2BCI@foh0sz+5T8cp zy+X^3q~R!yD=75tXvwFBniPYI8Q#^>_}Av!GRHWpbwG&7fFeA(BU3JG-KH-F;pPpV z%k*$dVz{QJT*!E>0yYby2(n#93r9C*0avP^Tm2N_416)b!d34W7(Ob2%>)YvVRk{rmYTViv>>1Z{V-46(Ke&8ORyHsr(am126gppgf%9l;?4F=2cz~ z!efT_KvDe7k4L(e*`gt_)H%|NuWOkr%?hX2&x-Uw(|6XO^%Acl3&&q|uziW>2kxrk z>+xuc0&>$DjbWqB()w09$>7Pb#0I~b?nCW^2Z5;lm%vu|HiYK60tG1guxL$_))_Au zBRBZ4WVA)C^;Y{D+(gmkA*D#*_tKp<5F&M~4fYDbBeZ~sfzh~n&0R+nI4L1Ualw5d zn;pjbz3?U=u3PpiktB<10fj^W2;?(6qPU>V`xTPS7LySp9OP#x?iLuGb;l1W(Qo&@ zFSr+x4xtGB;zP_g*z;JfUa@l&L9Y}HK8MuzlYng9y)l9w4YO|AbY3kg z4uMZv`*8xf;sc&^sCwfga&y}>JJbpg`6!@5y2zFe5-((=DE^-eK_EpM6*DeD(fH~R z3|aLf3euLDg|o-VSq$XMUP8>TIwcutTJ_lh8~q@2Z7GT@$sV{$uO|){8mt{G{S9dT z2wG6x=KGD`7oJ19Bx&sa#}Q2d+RTi@U>?M}VlniH0zEtru)U4}O5?aldQ|+!y-^9! zgi7idr zhZ4SY(9u38u#zlqQNV?*=!I@fbl|MCBl6_=XBKUSC~E$t5>i00T$07485R#Y+l}{Ei zl|4r>3g0DjA)1U4j^3n8F=L#YpB55HchDGN#qjzAC7q?if+ccGBcxx2f#!g~`xQ{~ zP5z!3#Oe!JKNWEu{67zY_$DdZ!<)}w!mF9>`53tp1zi67*K)71X@UvNl5vY19yx<5 z^)ucU)dSClcjdh$?p!d|c6s~CG-cfgz5)gi0F7lU3<$ZL$_={$gil;1;8QE%rCj9r z9A|1>|IG4p$PaWhz~QGb%4w7iUNk0mJx6MAaCxwKQZR!oEUYhV@J&hV+hI6h`D!(KL^$--mv7uhCTf zl4IHX1;tkMHlX2&Wt1NCaV}UX41W_j={G;O3EYxllEL$Lpc6w-M71atL{)g{hNE_q zxQ<@e&tSml1A5OJg7@R3@bD9VQ_G;3kJOi83TUz<4ly}5QK46mEJU@UzEZ<=I|d#! z+6O}MNn~$$3leXdNRsq(Mc_xd)^kL)#dhJp5S3ptdUn3sZgtWS(m+)!Z~&PBS{jz{XG}n`_k0F-EfE$e-Vt~oC?GPISZ*HA` z`8-?@uoBk*jsRz}NdxT!-0x<7(a1_0L~=Qo6QVMRiPddd$`91%B)i{h^zr8#hpVHo zb2QcxvJpjy`W-Q!2iGDU;#n;;JEE>2E5g%P9QDxMuVunYdPCO$>);5PFV{=L*C!rP zqA4Cbw!|oE3Qe8X4H1<`JEP)l^oY>7Cr(kPo;0*R(IV}%Z)K;%iKqmcY zC!xSb%25;HZ0kr-nsyK;8QgLfk}kj1IK;ELE981;vA9bMxyO9u3-6o5+isI2fd7_J zPkq6|8c*2|Z4xvD}}BBqBrsS@mXfrGwnbc7JrkU*3sL zOammX&j*G=;Gdx=ycs^sYbOOO@TWUX)oefYh4kBiXjI4} z1(H<%CSbsrxHU1q7aulW#sdW!`$tmvypad(a#Y2Zwf?>K z*pK_T&w)?wUhh`o>9_%F1%R?3cE;uZAnx7cV(Pp9;V7chI2KBS5JD2=P;D-UB*~?V zC>n&&VGtdt*^WiZAc<1rlrEBy4kM-Ac~ojt=%i+*QK6ZdX*BJcJ=?R!b=|-FzQ51+ z^?bj7JooebDKmS|{(RPFt@nDb_gY&ROc+*`DH2Ae1wS~HaDa?Qn#3tLChc9

m^ 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 M6L66K@n<&wFZRogNdN!< diff --git a/README.md b/README.md index 8d62b567..b3e94763 100644 --- a/README.md +++ b/README.md @@ -67,4 +67,4 @@ ETH:0x98573ddb33cdddce480c3bc1f9279ccd88ca1e93 ### 欢迎为作者付一碗面钱 -一碗面钱   一碗面钱 +![微信](wx_pay.JPG) ![支付宝](IMG_1177.jpg) \ No newline at end of file diff --git a/wx_pay.JPG b/wx_pay.JPG index 214968df917622f165a609c70a38bed4de4d444b..7200378344a5b07af3d9a58f643d3bcd7e9e8971 100644 GIT binary patch literal 54211 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

6*>e>^h##0f>h)LQ|78bc3Y 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 From 630a678df6a1aae6c5134c66144ba12441e02678 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 24 Nov 2020 17:49:20 +0800 Subject: [PATCH 03/15] [huobi] transfer api --- Const.go | 5 +- builder/APIBuilder.go | 2 + huobi/Wallet.go | 124 ++++++++++++++++++++++++++++++++++++++++++ huobi/Wallet_test.go | 25 +++++++++ 4 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 huobi/Wallet.go create mode 100644 huobi/Wallet_test.go diff --git a/Const.go b/Const.go index a6172560..8f560247 100644 --- a/Const.go +++ b/Const.go @@ -167,8 +167,9 @@ const ( SPOT_MARGIN //币币杠杆交易 WALLET // 资金账户 _ - TIPS //余币宝 - SWAP //永续合约 + TIPS //余币宝 + SWAP //永续合约 + SWAP_USDT //usdt本位永续合约 ) type LimitOrderOptionalParameter int diff --git a/builder/APIBuilder.go b/builder/APIBuilder.go index 39395d45..85522875 100644 --- a/builder/APIBuilder.go +++ b/builder/APIBuilder.go @@ -349,6 +349,8 @@ func (builder *APIBuilder) BuildWallet(exName string) (WalletApi, error) { ApiSecretKey: builder.secretkey, ApiPassphrase: builder.apiPassphrase, }).OKExWallet, nil + case HUOBI_PRO: + return huobi.NewWallet(), nil } return nil, errors.New("not support the wallet api for " + exName) } diff --git a/huobi/Wallet.go b/huobi/Wallet.go new file mode 100644 index 00000000..997af90b --- /dev/null +++ b/huobi/Wallet.go @@ -0,0 +1,124 @@ +package huobi + +import ( + "encoding/json" + "errors" + "fmt" + . "github.com/nntaoli-project/goex" + "github.com/nntaoli-project/goex/internal/logger" + "net/url" + "strings" +) + +type Wallet struct { + pro *HuoBiPro +} + +func NewWallet(c *APIConfig) *Wallet { + return &Wallet{pro: NewHuobiWithConfig(c)} +} + +//获取钱包资产 +func (w *Wallet) GetAccount() (*Account, error) { + return nil, errors.New("not implement") +} + +func (w *Wallet) Withdrawal(param WithdrawParameter) (withdrawId string, err error) { + return "", errors.New("not implement") +} + +func (w *Wallet) Transfer(param TransferParameter) error { + if param.From == SUB_ACCOUNT || param.To == SUB_ACCOUNT || + param.From == SPOT_MARGIN || param.To == SPOT_MARGIN { + return errors.New("not implements") + } + + httpParam := url.Values{} + httpParam.Set("currency", strings.ToLower(param.Currency)) + httpParam.Set("amount", FloatToString(param.Amount, 8)) + + path := "" + + if (param.From == SPOT && param.To == FUTURE) || + (param.From == FUTURE && param.To == SPOT) { + path = "/v1/futures/transfer" + } + + if param.From == SWAP || param.From == SWAP_USDT || + param.To == SWAP || param.To == SWAP_USDT { + path = "/v2/account/transfer" + } + + if param.From == SPOT && param.To == FUTURE { + httpParam.Set("type", "pro-to-futures") + } + + if param.From == FUTURE && param.To == SPOT { + httpParam.Set("type", "futures-to-pro") + } + + if param.From == SPOT && param.To == SWAP { + httpParam.Set("from", "spot") + httpParam.Set("to", "swap") + } + + if param.From == SPOT && param.To == SWAP_USDT { + httpParam.Set("currency", "usdt") + httpParam.Set("from", "spot") + httpParam.Set("to", "linear-swap") + httpParam.Set("margin-account", fmt.Sprintf("%s-usdt", strings.ToLower(param.Currency))) + } + + if param.From == SWAP && param.To == SPOT { + httpParam.Set("from", "swap") + httpParam.Set("to", "spot") + } + + if param.From == SWAP_USDT && param.To == SPOT { + httpParam.Set("currency", "usdt") + httpParam.Set("from", "linear-swap") + httpParam.Set("to", "spot") + httpParam.Set("margin-account", + fmt.Sprintf("%s-usdt", strings.ToLower(param.Currency))) + } + + w.pro.buildPostForm("POST", path, &httpParam) + + postJsonParam, _ := ValuesToJson(httpParam) + responseBody, err := HttpPostForm3(w.pro.httpClient, + fmt.Sprintf("%s%s?%s", w.pro.baseUrl, path, httpParam.Encode()), + string(postJsonParam), + map[string]string{"Content-Type": "application/json", "Accept-Language": "zh-cn"}) + + if err != nil { + return err + } + + logger.Debugf("[response body] %s", string(responseBody)) + + var responseRet map[string]interface{} + + err = json.Unmarshal(responseBody, &responseRet) + if err != nil { + return err + } + + if responseRet["status"] != nil && + responseRet["status"].(string) == "ok" { + return nil + } + + if responseRet["code"] != nil && responseRet["code"].(float64) == 200 { + return nil + } + + return errors.New(string(responseBody)) +} + +func (w *Wallet) GetWithDrawHistory(currency *Currency) ([]DepositWithdrawHistory, error) { + return nil, errors.New("not implement") +} + +func (w *Wallet) GetDepositHistory(currency *Currency) ([]DepositWithdrawHistory, error) { + return nil, errors.New("not implement") +} diff --git a/huobi/Wallet_test.go b/huobi/Wallet_test.go new file mode 100644 index 00000000..0d840fed --- /dev/null +++ b/huobi/Wallet_test.go @@ -0,0 +1,25 @@ +package huobi + +import ( + "github.com/nntaoli-project/goex" + "testing" +) + +var wallet *Wallet + +func init() { + wallet = NewWallet(&goex.APIConfig{ + HttpClient: httpProxyClient, + ApiKey: "", + ApiSecretKey: "", + }) +} + +func TestWallet_Transfer(t *testing.T) { + t.Log(wallet.Transfer(goex.TransferParameter{ + Currency: "BTC", + From: goex.SWAP_USDT, + To: goex.SPOT, + Amount: 11, + })) +} From 29b47e07cc7e69f4af352685b90395f15eef81aa Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 24 Nov 2020 18:19:28 +0800 Subject: [PATCH 04/15] [binance] wallet transfer api --- binance/Wallet.go | 78 ++++++++++++++++++++++++++++++++++++++++++ binance/Wallet_test.go | 26 ++++++++++++++ builder/APIBuilder.go | 14 +++++++- 3 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 binance/Wallet.go create mode 100644 binance/Wallet_test.go diff --git a/binance/Wallet.go b/binance/Wallet.go new file mode 100644 index 00000000..c7f6a6a5 --- /dev/null +++ b/binance/Wallet.go @@ -0,0 +1,78 @@ +package binance + +import ( + "errors" + "fmt" + . "github.com/nntaoli-project/goex" + "net/url" +) + +type Wallet struct { + ba *Binance + conf *APIConfig +} + +func NewWallet(c *APIConfig) *Wallet { + return &Wallet{ba: NewWithConfig(c), conf: c} +} + +func (w *Wallet) GetAccount() (*Account, error) { + return nil, errors.New("not implement") +} + +func (w *Wallet) Withdrawal(param WithdrawParameter) (withdrawId string, err error) { + return "", errors.New("not implement") +} + +func (w *Wallet) Transfer(param TransferParameter) error { + transferUrl := w.conf.Endpoint + "/sapi/v1/futures/transfer" + + postParam := url.Values{} + postParam.Set("currency", param.Currency) + postParam.Set("amount", fmt.Sprint(param.Amount)) + + if param.From == SPOT && param.To == SWAP_USDT { + postParam.Set("type", "1") + } + + if param.From == SWAP_USDT && param.To == SPOT { + postParam.Set("type", "2") + } + + if param.From == SPOT && param.To == FUTURE { + postParam.Set("type", "3") + } + + if param.From == FUTURE && param.To == SPOT { + postParam.Set("type", "4") + } + + w.ba.buildParamsSigned(&postParam) + + resp, err := HttpPostForm2(w.ba.httpClient, transferUrl, postParam, + map[string]string{"X-MBX-APIKEY": w.ba.accessKey}) + + if err != nil { + return err + } + + respmap := make(map[string]interface{}) + err = json.Unmarshal(resp, &respmap) + if err != nil { + return err + } + + if respmap["tranId"] != nil && ToInt64(respmap["tranId"]) > 0 { + return nil + } + + return errors.New(string(resp)) +} + +func (w *Wallet) GetWithDrawHistory(currency *Currency) ([]DepositWithdrawHistory, error) { + return nil, errors.New("not implement") +} + +func (w *Wallet) GetDepositHistory(currency *Currency) ([]DepositWithdrawHistory, error) { + return nil, errors.New("not implement") +} diff --git a/binance/Wallet_test.go b/binance/Wallet_test.go new file mode 100644 index 00000000..b2e05fb9 --- /dev/null +++ b/binance/Wallet_test.go @@ -0,0 +1,26 @@ +package binance + +import ( + "github.com/nntaoli-project/goex" + "net/http" + "testing" +) + +var wallet *Wallet + +func init() { + wallet = NewWallet(&goex.APIConfig{ + HttpClient: http.DefaultClient, + ApiKey: "", + ApiSecretKey: "", + }) +} + +func TestWallet_Transfer(t *testing.T) { + t.Log(wallet.Transfer(goex.TransferParameter{ + Currency: "USDT", + From: goex.SPOT, + To: goex.SWAP_USDT, + Amount: 100, + })) +} diff --git a/builder/APIBuilder.go b/builder/APIBuilder.go index 85522875..158debd0 100644 --- a/builder/APIBuilder.go +++ b/builder/APIBuilder.go @@ -350,7 +350,19 @@ func (builder *APIBuilder) BuildWallet(exName string) (WalletApi, error) { ApiPassphrase: builder.apiPassphrase, }).OKExWallet, nil case HUOBI_PRO: - return huobi.NewWallet(), nil + return huobi.NewWallet(&APIConfig{ + HttpClient: builder.client, + Endpoint: builder.endPoint, + ApiKey: builder.apiKey, + ApiSecretKey: builder.secretkey, + }), nil + case BINANCE: + return binance.NewWallet(&APIConfig{ + HttpClient: builder.client, + Endpoint: builder.endPoint, + ApiKey: builder.apiKey, + ApiSecretKey: builder.secretkey, + }), nil } return nil, errors.New("not support the wallet api for " + exName) } From 6f6aeccb59beec56014a0e11c2d489ba35fb009c Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Mon, 30 Nov 2020 19:10:55 +0800 Subject: [PATCH 05/15] [OKExSwap] print placeorder error parameter info --- okex/OKExSwap.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/okex/OKExSwap.go b/okex/OKExSwap.go index e630398c..b916cd38 100644 --- a/okex/OKExSwap.go +++ b/okex/OKExSwap.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/nntaoli-project/goex/internal/logger" "net/url" "strconv" "time" @@ -328,10 +329,12 @@ func (ok *OKExSwap) PlaceFutureOrder2(currencyPair CurrencyPair, contractType, p err := ok.DoRequest("POST", PLACE_ORDER, reqBody, &resp) if err != nil { + logger.Errorf("[param] %s", param) return fOrder, err } if resp.ErrorMessage != "" { + logger.Errorf("[param] %s", param) return fOrder, errors.New(fmt.Sprintf("%s:%s", resp.ErrorCode, resp.ErrorMessage)) } From b4fa2128dd9c210e23307babc46a43cbb4714a57 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Mon, 30 Nov 2020 19:16:40 +0800 Subject: [PATCH 06/15] [OKExSwap] Optimization the GetFutureUserinfo --- okex/OKExSwap.go | 78 ++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 45 deletions(-) diff --git a/okex/OKExSwap.go b/okex/OKExSwap.go index b916cd38..02347c55 100644 --- a/okex/OKExSwap.go +++ b/okex/OKExSwap.go @@ -7,6 +7,7 @@ import ( "github.com/nntaoli-project/goex/internal/logger" "net/url" "strconv" + "strings" "time" . "github.com/nntaoli-project/goex" @@ -186,39 +187,43 @@ func (ok *OKExSwap) GetFutureDepth(currencyPair CurrencyPair, contractType strin } func (ok *OKExSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureAccount, error) { - var infos SwapAccounts + var ( + err error + infos SwapAccounts + ) + + if len(currencyPair) == 1 { + accountInfo, err := ok.GetFutureAccountInfo(currencyPair[0]) + if err != nil { + return nil, err + } + + if accountInfo == nil { + return nil, errors.New("api return info is empty") + } - err := ok.OKEx.DoRequest("GET", GET_ACCOUNTS, "", &infos) + infos.Info = append(infos.Info, *accountInfo) + + goto wrapperF + } + + err = ok.OKEx.DoRequest("GET", GET_ACCOUNTS, "", &infos) if err != nil { return nil, err } //log.Println(infos) +wrapperF: acc := FutureAccount{} acc.FutureSubAccounts = make(map[Currency]FutureSubAccount, 2) for _, account := range infos.Info { subAcc := FutureSubAccount{AccountRights: account.Equity, - KeepDeposit: account.Margin, ProfitReal: account.RealizedPnl, ProfitUnreal: account.UnrealizedPnl, RiskRate: account.MarginRatio} - switch account.InstrumentId { - case BTC_USD_SWAP: - subAcc.Currency = BTC - case LTC_USD_SWAP: - subAcc.Currency = LTC - case ETH_USD_SWAP: - subAcc.Currency = ETH - case ETC_USD_SWAP: - subAcc.Currency = ETC - case BCH_USD_SWAP: - subAcc.Currency = BCH - case BSV_USD_SWAP: - subAcc.Currency = BSV - case EOS_USD_SWAP: - subAcc.Currency = EOS - case XRP_USD_SWAP: - subAcc.Currency = XRP - default: - subAcc.Currency = UNKNOWN + KeepDeposit: account.Margin, ProfitReal: account.RealizedPnl, + ProfitUnreal: account.UnrealizedPnl, RiskRate: account.MarginRatio} + meta := strings.Split(account.InstrumentId, "-") + if len(meta) > 0 { + subAcc.Currency = NewCurrency(meta[0], "") } acc.FutureSubAccounts[subAcc.Currency] = subAcc } @@ -226,34 +231,17 @@ func (ok *OKExSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureAcco return &acc, nil } -type AccountInfo struct { - Info struct { - Currency string `json:"currency"` - Equity float64 `json:"equity,string"` - FixedBalance float64 `json:"fixed_balance,string"` - InstrumentID string `json:"instrument_id"` - MaintMarginRatio float64 `json:"maint_margin_ratio,string"` - Margin float64 `json:"margin,string"` - MarginFrozen float64 `json:"margin_frozen,string"` - MarginMode string `json:"margin_mode"` - MarginRatio float64 `json:"margin_ratio,string"` - MaxWithdraw float64 `json:"max_withdraw,string"` - RealizedPnl float64 `json:"realized_pnl,string"` - Timestamp string `json:"timestamp"` - TotalAvailBalance float64 `json:"total_avail_balance,string"` - Underlying string `json:"underlying"` - UnrealizedPnl float64 `json:"unrealized_pnl,string"` - } `json:"info"` -} - -func (ok *OKExSwap) GetFutureAccountInfo(currency CurrencyPair) (*AccountInfo, error) { - var infos AccountInfo +func (ok *OKExSwap) GetFutureAccountInfo(currency CurrencyPair) (*SwapAccountInfo, error) { + var infos struct { + Info SwapAccountInfo `json:"info"` + } err := ok.OKEx.DoRequest("GET", fmt.Sprintf("/api/swap/v3/%s/accounts", ok.adaptContractType(currency)), "", &infos) if err != nil { return nil, err } - return &infos, nil + + return &infos.Info, nil } /* From 14f6dbc81d1c94c17bc6239d8da30810aef597a2 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Mon, 30 Nov 2020 19:39:35 +0800 Subject: [PATCH 07/15] [OKExSwap] PlaceOrder Set OrderType value --- okex/OKExSwap.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/okex/OKExSwap.go b/okex/OKExSwap.go index 02347c55..aeebe046 100644 --- a/okex/OKExSwap.go +++ b/okex/OKExSwap.go @@ -283,7 +283,9 @@ func (ok *OKExSwap) PlaceFutureOrder2(currencyPair CurrencyPair, contractType, p Price: price, MatchPrice: fmt.Sprint(matchPrice), Type: fmt.Sprint(openType), - Size: amount}, + Size: amount, + OrderType: "0", + }, ok.adaptContractType(currencyPair), } From c3bd9def11c39a8ccbe0dd5aa04b520d597d7416 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 1 Dec 2020 14:33:39 +0800 Subject: [PATCH 08/15] [binance] fix transfer bug --- binance/Wallet.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/binance/Wallet.go b/binance/Wallet.go index c7f6a6a5..5d2c7cb5 100644 --- a/binance/Wallet.go +++ b/binance/Wallet.go @@ -28,7 +28,7 @@ func (w *Wallet) Transfer(param TransferParameter) error { transferUrl := w.conf.Endpoint + "/sapi/v1/futures/transfer" postParam := url.Values{} - postParam.Set("currency", param.Currency) + postParam.Set("asset", param.Currency) postParam.Set("amount", fmt.Sprint(param.Amount)) if param.From == SPOT && param.To == SWAP_USDT { @@ -48,7 +48,7 @@ func (w *Wallet) Transfer(param TransferParameter) error { } w.ba.buildParamsSigned(&postParam) - + resp, err := HttpPostForm2(w.ba.httpClient, transferUrl, postParam, map[string]string{"X-MBX-APIKEY": w.ba.accessKey}) From 575a21b09858147ae31f4e925cd5ac6a3905033b Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 1 Dec 2020 17:06:12 +0800 Subject: [PATCH 09/15] [binance] implement the futures trade api --- binance/BinanceFutures.go | 405 +++++++++++++++++++++++++++++++-- binance/BinanceFutures_test.go | 41 +++- 2 files changed, 416 insertions(+), 30 deletions(-) diff --git a/binance/BinanceFutures.go b/binance/BinanceFutures.go index a49100c9..37c328c1 100644 --- a/binance/BinanceFutures.go +++ b/binance/BinanceFutures.go @@ -5,12 +5,60 @@ import ( "fmt" . "github.com/nntaoli-project/goex" "github.com/nntaoli-project/goex/internal/logger" + "math" "net/http" + "net/url" "sort" + "strings" "sync" "time" ) +type BaseResponse struct { + Code int `json:"code"` + Msg string `json:"msg"` +} + +type AccountResponse struct { + FeeTier int `json:"feeTier"` + CanTrade bool `json:"canTrade"` + Assets []struct { + Asset string `json:"asset"` + WalletBalance float64 `json:"walletBlance,string"` + UnrealizedProfit float64 `json:"unrealizedProfit,string"` + MaintMargin float64 `json:"maintMargin,string"` + } `json:"assets"` +} + +type OrderInfoResponse struct { + BaseResponse + Symbol string `json:"symbol"` + Pair string `json:"pair"` + ClientOrderId string `json:"clientOrderId"` + OrderId int64 `json:"orderId"` + AvgPrice float64 `json:"avgPrice,string"` + ExecutedQty float64 `json:"executedQty,string"` + OrigQty float64 `json:"origQty,string"` + Price float64 `json:"price,string"` + Side string `json:"side"` + PositionSide string `json:"positionSide"` + Status string `json:"status"` + Type string `json:"type"` + Time int64 `json:"time"` + UpdateTime int64 `json:"updateTime"` +} + +type PositionRiskResponse struct { + Symbol string `json:"symbol"` + PositionAmt float64 `json:"positionAmt,string"` + EntryPrice float64 `json:"entryPrice,string"` + UnRealizedProfit float64 `json:"unRealizedProfit,string"` + LiquidationPrice float64 `json:"liquidationPrice,string"` + Leverage float64 `json:"leverage,string"` + MarginType string `json:"marginType"` + PositionSide string `json:"positionSide"` +} + type SymbolInfo struct { Symbol string Pair string @@ -22,7 +70,8 @@ type SymbolInfo struct { } type BinanceFutures struct { - base Binance + base *Binance + apikey string exchangeInfo *struct { Symbols []SymbolInfo `json:"symbols"` } @@ -38,15 +87,12 @@ func NewBinanceFutures(config *APIConfig) *BinanceFutures { } bs := &BinanceFutures{ - base: Binance{ - baseUrl: config.Endpoint, - accessKey: config.ApiKey, - apiV1: config.Endpoint + "/dapi/v1/", - secretKey: config.ApiSecretKey, - httpClient: config.HttpClient, - }, + apikey: config.ApiKey, + base: NewWithConfig(config), } + bs.base.apiV1 = config.Endpoint + "/dapi/v1/" + go bs.GetExchangeInfo() return bs @@ -188,32 +234,210 @@ func (bs *BinanceFutures) GetFutureIndex(currencyPair CurrencyPair) (float64, er func (bs *BinanceFutures) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureAccount, error) { accountUri := bs.base.apiV1 + "account" - resp, err := HttpGet5(bs.base.httpClient, accountUri, map[string]string{}) + param := url.Values{} + bs.base.buildParamsSigned(¶m) + + respData, err := HttpGet5(bs.base.httpClient, accountUri+"?"+param.Encode(), map[string]string{ + "X-MBX-APIKEY": bs.apikey}) + if err != nil { return nil, err } - logger.Debug(string(resp)) - return nil, nil + + logger.Debug(string(respData)) + + var ( + accountResp AccountResponse + futureAccounts FutureAccount + ) + + err = json.Unmarshal(respData, &accountResp) + if err != nil { + return nil, fmt.Errorf("response body: %s , %w", string(respData), err) + } + + futureAccounts.FutureSubAccounts = make(map[Currency]FutureSubAccount, 4) + for _, asset := range accountResp.Assets { + currency := NewCurrency(asset.Asset, "") + futureAccounts.FutureSubAccounts[currency] = FutureSubAccount{ + Currency: NewCurrency(asset.Asset, ""), + AccountRights: asset.WalletBalance, + KeepDeposit: asset.MaintMargin, + ProfitReal: 0, + ProfitUnreal: asset.UnrealizedProfit, + RiskRate: 0, + } + } + + return &futureAccounts, nil } func (bs *BinanceFutures) PlaceFutureOrder(currencyPair CurrencyPair, contractType, price, amount string, openType, matchPrice int, leverRate float64) (string, error) { - panic("not supported.") + apiPath := "order" + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return "", err + } + + param := url.Values{} + param.Set("symbol", symbol) + param.Set("newClientOrderId", GenerateOrderClientId(32)) + param.Set("quantity", amount) + param.Set("newOrderRespType", "ACK") + + if matchPrice == 0 { + param.Set("type", "LIMIT") + param.Set("timeInForce", "GTC") + param.Set("price", price) + } else { + param.Set("type", "MARKET") + } + + switch openType { + case OPEN_BUY, CLOSE_SELL: + param.Set("side", "BUY") + case OPEN_SELL, CLOSE_BUY: + param.Set("side", "SELL") + } + + bs.base.buildParamsSigned(¶m) + + resp, err := HttpPostForm2(bs.base.httpClient, fmt.Sprintf("%s%s", bs.base.apiV1, apiPath), param, + map[string]string{"X-MBX-APIKEY": bs.apikey}) + + if err != nil { + return "", err + } + + logger.Debug(string(resp)) + + var response struct { + BaseResponse + OrderId int64 `json:"orderId"` + } + + err = json.Unmarshal(resp, &response) + if err != nil { + return "", err + } + + if response.Code == 0 { + return fmt.Sprint(response.OrderId), nil + } + + return "", errors.New(response.Msg) } func (bs *BinanceFutures) LimitFuturesOrder(currencyPair CurrencyPair, contractType, price, amount string, openType int, opt ...LimitOrderOptionalParameter) (*FutureOrder, error) { - panic("not supported.") + orderId, err := bs.PlaceFutureOrder(currencyPair, contractType, price, amount, openType, 0, 10) + return &FutureOrder{ + OrderID2: orderId, + Currency: currencyPair, + ContractName: contractType, + Amount: ToFloat64(amount), + Price: ToFloat64(price), + OType: openType, + }, err } func (bs *BinanceFutures) MarketFuturesOrder(currencyPair CurrencyPair, contractType, amount string, openType int) (*FutureOrder, error) { - panic("not supported.") + orderId, err := bs.PlaceFutureOrder(currencyPair, contractType, "", amount, openType, 1, 10) + return &FutureOrder{ + OrderID2: orderId, + Currency: currencyPair, + ContractName: contractType, + Amount: ToFloat64(amount), + OType: openType, + }, err } func (bs *BinanceFutures) FutureCancelOrder(currencyPair CurrencyPair, contractType, orderId string) (bool, error) { - panic("not supported.") + apiPath := "order" + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return false, err + } + + param := url.Values{} + param.Set("symbol", symbol) + if strings.HasPrefix(orderId, "goex") { + param.Set("origClientOrderId", orderId) + } else { + param.Set("orderId", orderId) + } + + bs.base.buildParamsSigned(¶m) + + reqUrl := fmt.Sprintf("%s%s?%s", bs.base.apiV1, apiPath, param.Encode()) + resp, err := HttpDeleteForm(bs.base.httpClient, reqUrl, url.Values{}, map[string]string{"X-MBX-APIKEY": bs.apikey}) + if err != nil { + logger.Errorf("request url: %s", reqUrl) + return false, err + } + + logger.Debug(string(resp)) + + return true, nil } func (bs *BinanceFutures) GetFuturePosition(currencyPair CurrencyPair, contractType string) ([]FuturePosition, error) { - panic("not supported.") + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return nil, err + } + + params := url.Values{} + bs.base.buildParamsSigned(¶ms) + path := bs.base.apiV1 + "positionRisk?" + params.Encode() + + respBody, err := HttpGet5(bs.base.httpClient, path, map[string]string{"X-MBX-APIKEY": bs.apikey}) + if err != nil { + return nil, err + } + logger.Debug(string(respBody)) + + var ( + positionRiskResponse []PositionRiskResponse + positions []FuturePosition + ) + + err = json.Unmarshal(respBody, &positionRiskResponse) + if err != nil { + logger.Errorf("response body: %s", string(respBody)) + return nil, err + } + + for _, info := range positionRiskResponse { + if info.Symbol != symbol { + continue + } + + p := FuturePosition{ + LeverRate: info.Leverage, + Symbol: currencyPair, + ForceLiquPrice: info.LiquidationPrice, + } + + if info.PositionAmt > 0 { + p.BuyAmount = info.PositionAmt + p.BuyAvailable = info.PositionAmt + p.BuyPriceAvg = info.EntryPrice + p.BuyPriceCost = info.EntryPrice + p.BuyProfit = info.UnRealizedProfit + p.BuyProfitReal = info.UnRealizedProfit + } else if info.PositionAmt < 0 { + p.SellAmount = math.Abs(info.PositionAmt) + p.SellAvailable = math.Abs(info.PositionAmt) + p.SellPriceAvg = info.EntryPrice + p.SellPriceCost = info.EntryPrice + p.SellProfit = info.UnRealizedProfit + p.SellProfitReal = info.UnRealizedProfit + } + + positions = append(positions, p) + } + + return positions, nil } func (bs *BinanceFutures) GetFutureOrders(orderIds []string, currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { @@ -221,11 +445,100 @@ func (bs *BinanceFutures) GetFutureOrders(orderIds []string, currencyPair Curren } func (bs *BinanceFutures) GetFutureOrder(orderId string, currencyPair CurrencyPair, contractType string) (*FutureOrder, error) { - panic("not supported.") + apiPath := "order" + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return nil, err + } + + param := url.Values{} + param.Set("symbol", symbol) + param.Set("orderId", orderId) + + bs.base.buildParamsSigned(¶m) + + reqUrl := fmt.Sprintf("%s%s?%s", bs.base.apiV1, apiPath, param.Encode()) + resp, err := HttpGet5(bs.base.httpClient, reqUrl, map[string]string{"X-MBX-APIKEY": bs.apikey}) + if err != nil { + logger.Errorf("request url: %s", reqUrl) + return nil, err + } + + logger.Debug(string(resp)) + + var getOrderInfoResponse OrderInfoResponse + err = json.Unmarshal(resp, &getOrderInfoResponse) + if err != nil { + logger.Errorf("response body: %s", string(resp)) + return nil, err + } + + return &FutureOrder{ + Currency: currencyPair, + ClientOid: getOrderInfoResponse.ClientOrderId, + OrderID2: fmt.Sprint(getOrderInfoResponse.OrderId), + Price: getOrderInfoResponse.Price, + Amount: getOrderInfoResponse.OrigQty, + AvgPrice: getOrderInfoResponse.AvgPrice, + DealAmount: getOrderInfoResponse.ExecutedQty, + OrderTime: getOrderInfoResponse.Time / 1000, + Status: bs.adaptStatus(getOrderInfoResponse.Status), + OType: bs.adaptOType(getOrderInfoResponse.Side, getOrderInfoResponse.PositionSide), + ContractName: contractType, + FinishedTime: getOrderInfoResponse.UpdateTime / 1000, + }, nil } func (bs *BinanceFutures) GetUnfinishFutureOrders(currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { - panic("not supported.") + apiPath := "openOrders" + param := url.Values{} + + symbol, err := bs.adaptToSymbol(currencyPair, contractType) + if err != nil { + return nil, err + } + + param.Set("symbol", symbol) + bs.base.buildParamsSigned(¶m) + + respbody, err := HttpGet5(bs.base.httpClient, fmt.Sprintf("%s%s?%s", bs.base.apiV1, apiPath, param.Encode()), + map[string]string{ + "X-MBX-APIKEY": bs.apikey, + }) + if err != nil { + return nil, err + } + logger.Debug(string(respbody)) + + var ( + openOrderResponse []OrderInfoResponse + orders []FutureOrder + ) + + err = json.Unmarshal(respbody, &openOrderResponse) + if err != nil { + return nil, err + } + + for _, ord := range openOrderResponse { + orders = append(orders, FutureOrder{ + Currency: currencyPair, + ClientOid: ord.ClientOrderId, + OrderID: ord.OrderId, + OrderID2: fmt.Sprint(ord.OrderId), + Price: ord.Price, + Amount: ord.OrigQty, + AvgPrice: ord.AvgPrice, + DealAmount: ord.ExecutedQty, + Status: bs.adaptStatus(ord.Status), + OType: bs.adaptOType(ord.Side, ord.PositionSide), + ContractName: contractType, + FinishedTime: ord.UpdateTime / 1000, + OrderTime: ord.Time / 1000, + }) + } + + return orders, nil } func (bs *BinanceFutures) GetFee() (float64, error) { @@ -233,7 +546,12 @@ func (bs *BinanceFutures) GetFee() (float64, error) { } func (bs *BinanceFutures) GetContractValue(currencyPair CurrencyPair) (float64, error) { - panic("not supported.") + switch currencyPair { + case BTC_USD: + return 100, nil + default: + return 10, nil + } } func (bs *BinanceFutures) GetDeliveryTime() (int, int, int, int) { @@ -307,3 +625,52 @@ func (bs *BinanceFutures) adaptToSymbol(pair CurrencyPair, contractType string) return "", errors.New("binance not support " + pair.ToSymbol("") + " " + contractType) } + +func (bs *BinanceFutures) adaptStatus(status string) TradeStatus { + switch status { + case "NEW": + return ORDER_UNFINISH + case "CANCELED": + return ORDER_CANCEL + case "FILLED": + return ORDER_FINISH + case "PARTIALLY_FILLED": + return ORDER_PART_FINISH + case "PENDING_CANCEL": + return ORDER_CANCEL_ING + case "REJECTED": + return ORDER_REJECT + default: + return ORDER_UNFINISH + } +} + +func (bs *BinanceFutures) adaptOType(side string, positionSide string) int { + if positionSide == "BOTH" && side == "SELL" { + return OPEN_SELL + } + + if positionSide == "BOTH" && side == "BUY" { + return OPEN_BUY + } + + if positionSide == "LONG" { + switch side { + case "BUY": + return OPEN_BUY + default: + return CLOSE_BUY + } + } + + if positionSide == "SHORT" { + switch side { + case "SELL": + return OPEN_SELL + default: + return CLOSE_SELL + } + } + + return 0 +} diff --git a/binance/BinanceFutures_test.go b/binance/BinanceFutures_test.go index a4b56f99..6ba9fe2b 100644 --- a/binance/BinanceFutures_test.go +++ b/binance/BinanceFutures_test.go @@ -8,16 +8,6 @@ import ( ) var baDapi = NewBinanceFutures(&goex.APIConfig{ - Endpoint: "https://dapi.binancezh.pro", - //HttpClient: &http.Client{ - // Transport: &http.Transport{ - // Proxy: func(req *http.Request) (*url.URL, error) { - // return url.Parse("socks5://127.0.0.1:1080") - // return nil, nil - // }, - // }, - // Timeout: 10 * time.Second, - //}, HttpClient: http.DefaultClient, ApiKey: "", ApiSecretKey: "", @@ -28,7 +18,7 @@ func init() { } func TestBinanceFutures_GetFutureDepth(t *testing.T) { - t.Log(baDapi.GetFutureDepth(goex.ETH_USD, goex.BI_QUARTER_CONTRACT, 10)) + t.Log(baDapi.GetFutureDepth(goex.ETH_USD, goex.QUARTER_CONTRACT, 10)) } func TestBinanceSwap_GetFutureTicker(t *testing.T) { @@ -44,3 +34,32 @@ func TestBinance_GetExchangeInfo(t *testing.T) { func TestBinanceFutures_GetFutureUserinfo(t *testing.T) { t.Log(baDapi.GetFutureUserinfo()) } + +func TestBinanceFutures_PlaceFutureOrder(t *testing.T) { + //1044675677 + t.Log(baDapi.PlaceFutureOrder(goex.BTC_USD, goex.QUARTER_CONTRACT, "19990", "2", goex.OPEN_SELL, 0, 10)) +} + +func TestBinanceFutures_LimitFuturesOrder(t *testing.T) { + t.Log(baDapi.LimitFuturesOrder(goex.BTC_USD, goex.QUARTER_CONTRACT, "20001", "2", goex.OPEN_SELL)) +} + +func TestBinanceFutures_MarketFuturesOrder(t *testing.T) { + t.Log(baDapi.MarketFuturesOrder(goex.BTC_USD, goex.QUARTER_CONTRACT, "2", goex.OPEN_SELL)) +} + +func TestBinanceFutures_GetFutureOrder(t *testing.T) { + t.Log(baDapi.GetFutureOrder("1045208666", goex.BTC_USD, goex.QUARTER_CONTRACT)) +} + +func TestBinanceFutures_FutureCancelOrder(t *testing.T) { + t.Log(baDapi.FutureCancelOrder(goex.BTC_USD, goex.QUARTER_CONTRACT, "1045328328")) +} + +func TestBinanceFutures_GetFuturePosition(t *testing.T) { + t.Log(baDapi.GetFuturePosition(goex.BTC_USD, goex.QUARTER_CONTRACT)) +} + +func TestBinanceFutures_GetUnfinishFutureOrders(t *testing.T) { + t.Log(baDapi.GetUnfinishFutureOrders(goex.BTC_USD , goex.QUARTER_CONTRACT)) +} From 3eea32a5f43fd3fabcc7e45882029a3c08ae5439 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 1 Dec 2020 17:09:12 +0800 Subject: [PATCH 10/15] [APIBuilder] build binance futures --- builder/APIBuilder.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builder/APIBuilder.go b/builder/APIBuilder.go index 158debd0..31afe7e1 100644 --- a/builder/APIBuilder.go +++ b/builder/APIBuilder.go @@ -296,14 +296,14 @@ func (builder *APIBuilder) BuildFuture(exName string) (api FutureRestAPI) { ApiSecretKey: builder.secretkey, }) - case BINANCE, BINANCE_SWAP: + case BINANCE_SWAP: return binance.NewBinanceSwap(&APIConfig{ HttpClient: builder.client, Endpoint: builder.futuresEndPoint, ApiKey: builder.apiKey, ApiSecretKey: builder.secretkey, }) - case BINANCE_FUTURES: + case BINANCE, BINANCE_FUTURES: return binance.NewBinanceFutures(&APIConfig{ HttpClient: builder.client, Endpoint: builder.futuresEndPoint, From e65ca68f8b6686f66c03023a02dcdf61c50f1873 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Tue, 1 Dec 2020 17:59:58 +0800 Subject: [PATCH 11/15] [binance futures] fix bug --- binance/BinanceFutures.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/binance/BinanceFutures.go b/binance/BinanceFutures.go index 37c328c1..9c361810 100644 --- a/binance/BinanceFutures.go +++ b/binance/BinanceFutures.go @@ -24,7 +24,7 @@ type AccountResponse struct { CanTrade bool `json:"canTrade"` Assets []struct { Asset string `json:"asset"` - WalletBalance float64 `json:"walletBlance,string"` + WalletBalance float64 `json:"walletBalance,string"` UnrealizedProfit float64 `json:"unrealizedProfit,string"` MaintMargin float64 `json:"maintMargin,string"` } `json:"assets"` From 376a6f98f8b68ef9316b32876a221354eba99d0b Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Thu, 3 Dec 2020 18:31:58 +0800 Subject: [PATCH 12/15] [HbdmSwap] hbdm swap api --- Const.go | 2 + builder/APIBuilder.go | 7 + huobi/Hbdm.go | 1 + huobi/Hbdm_Swap.go | 451 ++++++++++++++++++++++++++++++++++++++++ huobi/Hbdm_Swap_test.go | 55 +++++ 5 files changed, 516 insertions(+) create mode 100644 huobi/Hbdm_Swap.go create mode 100644 huobi/Hbdm_Swap_test.go diff --git a/Const.go b/Const.go index 8f560247..2ef285af 100644 --- a/Const.go +++ b/Const.go @@ -119,6 +119,7 @@ var ( QUARTER_CONTRACT = "quarter" //季度合约 BI_QUARTER_CONTRACT = "bi_quarter" // NEXT QUARTER SWAP_CONTRACT = "swap" //永续合约 + SWAP_USDT_CONTRACT = "swap-usdt" ) //exchanges const @@ -153,6 +154,7 @@ const ( BITMEX_TEST = "testnet.bitmex.com" CRYPTOPIA = "cryptopia.co.nz" HBDM = "hbdm.com" + HBDM_SWAP = "hbdm.com_swap" COINBENE = "coinbene.com" ATOP = "a.top" BITGET_SWAP = "bitget_swap" diff --git a/builder/APIBuilder.go b/builder/APIBuilder.go index 31afe7e1..b6aaed2c 100644 --- a/builder/APIBuilder.go +++ b/builder/APIBuilder.go @@ -280,6 +280,13 @@ func (builder *APIBuilder) BuildFuture(exName string) (api FutureRestAPI) { Endpoint: builder.futuresEndPoint, ApiKey: builder.apiKey, ApiSecretKey: builder.secretkey}) + case HBDM_SWAP: + return huobi.NewHbdmSwap(&APIConfig{ + HttpClient: builder.client, + Endpoint: builder.endPoint, + ApiKey: builder.apiKey, + ApiSecretKey: builder.secretkey, + }) case OKEX_SWAP: return okex.NewOKEx(&APIConfig{ HttpClient: builder.client, diff --git a/huobi/Hbdm.go b/huobi/Hbdm.go index df17e3a7..50bd7143 100644 --- a/huobi/Hbdm.go +++ b/huobi/Hbdm.go @@ -744,6 +744,7 @@ func (dm *Hbdm) doRequest(path string, params *url.Values, data interface{}) err return err } + logger.Debugf("response body: %s", string(resp)) //log.Println(string(resp)) err = json.Unmarshal(resp, &ret) if err != nil { diff --git a/huobi/Hbdm_Swap.go b/huobi/Hbdm_Swap.go new file mode 100644 index 00000000..3c9df609 --- /dev/null +++ b/huobi/Hbdm_Swap.go @@ -0,0 +1,451 @@ +package huobi + +import ( + "encoding/json" + "errors" + "fmt" + . "github.com/nntaoli-project/goex" + "github.com/nntaoli-project/goex/internal/logger" + "net/url" + "sort" + "time" +) + +type HbdmSwap struct { + base *Hbdm + c *APIConfig +} + +const ( + getSwapContractInfoApiPath = "/swap-ex/v1/swap_contract_info" + tickerApiPath = "/swap-ex/market/detail/merged" + marketApiPath = "/swap-ex/market/depth" + klineApiPath = "/swap-api/market/history/kline" + accountApiPath = "/swap-api/v1/swap_account_info" + placeOrderApiPath = "/swap-api/v1/swap_order" + getPositionApiPath = "/swap-api/v1/swap_position_info" + cancelOrderApiPath = "/swap-api/v1/swap_cancel" + getOpenOrdersApiPath = "/swap-api/v1/swap_openorders" + getOrderInfoApiPath = "/swap-api/v1/swap_order_info" +) + +func NewHbdmSwap(c *APIConfig) *HbdmSwap { + if c.Lever <= 0 { + c.Lever = 10 + } + + return &HbdmSwap{ + base: NewHbdm(c), + c: c, + } +} + +func (swap *HbdmSwap) GetExchangeName() string { + return HBDM_SWAP +} + +func (swap *HbdmSwap) GetFutureTicker(currencyPair CurrencyPair, contractType string) (*Ticker, error) { + tickerUrl := fmt.Sprintf("%s%s?contract_code=%s", swap.base.config.Endpoint, tickerApiPath, currencyPair.ToSymbol("-")) + responseBody, err := HttpGet5(swap.base.config.HttpClient, tickerUrl, map[string]string{}) + if err != nil { + return nil, err + } + logger.Debugf("response body: %s", string(responseBody)) + + var ( + tickResponse struct { + BaseResponse + Tick struct { + Id int64 `json:"id"` + Vol float64 `json:"vol,string"` + Count int64 `json:"count"` + Open float64 `json:"open,string"` + Close float64 `json:"close,string"` + Low float64 `json:"low,string"` + High float64 `json:"high,string"` + Amount float64 `json:"amount,string"` + Ask []float64 `json:"ask"` + Bid []float64 `json:"bid"` + Ts int64 `json:"ts"` + } `json:"tick"` + } + ) + + err = json.Unmarshal(responseBody, &tickResponse) + if err != nil { + return nil, err + } + + if tickResponse.Status != "ok" { + return nil, errors.New(string(responseBody)) + } + + return &Ticker{ + Pair: currencyPair, + Last: 0, + Buy: tickResponse.Tick.Bid[0], + Sell: tickResponse.Tick.Ask[0], + High: tickResponse.Tick.High, + Low: tickResponse.Tick.Low, + Vol: tickResponse.Tick.Vol, + Date: uint64(tickResponse.Tick.Ts), + }, nil +} + +func (swap *HbdmSwap) GetFutureDepth(currencyPair CurrencyPair, contractType string, size int) (*Depth, error) { + step := 0 + if size <= 20 { + step = 6 + } + depthUrl := fmt.Sprintf("%s%s?contract_code=%s&type=step%d", swap.base.config.Endpoint, marketApiPath, currencyPair.ToSymbol("-"), step) + responseBody, err := HttpGet5(swap.base.config.HttpClient, depthUrl, map[string]string{}) + if err != nil { + return nil, err + } + logger.Debugf("response body: %s", string(responseBody)) + + var ( + dep Depth + tickResponse struct { + BaseResponse + Tick struct { + Id int64 `json:"id"` + Ts int64 `json:"ts"` + Bids [][]interface{} `json:"bids"` + Asks [][]interface{} `json:"asks"` + } `json:"tick"` + } + ) + + err = json.Unmarshal(responseBody, &tickResponse) + if err != nil { + return nil, err + } + + if tickResponse.Status != "ok" { + return nil, errors.New(string(responseBody)) + } + + dep.Pair = currencyPair + dep.ContractType = contractType + dep.UTime = time.Unix(0, tickResponse.Ts*int64(time.Millisecond)) + + for i, item := range tickResponse.Tick.Bids { + if i >= size { + break + } + dep.BidList = append(dep.BidList, DepthRecord{ + Price: ToFloat64(item[0]), + Amount: ToFloat64(item[1]), + }) + } + + for i, item := range tickResponse.Tick.Asks { + if i >= size { + break + } + dep.AskList = append(dep.AskList, DepthRecord{ + Price: ToFloat64(item[0]), + Amount: ToFloat64(item[1]), + }) + } + + sort.Sort(sort.Reverse(dep.AskList)) + + return &dep, nil +} + +func (swap *HbdmSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureAccount, error) { + var accountInfoResponse []struct { + Symbol string `json:"symbol"` + MarginBalance float64 `json:"margin_balance"` + MarginPosition float64 `json:"margin_position"` + MarginFrozen float64 `json:"margin_frozen"` + MarginAvailable float64 `json:"margin_available"` + ProfitReal float64 `json:"profit_real"` + ProfitUnreal float64 `json:"profit_unreal"` + RiskRate float64 `json:"risk_rate"` + LiquidationPrice float64 `json:"liquidation_price"` + } + + param := url.Values{} + if len(currencyPair) > 0 { + param.Set("contract_code", currencyPair[0].ToSymbol("-")) + } + + err := swap.base.doRequest(accountApiPath, ¶m, &accountInfoResponse) + if err != nil { + return nil, err + } + + var futureAccount FutureAccount + futureAccount.FutureSubAccounts = make(map[Currency]FutureSubAccount, 4) + + for _, acc := range accountInfoResponse { + currency := NewCurrency(acc.Symbol, "") + futureAccount.FutureSubAccounts[currency] = FutureSubAccount{ + Currency: currency, + AccountRights: acc.MarginBalance, + KeepDeposit: acc.MarginPosition, + ProfitReal: acc.ProfitReal, + ProfitUnreal: acc.ProfitUnreal, + RiskRate: acc.RiskRate, + } + } + + return &futureAccount, nil +} + +func (swap *HbdmSwap) PlaceFutureOrder(currencyPair CurrencyPair, contractType, price, amount string, openType, matchPrice int, leverRate float64) (string, error) { + param := url.Values{} + param.Set("contract_code", currencyPair.ToSymbol("-")) + param.Set("client_order_id", fmt.Sprint(time.Now().UnixNano())) + param.Set("price", price) + param.Set("volume", amount) + param.Set("lever_rate", fmt.Sprintf("%.0f", leverRate)) + + direction, offset := swap.base.adaptOpenType(openType) + param.Set("direction", direction) + param.Set("offset", offset) + logger.Info(direction, offset) + + if matchPrice == 1 { + param.Set("order_price_type", "opponent") + } else { + param.Set("order_price_type", "limit") + } + + var orderResponse struct { + OrderId string `json:"order_id_str"` + ClientOrderId int64 `json:"client_order_id"` + } + + err := swap.base.doRequest(placeOrderApiPath, ¶m, &orderResponse) + if err != nil { + return "", err + } + + return orderResponse.OrderId, nil +} + +func (swap *HbdmSwap) LimitFuturesOrder(currencyPair CurrencyPair, contractType, price, amount string, openType int, opt ...LimitOrderOptionalParameter) (*FutureOrder, error) { + orderId, err := swap.PlaceFutureOrder(currencyPair, contractType, price, amount, openType, 0, swap.c.Lever) + return &FutureOrder{ + Currency: currencyPair, + OrderID2: orderId, + Amount: ToFloat64(amount), + Price: ToFloat64(price), + OType: openType, + ContractName: contractType, + }, err +} + +func (swap *HbdmSwap) MarketFuturesOrder(currencyPair CurrencyPair, contractType, amount string, openType int) (*FutureOrder, error) { + orderId, err := swap.PlaceFutureOrder(currencyPair, contractType, "", amount, openType, 1, 10) + return &FutureOrder{ + Currency: currencyPair, + OrderID2: orderId, + Amount: ToFloat64(amount), + OType: openType, + ContractName: contractType, + }, err +} + +func (swap *HbdmSwap) FutureCancelOrder(currencyPair CurrencyPair, contractType, orderId string) (bool, error) { + param := url.Values{} + param.Set("order_id", orderId) + param.Set("contract_code", currencyPair.ToSymbol("-")) + + var cancelResponse struct { + Errors []struct { + ErrMsg string `json:"err_msg"` + Successes string `json:"successes,omitempty"` + } `json:"errors"` + } + + err := swap.base.doRequest(cancelOrderApiPath, ¶m, &cancelResponse) + if err != nil { + return false, err + } + + if len(cancelResponse.Errors) > 0 { + return false, errors.New(cancelResponse.Errors[0].ErrMsg) + } + + return true, nil +} + +func (swap *HbdmSwap) GetFuturePosition(currencyPair CurrencyPair, contractType string) ([]FuturePosition, error) { + param := url.Values{} + param.Set("contract_code", currencyPair.ToSymbol("-")) + + var ( + tempPositionMap map[string]*FuturePosition + futuresPositions []FuturePosition + positionResponse []struct { + Symbol string + ContractCode string `json:"contract_code"` + Volume float64 `json:"volume"` + Available float64 `json:"available"` + CostOpen float64 `json:"cost_open"` + CostHold float64 `json:"cost_hold"` + ProfitUnreal float64 `json:"profit_unreal"` + ProfitRate float64 `json:"profit_rate"` + Profit float64 `json:"profit"` + PositionMargin float64 `json:"position_margin"` + LeverRate float64 `json:"lever_rate"` + Direction string `json:"direction"` + } + ) + + err := swap.base.doRequest(getPositionApiPath, ¶m, &positionResponse) + if err != nil { + return nil, err + } + + futuresPositions = make([]FuturePosition, 0, 2) + tempPositionMap = make(map[string]*FuturePosition, 2) + + for _, pos := range positionResponse { + if tempPositionMap[pos.ContractCode] == nil { + tempPositionMap[pos.ContractCode] = new(FuturePosition) + } + switch pos.Direction { + case "sell": + tempPositionMap[pos.ContractCode].ContractType = pos.ContractCode + tempPositionMap[pos.ContractCode].Symbol = NewCurrencyPair3(pos.ContractCode, "-") + tempPositionMap[pos.ContractCode].SellAmount = pos.Volume + tempPositionMap[pos.ContractCode].SellAvailable = pos.Available + tempPositionMap[pos.ContractCode].SellPriceAvg = pos.CostOpen + tempPositionMap[pos.ContractCode].SellPriceCost = pos.CostHold + tempPositionMap[pos.ContractCode].SellProfitReal = pos.ProfitRate + tempPositionMap[pos.ContractCode].SellProfit = pos.Profit + case "buy": + tempPositionMap[pos.ContractCode].ContractType = pos.ContractCode + tempPositionMap[pos.ContractCode].Symbol = NewCurrencyPair3(pos.ContractCode, "-") + tempPositionMap[pos.ContractCode].BuyAmount = pos.Volume + tempPositionMap[pos.ContractCode].BuyAvailable = pos.Available + tempPositionMap[pos.ContractCode].BuyPriceAvg = pos.CostOpen + tempPositionMap[pos.ContractCode].BuyPriceCost = pos.CostHold + tempPositionMap[pos.ContractCode].BuyProfitReal = pos.ProfitRate + tempPositionMap[pos.ContractCode].BuyProfit = pos.Profit + } + } + + for _, pos := range tempPositionMap { + futuresPositions = append(futuresPositions, *pos) + } + + return futuresPositions, nil +} + +func (swap *HbdmSwap) GetFutureOrders(orderIds []string, currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { + return nil, nil +} + +func (swap *HbdmSwap) GetFutureOrder(orderId string, currencyPair CurrencyPair, contractType string) (*FutureOrder, error) { + var ( + orderInfoResponse []OrderInfo + param = url.Values{} + ) + + param.Set("contract_code", currencyPair.ToSymbol("-")) + param.Set("order_id", orderId) + + err := swap.base.doRequest(getOrderInfoApiPath, ¶m, &orderInfoResponse) + if err != nil { + return nil, err + } + + if len(orderInfoResponse) == 0 { + return nil, errors.New("not found") + } + + orderInfo := orderInfoResponse[0] + + return &FutureOrder{ + Currency: currencyPair, + ClientOid: fmt.Sprint(orderInfo.ClientOrderId), + OrderID2: fmt.Sprint(orderInfo.OrderId), + Price: orderInfo.Price, + Amount: orderInfo.Volume, + AvgPrice: orderInfo.TradeAvgPrice, + DealAmount: orderInfo.TradeVolume, + OrderID: orderInfo.OrderId, + Status: swap.base.adaptOrderStatus(orderInfo.Status), + OType: swap.base.adaptOffsetDirectionToOpenType(orderInfo.Offset, orderInfo.Direction), + LeverRate: orderInfo.LeverRate, + Fee: orderInfo.Fee, + ContractName: orderInfo.ContractCode, + OrderTime: orderInfo.CreatedAt, + }, nil +} + +func (swap *HbdmSwap) GetUnfinishFutureOrders(currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { + param := url.Values{} + param.Set("contract_code", currencyPair.ToSymbol("-")) + param.Set("page_size", "50") + + var openOrderResponse struct { + Orders []OrderInfo + } + + err := swap.base.doRequest(getOpenOrdersApiPath, ¶m, &openOrderResponse) + if err != nil { + return nil, err + } + + openOrders := make([]FutureOrder, 0, len(openOrderResponse.Orders)) + for _, ord := range openOrderResponse.Orders { + openOrders = append(openOrders, FutureOrder{ + Currency: currencyPair, + ClientOid: fmt.Sprint(ord.ClientOrderId), + OrderID2: fmt.Sprint(ord.OrderId), + Price: ord.Price, + Amount: ord.Volume, + AvgPrice: ord.TradeAvgPrice, + DealAmount: ord.TradeVolume, + OrderID: ord.OrderId, + Status: swap.base.adaptOrderStatus(ord.Status), + OType: swap.base.adaptOffsetDirectionToOpenType(ord.Offset, ord.Direction), + LeverRate: ord.LeverRate, + Fee: ord.Fee, + OrderTime: ord.CreatedAt, + }) + } + + return openOrders, nil +} + +func (swap *HbdmSwap) GetContractValue(currencyPair CurrencyPair) (float64, error) { + switch currencyPair { + case BTC_USD, BTC_USDT: + return 100, nil + default: + return 0, nil + } +} + +func (swap *HbdmSwap) GetKlineRecords(contractType string, currency CurrencyPair, period, size, since int) ([]FutureKline, error) { + panic("not implement") +} + +func (swap *HbdmSwap) GetTrades(contractType string, currencyPair CurrencyPair, since int64) ([]Trade, error) { + panic("not implement") +} + +func (swap *HbdmSwap) GetFee() (float64, error) { + panic("not implement") +} + +func (swap *HbdmSwap) GetFutureIndex(currencyPair CurrencyPair) (float64, error) { + panic("not implement") +} + +func (swap *HbdmSwap) GetDeliveryTime() (int, int, int, int) { + panic("not implement") +} + +func (swap *HbdmSwap) GetFutureEstimatedPrice(currencyPair CurrencyPair) (float64, error) { + panic("not implement") +} diff --git a/huobi/Hbdm_Swap_test.go b/huobi/Hbdm_Swap_test.go new file mode 100644 index 00000000..27b899fe --- /dev/null +++ b/huobi/Hbdm_Swap_test.go @@ -0,0 +1,55 @@ +package huobi + +import ( + "github.com/nntaoli-project/goex" + "net/http" + "testing" +) + +var swap *HbdmSwap + +func init() { + swap = NewHbdmSwap(&goex.APIConfig{ + HttpClient: http.DefaultClient, + Endpoint: "https://api.btcgateway.pro", + ApiKey: "", + ApiSecretKey: "", + Lever: 5, + }) +} + +func TestHbdmSwap_GetFutureTicker(t *testing.T) { + t.Log(swap.GetFutureTicker(goex.BTC_USD, goex.SWAP_CONTRACT)) +} + +func TestHbdmSwap_GetFutureDepth(t *testing.T) { + dep, err := swap.GetFutureDepth(goex.BTC_USD, goex.SWAP_CONTRACT, 5) + t.Log(err) + t.Log(dep.AskList) + t.Log(dep.BidList) +} + +func TestHbdmSwap_GetFutureUserinfo(t *testing.T) { + t.Log(swap.GetFutureUserinfo(goex.NewCurrencyPair2("DOT_USD"))) +} + +func TestHbdmSwap_GetFuturePosition(t *testing.T) { + t.Log(swap.GetFuturePosition(goex.NewCurrencyPair2("DOT_USD"), goex.SWAP_CONTRACT)) +} + +func TestHbdmSwap_LimitFuturesOrder(t *testing.T) { + //784115347040780289 + t.Log(swap.LimitFuturesOrder(goex.NewCurrencyPair2("DOT_USD"), goex.SWAP_CONTRACT, "6.5", "1", goex.OPEN_SELL)) +} + +func TestHbdmSwap_FutureCancelOrder(t *testing.T) { + t.Log(swap.FutureCancelOrder(goex.NewCurrencyPair2("DOT_USD"), goex.SWAP_CONTRACT, "784118017750929408")) +} + +func TestHbdmSwap_GetUnfinishFutureOrders(t *testing.T) { + t.Log(swap.GetUnfinishFutureOrders(goex.NewCurrencyPair2("DOT_USD"), goex.SWAP_CONTRACT)) +} + +func TestHbdmSwap_GetFutureOrder(t *testing.T) { + t.Log(swap.GetFutureOrder("784118017750929408", goex.NewCurrencyPair2("DOT_USD"), goex.SWAP_CONTRACT)) +} From 0cbd8242b8ae77d582c623392cb837f899d29613 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Sat, 5 Dec 2020 20:19:15 +0800 Subject: [PATCH 13/15] [binance] the depth ask need reverse sort --- binance/Binance.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/binance/Binance.go b/binance/Binance.go index c7dbf991..9f7e1e71 100644 --- a/binance/Binance.go +++ b/binance/Binance.go @@ -6,6 +6,7 @@ import ( . "github.com/nntaoli-project/goex" "net/http" "net/url" + "sort" "strconv" "strings" "time" @@ -305,6 +306,8 @@ func (bn *Binance) GetDepth(size int, currencyPair CurrencyPair) (*Depth, error) } } + sort.Sort(sort.Reverse(depth.AskList)) + return depth, nil } @@ -492,7 +495,6 @@ func (bn *Binance) GetOneOrder(orderId string, currencyPair CurrencyPair) (*Orde ord.Amount = ToFloat64(respmap["origQty"].(string)) ord.Price = ToFloat64(respmap["price"].(string)) ord.DealAmount = ToFloat64(respmap["executedQty"]) - ord.AvgPrice = ord.Price // response no avg price , fill price ord.OrderTime = ToInt(respmap["time"]) cummulativeQuoteQty := ToFloat64(respmap["cummulativeQuoteQty"]) From 5f9c951488cb0e75bec3e469daeab49317693498 Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Mon, 7 Dec 2020 15:40:33 +0800 Subject: [PATCH 14/15] [binance swap] delete the method annotation --- binance/BinanceSwap.go | 65 ------------------------------------------ 1 file changed, 65 deletions(-) diff --git a/binance/BinanceSwap.go b/binance/BinanceSwap.go index 181168d6..59687c06 100644 --- a/binance/BinanceSwap.go +++ b/binance/BinanceSwap.go @@ -66,18 +66,10 @@ func (bs *BinanceSwap) setTimeOffset() error { return nil } -/** - *获取交割预估价 - */ func (bs *BinanceSwap) GetFutureEstimatedPrice(currencyPair CurrencyPair) (float64, error) { panic("not supported.") } -/** - * 期货行情 - * @param currency_pair btc_usd:比特币 ltc_usd :莱特币 - * @param contractType 合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度 - */ func (bs *BinanceSwap) GetFutureTicker(currency CurrencyPair, contractType string) (*Ticker, error) { currency2 := bs.adaptCurrencyPair(currency) tickerPriceUri := bs.apiV1 + "ticker/price?symbol=" + currency2.ToSymbol("") @@ -113,14 +105,6 @@ func (bs *BinanceSwap) GetFutureTicker(currency CurrencyPair, contractType strin return &ticker, nil } -/** - * 期货深度 - * @param currencyPair btc_usd:比特币 ltc_usd :莱特币 - * @param contractType 合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度 - * @param size 获取深度档数 - * @return - */ - func (bs *BinanceSwap) GetFutureDepth(currency CurrencyPair, contractType string, size int) (*Depth, error) { if size <= 5 { size = 5 @@ -219,10 +203,6 @@ func (bs *BinanceSwap) GetTrades(contractType string, currencyPair CurrencyPair, } -/** - * 期货指数 - * @param currencyPair btc_usd:比特币 ltc_usd :莱特币 - */ func (bs *BinanceSwap) GetFutureIndex(currencyPair CurrencyPair) (float64, error) { respmap, err := HttpGet(bs.httpClient, bs.apiV1+"premiumIndex?symbol="+bs.adaptCurrencyPair(currencyPair).ToSymbol("")) if err != nil { @@ -264,7 +244,6 @@ func (bs *BinanceSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureA return acc, nil } -// transferType - 1: 现货账户向合约账户划转 2: 合约账户向现货账户划转 func (bs *BinanceSwap) Transfer(currency Currency, transferType int, amount float64) (int64, error) { params := url.Values{} @@ -294,16 +273,6 @@ func (bs *BinanceSwap) PlaceFutureOrder(currencyPair CurrencyPair, contractType, return fOrder.OrderID2, err } -/** - * @deprecated - * 期货下单 - * @param currencyPair btc_usd:比特币 ltc_usd :莱特币 - * @param contractType 合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度 - * @param price 价格 - * @param amount 委托数量 - * @param openType 1:开多 2:开空 3:平多 4:平空 - * @param matchPrice 是否为对手价 0:不是 1:是 ,当取值为1时,price无效 - */ func (bs *BinanceSwap) PlaceFutureOrder2(currencyPair CurrencyPair, contractType, price, amount string, openType, matchPrice int, leverRate float64) (*FutureOrder, error) { fOrder := &FutureOrder{ Currency: currencyPair, @@ -366,13 +335,6 @@ func (bs *BinanceSwap) MarketFuturesOrder(currencyPair CurrencyPair, contractTyp return bs.PlaceFutureOrder2(currencyPair, contractType, "0", amount, openType, 1, 10) } -/** - * 取消订单 - * @param symbol btc_usd:比特币 ltc_usd :莱特币 - * @param contractType 合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度 - * @param orderId 订单ID - - */ func (bs *BinanceSwap) FutureCancelOrder(currencyPair CurrencyPair, contractType, orderId string) (bool, error) { currencyPair = bs.adaptCurrencyPair(currencyPair) path := bs.apiV1 + ORDER_URI @@ -463,12 +425,6 @@ func (bs *BinanceSwap) FutureCancelOrders(currencyPair CurrencyPair, contractTyp return true, nil } -/** - * 用户持仓查询 - * @param symbol btc_usd:比特币 ltc_usd :莱特币 - * @param contractType 合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度 - * @return - */ func (bs *BinanceSwap) GetFuturePosition(currencyPair CurrencyPair, contractType string) ([]FuturePosition, error) { currencyPair1 := bs.adaptCurrencyPair(currencyPair) @@ -511,9 +467,6 @@ func (bs *BinanceSwap) GetFuturePosition(currencyPair CurrencyPair, contractType return positions, nil } -/** - *获取订单信息 - */ func (bs *BinanceSwap) GetFutureOrders(orderIds []string, currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { if len(orderIds) == 0 { return nil, errors.New("orderIds is empty") @@ -556,9 +509,6 @@ func (bs *BinanceSwap) GetFutureOrders(orderIds []string, currencyPair CurrencyP } -/** - *获取单个订单信息 - */ func (bs *BinanceSwap) GetFutureOrder(orderId string, currencyPair CurrencyPair, contractType string) (*FutureOrder, error) { currencyPair1 := bs.adaptCurrencyPair(currencyPair) @@ -652,9 +602,6 @@ func (bs *BinanceSwap) parseOrderStatus(sts string) TradeStatus { return orderStatus } -/** - *获取未完成订单信息 - */ func (bs *BinanceSwap) GetUnfinishFutureOrders(currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { currencyPair1 := bs.adaptCurrencyPair(currencyPair) @@ -685,30 +632,18 @@ func (bs *BinanceSwap) GetUnfinishFutureOrders(currencyPair CurrencyPair, contra return orders, nil } -/** - *获取交易费 - */ func (bs *BinanceSwap) GetFee() (float64, error) { panic("not supported.") } -/** - *获取每张合约价值 - */ func (bs *BinanceSwap) GetContractValue(currencyPair CurrencyPair) (float64, error) { panic("not supported.") } -/** - *获取交割时间 星期(0,1,2,3,4,5,6),小时,分,秒 - */ func (bs *BinanceSwap) GetDeliveryTime() (int, int, int, int) { panic("not supported.") } -/** - * 获取K线数据 - */ func (bs *BinanceSwap) GetKlineRecords(contractType string, currency CurrencyPair, period, size, since int) ([]FutureKline, error) { currency2 := bs.adaptCurrencyPair(currency) params := url.Values{} From 71f0e1da7773a501df44cc7cf4030945b4636bdd Mon Sep 17 00:00:00 2001 From: nntaoli <2767415655@qq.com> Date: Mon, 7 Dec 2020 16:08:11 +0800 Subject: [PATCH 15/15] [binance swap] support usd and usdt contract --- binance/BinanceSwap.go | 126 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 124 insertions(+), 2 deletions(-) diff --git a/binance/BinanceSwap.go b/binance/BinanceSwap.go index 59687c06..ef590498 100644 --- a/binance/BinanceSwap.go +++ b/binance/BinanceSwap.go @@ -5,6 +5,7 @@ import ( "fmt" "net/url" "strconv" + "strings" "sync" "time" @@ -17,12 +18,14 @@ const ( type BinanceSwap struct { Binance + f *BinanceFutures } func NewBinanceSwap(config *APIConfig) *BinanceSwap { if config.Endpoint == "" { config.Endpoint = baseUrl } + bs := &BinanceSwap{ Binance: Binance{ baseUrl: config.Endpoint, @@ -31,6 +34,13 @@ func NewBinanceSwap(config *APIConfig) *BinanceSwap { secretKey: config.ApiSecretKey, httpClient: config.HttpClient, }, + f: NewBinanceFutures(&APIConfig{ + Endpoint: strings.ReplaceAll(config.Endpoint, "fapi", "dapi"), + HttpClient: config.HttpClient, + ApiKey: config.ApiKey, + ApiSecretKey: config.ApiSecretKey, + Lever: config.Lever, + }), } bs.setTimeOffset() return bs @@ -71,6 +81,14 @@ func (bs *BinanceSwap) GetFutureEstimatedPrice(currencyPair CurrencyPair) (float } func (bs *BinanceSwap) GetFutureTicker(currency CurrencyPair, contractType string) (*Ticker, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetFutureTicker(currency.AdaptUsdtToUsd(), SWAP_CONTRACT) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currency2 := bs.adaptCurrencyPair(currency) tickerPriceUri := bs.apiV1 + "ticker/price?symbol=" + currency2.ToSymbol("") tickerBookUri := bs.apiV1 + "ticker/bookTicker?symbol=" + currency2.ToSymbol("") @@ -106,6 +124,14 @@ func (bs *BinanceSwap) GetFutureTicker(currency CurrencyPair, contractType strin } func (bs *BinanceSwap) GetFutureDepth(currency CurrencyPair, contractType string, size int) (*Depth, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetFutureDepth(currency.AdaptUsdtToUsd(), SWAP_CONTRACT, size) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + if size <= 5 { size = 5 } else if size <= 10 { @@ -169,6 +195,14 @@ func (bs *BinanceSwap) GetFutureDepth(currency CurrencyPair, contractType string } func (bs *BinanceSwap) GetTrades(contractType string, currencyPair CurrencyPair, since int64) ([]Trade, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetTrades(SWAP_CONTRACT, currencyPair.AdaptUsdtToUsd(), since) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + param := url.Values{} param.Set("symbol", bs.adaptCurrencyPair(currencyPair).ToSymbol("")) param.Set("limit", "500") @@ -216,6 +250,11 @@ func (bs *BinanceSwap) GetFutureIndex(currencyPair CurrencyPair) (float64, error *全仓账户 */ func (bs *BinanceSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureAccount, error) { + acc, err := bs.f.GetFutureUserinfo(currencyPair...) + if err != nil { + return nil, err + } + params := url.Values{} bs.buildParamsSigned(¶ms) path := bs.apiV1 + ACCOUNT_URI + params.Encode() @@ -223,11 +262,10 @@ func (bs *BinanceSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureA if err != nil { return nil, err } + if _, isok := respmap["code"]; isok == true { return nil, errors.New(respmap["msg"].(string)) } - acc := &FutureAccount{} - acc.FutureSubAccounts = make(map[Currency]FutureSubAccount) balances := respmap["assets"].([]interface{}) for _, v := range balances { @@ -241,9 +279,11 @@ func (bs *BinanceSwap) GetFutureUserinfo(currencyPair ...CurrencyPair) (*FutureA RiskRate: ToFloat64(vv["unrealizedProfit"]), } } + return acc, nil } +//@deprecated please call the Wallet api func (bs *BinanceSwap) Transfer(currency Currency, transferType int, amount float64) (int64, error) { params := url.Values{} @@ -274,6 +314,24 @@ func (bs *BinanceSwap) PlaceFutureOrder(currencyPair CurrencyPair, contractType, } func (bs *BinanceSwap) PlaceFutureOrder2(currencyPair CurrencyPair, contractType, price, amount string, openType, matchPrice int, leverRate float64) (*FutureOrder, error) { + if contractType == SWAP_CONTRACT { + orderId, err := bs.f.PlaceFutureOrder(currencyPair.AdaptUsdtToUsd(), contractType, price, amount, openType, matchPrice, leverRate) + return &FutureOrder{ + OrderID2: orderId, + Price: ToFloat64(price), + Amount: ToFloat64(amount), + Status: ORDER_UNFINISH, + Currency: currencyPair, + OType: openType, + LeverRate: leverRate, + ContractName: contractType, + }, err + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + fOrder := &FutureOrder{ Currency: currencyPair, ClientOid: GenerateOrderClientId(32), @@ -336,6 +394,14 @@ func (bs *BinanceSwap) MarketFuturesOrder(currencyPair CurrencyPair, contractTyp } func (bs *BinanceSwap) FutureCancelOrder(currencyPair CurrencyPair, contractType, orderId string) (bool, error) { + if contractType == SWAP_CONTRACT { + return bs.f.FutureCancelOrder(currencyPair.AdaptUsdtToUsd(), contractType, orderId) + } + + if contractType != SWAP_USDT_CONTRACT { + return false, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currencyPair = bs.adaptCurrencyPair(currencyPair) path := bs.apiV1 + ORDER_URI params := url.Values{} @@ -365,6 +431,18 @@ func (bs *BinanceSwap) FutureCancelOrder(currencyPair CurrencyPair, contractType } func (bs *BinanceSwap) FutureCancelAllOrders(currencyPair CurrencyPair, contractType string) (bool, error) { + if contractType == SWAP_CONTRACT { + return false, errors.New("not support") + } + + if contractType == SWAP_CONTRACT { + return false, errors.New("not support") + } + + if contractType != SWAP_USDT_CONTRACT { + return false, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currencyPair = bs.adaptCurrencyPair(currencyPair) path := bs.apiV1 + "allOpenOrders" params := url.Values{} @@ -392,6 +470,10 @@ func (bs *BinanceSwap) FutureCancelAllOrders(currencyPair CurrencyPair, contract } func (bs *BinanceSwap) FutureCancelOrders(currencyPair CurrencyPair, contractType string, orderIdList []string) (bool, error) { + if contractType != SWAP_USDT_CONTRACT { + return false, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currencyPair = bs.adaptCurrencyPair(currencyPair) path := bs.apiV1 + "batchOrders" @@ -426,6 +508,14 @@ func (bs *BinanceSwap) FutureCancelOrders(currencyPair CurrencyPair, contractTyp } func (bs *BinanceSwap) GetFuturePosition(currencyPair CurrencyPair, contractType string) ([]FuturePosition, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetFuturePosition(currencyPair.AdaptUsdtToUsd(), contractType) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currencyPair1 := bs.adaptCurrencyPair(currencyPair) params := url.Values{} @@ -468,6 +558,14 @@ func (bs *BinanceSwap) GetFuturePosition(currencyPair CurrencyPair, contractType } func (bs *BinanceSwap) GetFutureOrders(orderIds []string, currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { + if contractType == SWAP_CONTRACT { + return nil, errors.New("not support") + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + if len(orderIds) == 0 { return nil, errors.New("orderIds is empty") } @@ -510,6 +608,14 @@ func (bs *BinanceSwap) GetFutureOrders(orderIds []string, currencyPair CurrencyP } func (bs *BinanceSwap) GetFutureOrder(orderId string, currencyPair CurrencyPair, contractType string) (*FutureOrder, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetFutureOrder(orderId, currencyPair.AdaptUsdtToUsd(), contractType) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currencyPair1 := bs.adaptCurrencyPair(currencyPair) params := url.Values{} @@ -603,6 +709,14 @@ func (bs *BinanceSwap) parseOrderStatus(sts string) TradeStatus { } func (bs *BinanceSwap) GetUnfinishFutureOrders(currencyPair CurrencyPair, contractType string) ([]FutureOrder, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetUnfinishFutureOrders(currencyPair.AdaptUsdtToUsd(), contractType) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currencyPair1 := bs.adaptCurrencyPair(currencyPair) params := url.Values{} @@ -645,6 +759,14 @@ func (bs *BinanceSwap) GetDeliveryTime() (int, int, int, int) { } func (bs *BinanceSwap) GetKlineRecords(contractType string, currency CurrencyPair, period, size, since int) ([]FutureKline, error) { + if contractType == SWAP_CONTRACT { + return bs.f.GetKlineRecords(contractType, currency.AdaptUsdtToUsd(), period, since, since) + } + + if contractType != SWAP_USDT_CONTRACT { + return nil, errors.New("contract is error,please incoming SWAP_CONTRACT or SWAP_USDT_CONTRACT") + } + currency2 := bs.adaptCurrencyPair(currency) params := url.Values{} params.Set("symbol", currency2.ToSymbol(""))