From 230ac8a7257d4e4322807be2a65a4c569a67c3da Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Fri, 20 Aug 2021 16:24:48 +0800 Subject: [PATCH 1/8] change node modul to node-proxy modul --- api/handler/proxy.go | 10 - api/middleware/middleware.go | 28 - api/region/cloudAuth.go | 102 --- api/region/cluster.go | 28 +- api/region/monitor.go | 164 ---- api/region/node.go | 369 --------- api/region/notification.go | 77 -- api/region/region.go | 4 - api/region/region_test.go | 102 --- cmd/{node => node-proxy}/initlogger.go | 0 cmd/{node => node-proxy}/node.go | 5 +- cmd/node-proxy/option/conf.go | 142 ++++ cmd/{node => node-proxy}/server/server.go | 66 +- .../server/service_others.go | 4 +- .../server/service_windows.go | 2 +- cmd/{node => node-proxy}/swagger.json | 0 cmd/node/option/conf.go | 260 ------- cmd/node/server/client.go | 189 ----- discover.v2/k8s_discover.go | 2 +- discover.v2/k8s_discover_test.go | 2 +- go.mod | 20 +- go.sum | 104 ++- grctl/cmd/ansible.go | 74 -- grctl/cmd/build.go | 58 +- grctl/cmd/cluster.go | 238 +----- grctl/cmd/cmd.go | 20 - grctl/cmd/config.go | 2 +- grctl/cmd/envoy.go | 2 +- grctl/cmd/license.go | 86 -- grctl/cmd/node.go | 736 ------------------ grctl/cmd/utils.go | 27 + .../docker/{node => node-proxy}/.dockerignore | 0 .../docker/{node => node-proxy}/Dockerfile | 0 hack/contrib/docker/node-proxy/entrypoint.sh | 8 + hack/contrib/docker/node/entrypoint.sh | 8 - node/api/controller/ConfController.go | 52 -- node/api/controller/app_controller.go | 53 -- node/api/controller/cluster_controller.go | 484 ------------ node/api/controller/comman.go | 27 +- node/api/controller/discoverController.go | 48 +- node/api/controller/node_controller.go | 576 -------------- node/api/manager.go | 74 +- node/api/model/README.md | 90 --- node/api/model/model.go | 532 ------------- node/api/model/resource.go | 73 -- node/api/model/task.go | 227 ------ node/api/router/discover_router.go | 43 +- node/api/router/router.go | 46 +- node/core/config/datacenter.go | 238 ------ node/core/config/taskconfig.go | 214 ----- node/core/config/taskconfig_test.go | 54 -- node/core/service/app_service.go | 97 --- node/core/service/discover_server.go | 400 +--------- node/core/service/node_service.go | 466 ----------- node/core/service/prometheus_service.go | 62 -- node/core/serviceReg.go | 65 -- node/core/store/client.go | 211 ----- node/core/worker/manager.go | 82 -- node/core/worker/taskgroupworker.go | 37 - node/core/worker/taskworker.go | 37 - node/initiate/host.go | 2 +- node/kubecache/kube_cache.go | 501 ------------ node/masterserver/README.md | 11 - node/masterserver/node/cluster.go | 306 -------- node/masterserver/node/cluster_test.go | 48 -- node/masterserver/server.go | 76 -- node/monitormessage/udpserver.go | 91 +-- node/nodem/client/cluster_client.go | 247 ------ node/nodem/client/cluster_client_test.go | 156 ---- node/nodem/client/node.go | 543 ------------- node/nodem/client/node_test.go | 61 -- node/nodem/controller/controller.go | 38 - .../controller/controller_service_darwin.go | 66 -- .../controller/controller_service_windows.go | 143 ---- .../controller/controller_systemd_linux.go | 297 ------- node/nodem/controller/manager.go | 40 - node/nodem/controller/manager_api.go | 62 -- node/nodem/controller/manager_service.go | 556 ------------- node/nodem/controller/manager_service_test.go | 89 --- node/nodem/envoy/server_v2.go | 2 +- node/nodem/gc/image_gc_manager.go | 429 ---------- node/nodem/gc/image_gc_manager_test.go | 84 -- node/nodem/healthy/health_manager.go | 323 -------- node/nodem/healthy/health_manager_test.go | 144 ---- node/nodem/healthy/probe/http_probe.go | 106 --- node/nodem/healthy/probe/http_probe_test.go | 45 -- node/nodem/healthy/probe/probe.go | 78 -- node/nodem/healthy/probe/shell_probe.go | 69 -- node/nodem/healthy/probe/tcp_probe.go | 57 -- node/nodem/info/info_linux.go | 79 -- node/nodem/info/info_other.go | 40 - node/nodem/info/info_test.go | 25 - node/nodem/logger/manage.go | 2 +- node/nodem/logger/manage_test.go | 2 +- node/nodem/monitor/monitor_manager.go | 17 +- node/nodem/node_manager.go | 322 +------- node/nodem/service/configs.go | 168 ---- node/nodem/service/service.go | 101 --- node/statsd/exporter/exporter.go | 41 +- node/statsd/statsd_export.go | 2 +- node/test/kbue_cache_test.go | 46 -- release.sh | 2 +- test/shell/echo1.sh | 1 - test/shell/echo2.sh | 1 - util/k8s/k8s.go | 3 +- util/prober/manager.go | 429 ---------- util/prober/manager_test.go | 58 -- util/prober/probes/http.go | 133 ---- util/prober/probes/probe.go | 72 -- util/prober/probes/tcp.go | 70 -- util/prober/types/v1/types.go | 111 --- worker/appm/conversion/version.go | 2 +- worker/monitor/exporter.go | 5 +- 113 files changed, 430 insertions(+), 13199 deletions(-) delete mode 100644 api/region/cloudAuth.go delete mode 100644 api/region/monitor.go delete mode 100644 api/region/node.go delete mode 100644 api/region/notification.go delete mode 100644 api/region/region_test.go rename cmd/{node => node-proxy}/initlogger.go (100%) rename cmd/{node => node-proxy}/node.go (91%) create mode 100644 cmd/node-proxy/option/conf.go rename cmd/{node => node-proxy}/server/server.go (66%) rename cmd/{node => node-proxy}/server/service_others.go (91%) rename cmd/{node => node-proxy}/server/service_windows.go (98%) rename cmd/{node => node-proxy}/swagger.json (100%) delete mode 100644 cmd/node/option/conf.go delete mode 100644 cmd/node/server/client.go delete mode 100644 grctl/cmd/ansible.go delete mode 100644 grctl/cmd/license.go delete mode 100644 grctl/cmd/node.go rename hack/contrib/docker/{node => node-proxy}/.dockerignore (100%) rename hack/contrib/docker/{node => node-proxy}/Dockerfile (100%) create mode 100755 hack/contrib/docker/node-proxy/entrypoint.sh delete mode 100755 hack/contrib/docker/node/entrypoint.sh delete mode 100644 node/api/controller/ConfController.go delete mode 100644 node/api/controller/app_controller.go delete mode 100644 node/api/controller/cluster_controller.go delete mode 100644 node/api/controller/node_controller.go delete mode 100644 node/api/model/README.md delete mode 100644 node/api/model/model.go delete mode 100644 node/api/model/resource.go delete mode 100644 node/api/model/task.go delete mode 100644 node/core/config/datacenter.go delete mode 100644 node/core/config/taskconfig.go delete mode 100644 node/core/config/taskconfig_test.go delete mode 100644 node/core/service/app_service.go delete mode 100644 node/core/service/node_service.go delete mode 100644 node/core/service/prometheus_service.go delete mode 100644 node/core/serviceReg.go delete mode 100644 node/core/store/client.go delete mode 100644 node/core/worker/manager.go delete mode 100644 node/core/worker/taskgroupworker.go delete mode 100644 node/core/worker/taskworker.go delete mode 100644 node/kubecache/kube_cache.go delete mode 100644 node/masterserver/README.md delete mode 100644 node/masterserver/node/cluster.go delete mode 100644 node/masterserver/node/cluster_test.go delete mode 100644 node/masterserver/server.go delete mode 100644 node/nodem/client/cluster_client.go delete mode 100644 node/nodem/client/cluster_client_test.go delete mode 100644 node/nodem/client/node.go delete mode 100644 node/nodem/client/node_test.go delete mode 100644 node/nodem/controller/controller.go delete mode 100644 node/nodem/controller/controller_service_darwin.go delete mode 100644 node/nodem/controller/controller_service_windows.go delete mode 100644 node/nodem/controller/controller_systemd_linux.go delete mode 100644 node/nodem/controller/manager.go delete mode 100644 node/nodem/controller/manager_api.go delete mode 100644 node/nodem/controller/manager_service.go delete mode 100644 node/nodem/controller/manager_service_test.go delete mode 100644 node/nodem/gc/image_gc_manager.go delete mode 100644 node/nodem/gc/image_gc_manager_test.go delete mode 100644 node/nodem/healthy/health_manager.go delete mode 100644 node/nodem/healthy/health_manager_test.go delete mode 100644 node/nodem/healthy/probe/http_probe.go delete mode 100644 node/nodem/healthy/probe/http_probe_test.go delete mode 100644 node/nodem/healthy/probe/probe.go delete mode 100644 node/nodem/healthy/probe/shell_probe.go delete mode 100644 node/nodem/healthy/probe/tcp_probe.go delete mode 100644 node/nodem/info/info_linux.go delete mode 100644 node/nodem/info/info_other.go delete mode 100644 node/nodem/info/info_test.go delete mode 100644 node/nodem/service/configs.go delete mode 100644 node/nodem/service/service.go delete mode 100644 node/test/kbue_cache_test.go delete mode 100644 test/shell/echo1.sh delete mode 100644 test/shell/echo2.sh delete mode 100644 util/prober/manager.go delete mode 100644 util/prober/manager_test.go delete mode 100644 util/prober/probes/http.go delete mode 100644 util/prober/probes/probe.go delete mode 100644 util/prober/probes/tcp.go delete mode 100644 util/prober/types/v1/types.go diff --git a/api/handler/proxy.go b/api/handler/proxy.go index 68ac6193e..26c22be96 100644 --- a/api/handler/proxy.go +++ b/api/handler/proxy.go @@ -24,7 +24,6 @@ import ( "github.com/goodrain/rainbond/cmd/api/option" ) -var nodeProxy proxy.Proxy var builderProxy proxy.Proxy var prometheusProxy proxy.Proxy var monitorProxy proxy.Proxy @@ -32,10 +31,6 @@ var kubernetesDashboard proxy.Proxy //InitProxy 初始化 func InitProxy(conf option.Config) { - if nodeProxy == nil { - nodeProxy = proxy.CreateProxy("acp_node", "http", conf.NodeAPI) - discover.GetEndpointDiscover().AddProject("acp_node", nodeProxy) - } if builderProxy == nil { builderProxy = proxy.CreateProxy("builder", "http", conf.BuilderAPI) } @@ -51,11 +46,6 @@ func InitProxy(conf option.Config) { } } -//GetNodeProxy GetNodeProxy -func GetNodeProxy() proxy.Proxy { - return nodeProxy -} - //GetBuilderProxy GetNodeProxy func GetBuilderProxy() proxy.Proxy { return builderProxy diff --git a/api/middleware/middleware.go b/api/middleware/middleware.go index 3cdcdd0ba..d3503ab07 100644 --- a/api/middleware/middleware.go +++ b/api/middleware/middleware.go @@ -162,38 +162,10 @@ func SetLog(next http.Handler) http.Handler { //Proxy 反向代理中间件 func Proxy(next http.Handler) http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { - if strings.HasPrefix(r.RequestURI, "/v2/nodes") { - handler.GetNodeProxy().Proxy(w, r) - return - } - if strings.HasPrefix(r.RequestURI, "/v2/cluster/service-health") { - handler.GetNodeProxy().Proxy(w, r) - return - } if strings.HasPrefix(r.RequestURI, "/v2/builder") { handler.GetBuilderProxy().Proxy(w, r) return } - if strings.HasPrefix(r.RequestURI, "/v2/tasks") { - handler.GetNodeProxy().Proxy(w, r) - return - } - if strings.HasPrefix(r.RequestURI, "/v2/tasktemps") { - handler.GetNodeProxy().Proxy(w, r) - return - } - if strings.HasPrefix(r.RequestURI, "/v2/taskgroups") { - handler.GetNodeProxy().Proxy(w, r) - return - } - if strings.HasPrefix(r.RequestURI, "/v2/configs") { - handler.GetNodeProxy().Proxy(w, r) - return - } - if strings.HasPrefix(r.RequestURI, "/v2/rules") { - handler.GetMonitorProxy().Proxy(w, r) - return - } if strings.HasPrefix(r.RequestURI, "/kubernetes/dashboard") { proxy := handler.GetKubernetesDashboardProxy() r.URL.Path = strings.Replace(r.URL.Path, "/kubernetes/dashboard", "", 1) diff --git a/api/region/cloudAuth.go b/api/region/cloudAuth.go deleted file mode 100644 index 4838db722..000000000 --- a/api/region/cloudAuth.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package region - -// //DefineCloudAuth DefineCloudAuth -// func (t *tenant) DefineCloudAuth(gt *api_model.GetUserToken) DefineCloudAuthInterface { -// return &DefineCloudAuth{ -// GT: gt, -// } -// } - -// //DefineCloudAuth DefineCloudAuth -// type DefineCloudAuth struct { -// GT *api_model.GetUserToken -// } - -// //DefineCloudAuthInterface DefineCloudAuthInterface -// type DefineCloudAuthInterface interface { -// GetToken() ([]byte, error) -// PostToken() ([]byte, error) -// PutToken() error -// } - -// //GetToken GetToken -// func (d *DefineCloudAuth) GetToken() ([]byte, error) { -// resp, code, err := request( -// fmt.Sprintf("/cloud/auth/%s", d.GT.Body.EID), -// "GET", -// nil, -// ) -// if err != nil { -// return nil, util.CreateAPIHandleError(code, err) -// } -// if code > 400 { -// if code == 404 { -// return nil, util.CreateAPIHandleError(code, fmt.Errorf("eid %s is not exist", d.GT.Body.EID)) -// } -// return nil, util.CreateAPIHandleError(code, fmt.Errorf("get eid infos %s failed", d.GT.Body.EID)) -// } -// //valJ, err := simplejson.NewJson(resp) -// return resp, nil -// } - -// //PostToken PostToken -// func (d *DefineCloudAuth) PostToken() ([]byte, error) { -// data, err := ffjson.Marshal(d.GT.Body) -// if err != nil { -// return nil, err -// } -// resp, code, err := request( -// "/cloud/auth", -// "POST", -// data, -// ) -// if err != nil { -// logrus.Errorf("create auth token error, %v", err) -// return nil, util.CreateAPIHandleError(code, err) -// } -// if code > 400 { -// logrus.Errorf("create auth token error") -// return nil, util.CreateAPIHandleError(code, fmt.Errorf("cretae auth token failed")) -// } -// return resp, nil -// } - -// //PutToken PutToken -// func (d *DefineCloudAuth) PutToken() error { -// data, err := ffjson.Marshal(d.GT.Body) -// if err != nil { -// return err -// } -// _, code, err := request( -// fmt.Sprintf("/cloud/auth/%s", d.GT.Body.EID), -// "PUT", -// data, -// ) -// if err != nil { -// logrus.Errorf("create auth token error, %v", err) -// return util.CreateAPIHandleError(code, err) -// } -// if code > 400 { -// logrus.Errorf("create auth token error") -// return util.CreateAPIHandleError(code, fmt.Errorf("cretae auth token failed")) -// } -// return nil -// } diff --git a/api/region/cluster.go b/api/region/cluster.go index c4e185c26..3894776cc 100644 --- a/api/region/cluster.go +++ b/api/region/cluster.go @@ -20,13 +20,33 @@ package region import ( "github.com/goodrain/rainbond/api/util" - "github.com/goodrain/rainbond/node/api/model" utilhttp "github.com/goodrain/rainbond/util/http" ) +type ClusterResource struct { + AllNode int `json:"all_node"` + NotReadyNode int `json:"notready_node"` + ComputeNode int `json:"compute_node"` + Tenant int `json:"tenant"` + CapCPU int `json:"cap_cpu"` //可分配CPU总额 + CapMem int `json:"cap_mem"` //可分配Mem总额 + HealthCapCPU int `json:"health_cap_cpu"` //健康可分配CPU + HealthCapMem int `json:"health_cap_mem"` //健康可分配Mem + UnhealthCapCPU int `json:"unhealth_cap_cpu"` //不健康可分配CPU + UnhealthCapMem int `json:"unhealth_cap_mem"` //不健康可分配Mem + ReqCPU float32 `json:"req_cpu"` //已使用CPU总额 + ReqMem int `json:"req_mem"` //已使用Mem总额 + HealthReqCPU float32 `json:"health_req_cpu"` //健康已使用CPU + HealthReqMem int `json:"health_req_mem"` //健康已使用Mem + UnhealthReqCPU float32 `json:"unhealth_req_cpu"` //不健康已使用CPU + UnhealthReqMem int `json:"unhealth_req_mem"` //不健康已使用Mem + CapDisk uint64 `json:"cap_disk"` + ReqDisk uint64 `json:"req_disk"` +} + //ClusterInterface cluster api type ClusterInterface interface { - GetClusterInfo() (*model.ClusterResource, *util.APIHandleError) + GetClusterInfo() (*ClusterResource, *util.APIHandleError) GetClusterHealth() (*utilhttp.ResponseBody, *util.APIHandleError) } @@ -39,8 +59,8 @@ type cluster struct { prefix string } -func (c *cluster) GetClusterInfo() (*model.ClusterResource, *util.APIHandleError) { - var cr model.ClusterResource +func (c *cluster) GetClusterInfo() (*ClusterResource, *util.APIHandleError) { + var cr ClusterResource var decode utilhttp.ResponseBody decode.Bean = &cr code, err := c.DoRequest(c.prefix, "GET", nil, &decode) diff --git a/api/region/monitor.go b/api/region/monitor.go deleted file mode 100644 index cd27a42b4..000000000 --- a/api/region/monitor.go +++ /dev/null @@ -1,164 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package region - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "github.com/goodrain/rainbond/api/util" - "github.com/goodrain/rainbond/node/api/model" - utilhttp "github.com/goodrain/rainbond/util/http" - "github.com/sirupsen/logrus" - "gopkg.in/yaml.v2" - "io/ioutil" - "os" -) - -// MonitorInterface cluster api -type MonitorInterface interface { - GetRule(name string) (*model.AlertingNameConfig, *util.APIHandleError) - GetAllRule() (*model.AlertingRulesConfig, *util.APIHandleError) - DelRule(name string) (*utilhttp.ResponseBody, *util.APIHandleError) - AddRule(path string) (*utilhttp.ResponseBody, *util.APIHandleError) - RegRule(ruleName string, path string) (*utilhttp.ResponseBody, *util.APIHandleError) -} - -func (r *regionImpl) Monitor() MonitorInterface { - return &monitor{prefix: "/v2/rules", regionImpl: *r} -} - -type monitor struct { - regionImpl - prefix string -} - -func (m *monitor) GetRule(name string) (*model.AlertingNameConfig, *util.APIHandleError) { - var ac model.AlertingNameConfig - var decode utilhttp.ResponseBody - decode.Bean = &ac - code, err := m.DoRequest(m.prefix+"/"+name, "GET", nil, &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Bean) - return nil, util.CreateAPIHandleError(code, fmt.Errorf("get alerting rules error code %d", code)) - } - return &ac, nil -} - -func (m *monitor) GetAllRule() (*model.AlertingRulesConfig, *util.APIHandleError) { - var ac model.AlertingRulesConfig - var decode utilhttp.ResponseBody - decode.Bean = &ac - code, err := m.DoRequest(m.prefix+"/all", "GET", nil, &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Bean) - return nil, util.CreateAPIHandleError(code, fmt.Errorf("get alerting rules error code %d", code)) - } - return &ac, nil -} - -func (m *monitor) DelRule(name string) (*utilhttp.ResponseBody, *util.APIHandleError) { - var decode utilhttp.ResponseBody - code, err := m.DoRequest(m.prefix+"/"+name, "DELETE", nil, &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Bean) - return nil, util.CreateAPIHandleError(code, fmt.Errorf("del alerting rules error code %d", code)) - } - return &decode, nil -} - -func (m *monitor) AddRule(path string) (*utilhttp.ResponseBody, *util.APIHandleError) { - _, err := os.Stat(path) - if err != nil { - if !os.IsExist(err) { - return nil, util.CreateAPIHandleError(400, errors.New("file does not exist")) - } - } - - content, err := ioutil.ReadFile(path) - if err != nil { - logrus.Error("Failed to read AlertingRules config file: ", err.Error()) - return nil, util.CreateAPIHandleError(400, err) - } - var rulesConfig model.AlertingNameConfig - if err := yaml.Unmarshal(content, &rulesConfig); err != nil { - logrus.Error("Unmarshal AlertingRulesConfig config string to object error.", err.Error()) - return nil, util.CreateAPIHandleError(400, err) - - } - var decode utilhttp.ResponseBody - body, err := json.Marshal(rulesConfig) - if err != nil { - return nil, util.CreateAPIHandleError(400, err) - } - code, err := m.DoRequest(m.prefix, "POST", bytes.NewBuffer(body), &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Bean) - return nil, util.CreateAPIHandleError(code, fmt.Errorf("add alerting rules error code %d", code)) - } - return &decode, nil -} - -func (m *monitor) RegRule(ruleName string, path string) (*utilhttp.ResponseBody, *util.APIHandleError) { - _, err := os.Stat(path) - if err != nil { - if !os.IsExist(err) { - return nil, util.CreateAPIHandleError(400, errors.New("file does not exist")) - } - } - - content, err := ioutil.ReadFile(path) - if err != nil { - logrus.Error("Failed to read AlertingRules config file: ", err.Error()) - return nil, util.CreateAPIHandleError(400, err) - } - var rulesConfig model.AlertingNameConfig - if err := yaml.Unmarshal(content, &rulesConfig); err != nil { - logrus.Error("Unmarshal AlertingRulesConfig config string to object error.", err.Error()) - return nil, util.CreateAPIHandleError(400, err) - - } - var decode utilhttp.ResponseBody - body, err := json.Marshal(rulesConfig) - if err != nil { - return nil, util.CreateAPIHandleError(400, err) - } - code, err := m.DoRequest(m.prefix+"/"+ruleName, "PUT", bytes.NewBuffer(body), &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Bean) - return nil, util.CreateAPIHandleError(code, fmt.Errorf("add alerting rules error code %d", code)) - } - return &decode, nil -} diff --git a/api/region/node.go b/api/region/node.go deleted file mode 100644 index edd415f69..000000000 --- a/api/region/node.go +++ /dev/null @@ -1,369 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package region - -import ( - "bytes" - "encoding/json" - "fmt" - - "github.com/goodrain/rainbond/node/api/model" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/pquerna/ffjson/ffjson" - - //"github.com/goodrain/rainbond/grctl/cmd" - - "github.com/goodrain/rainbond/api/util" - utilhttp "github.com/goodrain/rainbond/util/http" -) - -func (r *regionImpl) Nodes() NodeInterface { - return &node{regionImpl: *r, prefix: "/v2/nodes"} -} -func (r *regionImpl) Configs() ConfigsInterface { - return &configs{regionImpl: *r, prefix: "/v2/configs"} -} - -type task struct { - regionImpl - prefix string -} -type node struct { - regionImpl - prefix string -} - -func (n *node) Get(node string) (*client.HostNode, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc client.HostNode - res.Bean = &gc - code, err := n.DoRequest(n.prefix+"/"+node, "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - if code != 200 { - return nil, util.CreateAPIHandleError(code, fmt.Errorf("Get node detail code %d", code)) - } - return &gc, nil -} - -func (n *node) GetNodeResource(node string) (*client.NodePodResource, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc client.NodePodResource - res.Bean = &gc - code, err := n.DoRequest(n.prefix+"/"+node+"/resource", "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - if code != 200 { - return nil, util.CreateAPIHandleError(code, fmt.Errorf("Get node resource code %d", code)) - } - return &gc, nil -} - -func (n *node) GetNodeByRule(rule string) ([]*client.HostNode, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc []*client.HostNode - res.List = &gc - code, err := n.DoRequest(n.prefix+"/rule/"+rule, "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - if code != 200 { - return nil, util.CreateAPIHandleError(code, fmt.Errorf("Get node rule code %d", code)) - } - return gc, nil -} -func (n *node) UpdateNodeStatus(nid, status string) (*client.HostNode, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc client.HostNode - res.Bean = &gc - req := fmt.Sprintf(`{"status":"%s"}`, status) - code, err := n.DoRequest(n.prefix+"/"+nid+"/status", "PUT", bytes.NewBuffer([]byte(req)), &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - if code != 200 { - return nil, util.CreateAPIHandleError(code, fmt.Errorf("Update node status failure code %d", code)) - } - return &gc, nil -} -func (n *node) List() ([]*client.HostNode, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc []*client.HostNode - res.List = &gc - code, err := n.DoRequest(n.prefix, "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - if code != 200 { - return nil, util.CreateAPIHandleError(code, fmt.Errorf("Get node list code %d", code)) - } - return gc, nil -} - -func (n *node) GetAllNodeHealth() (map[string][]map[string]string, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc map[string][]map[string]string - res.Bean = &gc - code, err := n.DoRequest(n.prefix+"/all_node_health", "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - if code != 200 { - return nil, util.CreateAPIHandleError(code, fmt.Errorf("Get node health code %d", code)) - } - return gc, nil -} - -func (n *node) Add(node *client.APIHostNode) (*client.HostNode, *util.APIHandleError) { - body, err := json.Marshal(node) - if err != nil { - return nil, util.CreateAPIHandleError(400, err) - } - var res utilhttp.ResponseBody - var renode client.HostNode - res.Bean = &renode - code, err := n.DoRequest(n.prefix, "POST", bytes.NewBuffer(body), &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - return &renode, handleAPIResult(code, res) -} -func (n *node) Label(nid string) NodeLabelInterface { - return &nodeLabelImpl{nodeImpl: n, NodeID: nid} -} -func (n *node) Condition(nid string) NodeConditionInterface { - return &nodeConditionImpl{nodeImpl: n, NodeID: nid} -} - -type nodeLabelImpl struct { - nodeImpl *node - NodeID string -} - -func (nl *nodeLabelImpl) List() (map[string]string, *util.APIHandleError) { - var decode map[string]string - var res utilhttp.ResponseBody - res.Bean = &decode - code, err := nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/labels", "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - return decode, handleAPIResult(code, res) -} -func (nl *nodeLabelImpl) Delete(k string) *util.APIHandleError { - var decode map[string]string - var res utilhttp.ResponseBody - res.Bean = &decode - code, err := nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/labels", "GET", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - if handleAPIResult(code, res) != nil { - return handleAPIResult(code, res) - } - delete(decode, k) - body, err := json.Marshal(decode) - if err != nil { - return util.CreateAPIHandleError(400, err) - } - code, err = nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/labels", "PUT", bytes.NewBuffer(body), &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} -func (nl *nodeLabelImpl) Add(k, v string) *util.APIHandleError { - var decode map[string]string - var res utilhttp.ResponseBody - res.Bean = &decode - code, err := nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/labels", "GET", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - if handleAPIResult(code, res) != nil { - return handleAPIResult(code, res) - } - decode[k] = v - body, err := json.Marshal(decode) - if err != nil { - return util.CreateAPIHandleError(400, err) - } - code, err = nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/labels", "PUT", bytes.NewBuffer(body), &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} - -type nodeConditionImpl struct { - nodeImpl *node - NodeID string -} - -func (nl *nodeConditionImpl) List() ([]client.NodeCondition, *util.APIHandleError) { - var decode []client.NodeCondition - var res utilhttp.ResponseBody - res.List = &decode - code, err := nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/conditions", "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - return decode, handleAPIResult(code, res) -} -func (nl *nodeConditionImpl) Delete(k client.NodeConditionType) ([]client.NodeCondition, *util.APIHandleError) { - var decode []client.NodeCondition - var res utilhttp.ResponseBody - res.List = &decode - code, err := nl.nodeImpl.DoRequest(nl.nodeImpl.prefix+"/"+nl.NodeID+"/conditions/"+string(k), "DELETE", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - return decode, handleAPIResult(code, res) -} - -func (n *node) Delete(nid string) *util.APIHandleError { - var res utilhttp.ResponseBody - code, err := n.DoRequest(n.prefix+"/"+nid, "DELETE", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} - -func (n *node) Up(nid string) *util.APIHandleError { - var res utilhttp.ResponseBody - code, err := n.DoRequest(n.prefix+"/"+nid+"/up", "POST", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} -func (n *node) Down(nid string) *util.APIHandleError { - var res utilhttp.ResponseBody - code, err := n.DoRequest(n.prefix+"/"+nid+"/down", "POST", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} -func (n *node) UnSchedulable(nid string) *util.APIHandleError { - var res utilhttp.ResponseBody - code, err := n.DoRequest(n.prefix+"/"+nid+"/unschedulable", "PUT", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} -func (n *node) ReSchedulable(nid string) *util.APIHandleError { - var res utilhttp.ResponseBody - code, err := n.DoRequest(n.prefix+"/"+nid+"/reschedulable", "PUT", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} -func (n *node) Install(nid string) *util.APIHandleError { - var res utilhttp.ResponseBody - code, err := n.DoRequest(n.prefix+"/"+nid+"/install", "POST", nil, &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} - -type configs struct { - regionImpl - prefix string -} - -func (c *configs) Get() (*model.GlobalConfig, *util.APIHandleError) { - var res utilhttp.ResponseBody - var gc = model.GlobalConfig{ - Configs: make(map[string]*model.ConfigUnit), - } - res.Bean = &gc - code, err := c.DoRequest(c.prefix+"/datacenter", "GET", nil, &res) - if err != nil { - return nil, util.CreateAPIHandleError(code, err) - } - return &gc, handleAPIResult(code, res) -} - -func (c *configs) Put(gc *model.GlobalConfig) *util.APIHandleError { - rebody, err := ffjson.Marshal(gc) - if err != nil { - return util.CreateAPIHandleError(400, err) - } - var res utilhttp.ResponseBody - code, err := c.DoRequest(c.prefix+"/datacenter", "PUT", bytes.NewBuffer(rebody), &res) - if err != nil { - return util.CreateAPIHandleError(code, err) - } - return handleAPIResult(code, res) -} - -//TaskInterface task api -type TaskInterface interface { - Get(name string) (*model.Task, *util.APIHandleError) - GetTaskStatus(task string) (map[string]*model.TaskStatus, *util.APIHandleError) - Add(task *model.Task) *util.APIHandleError - AddGroup(group *model.TaskGroup) *util.APIHandleError - Exec(name string, nodes []string) *util.APIHandleError - List() ([]*model.Task, *util.APIHandleError) -} - -//NodeInterface node api -type NodeInterface interface { - GetNodeByRule(rule string) ([]*client.HostNode, *util.APIHandleError) - Get(node string) (*client.HostNode, *util.APIHandleError) - GetNodeResource(node string) (*client.NodePodResource, *util.APIHandleError) - List() ([]*client.HostNode, *util.APIHandleError) - GetAllNodeHealth() (map[string][]map[string]string, *util.APIHandleError) - Add(node *client.APIHostNode) (*client.HostNode, *util.APIHandleError) - Up(nid string) *util.APIHandleError - Down(nid string) *util.APIHandleError - UnSchedulable(nid string) *util.APIHandleError - ReSchedulable(nid string) *util.APIHandleError - Delete(nid string) *util.APIHandleError - Label(nid string) NodeLabelInterface - Condition(nid string) NodeConditionInterface - Install(nid string) *util.APIHandleError - UpdateNodeStatus(nid, status string) (*client.HostNode, *util.APIHandleError) -} - -//NodeLabelInterface node label interface -type NodeLabelInterface interface { - Add(k, v string) *util.APIHandleError - Delete(k string) *util.APIHandleError - List() (map[string]string, *util.APIHandleError) -} - -//NodeConditionInterface node condition manage api -type NodeConditionInterface interface { - List() ([]client.NodeCondition, *util.APIHandleError) - Delete(conditionType client.NodeConditionType) ([]client.NodeCondition, *util.APIHandleError) -} - -//ConfigsInterface 数据中心配置API -type ConfigsInterface interface { - Get() (*model.GlobalConfig, *util.APIHandleError) - Put(*model.GlobalConfig) *util.APIHandleError -} diff --git a/api/region/notification.go b/api/region/notification.go deleted file mode 100644 index 17f3fb54c..000000000 --- a/api/region/notification.go +++ /dev/null @@ -1,77 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package region - -import ( - "bytes" - "encoding/json" - "fmt" - - "github.com/goodrain/rainbond/api/util" - "github.com/goodrain/rainbond/node/api/model" - utilhttp "github.com/goodrain/rainbond/util/http" - "github.com/sirupsen/logrus" -) - -//NotificationInterface cluster api -type NotificationInterface interface { - GetNotification(start string, end string) ([]*model.NotificationEvent, *util.APIHandleError) - HandleNotification(serviceName string, message string) ([]*model.NotificationEvent, *util.APIHandleError) -} - -func (r *regionImpl) Notification() NotificationInterface { - return ¬ification{prefix: "/v2/notificationEvent", regionImpl: *r} -} - -type notification struct { - regionImpl - prefix string -} - -func (n *notification) GetNotification(start string, end string) ([]*model.NotificationEvent, *util.APIHandleError) { - var ne []*model.NotificationEvent - var decode utilhttp.ResponseBody - decode.List = &ne - code, err := n.DoRequest(n.prefix+"?start="+start+"&"+"end="+end, "GET", nil, &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Msg) - return nil, util.CreateAPIHandleError(code, fmt.Errorf(decode.Msg)) - } - return ne, nil -} - -func (n *notification) HandleNotification(serviceName string, message string) ([]*model.NotificationEvent, *util.APIHandleError) { - var ne []*model.NotificationEvent - var decode utilhttp.ResponseBody - decode.List = &ne - handleMessage, err := json.Marshal(map[string]string{"handle_message": message}) - body := bytes.NewBuffer(handleMessage) - code, err := n.DoRequest(n.prefix+"/"+serviceName, "PUT", body, &decode) - if err != nil { - return nil, handleErrAndCode(err, code) - } - if code != 200 { - logrus.Error("Return failure message ", decode.Msg) - return nil, util.CreateAPIHandleError(code, fmt.Errorf(decode.Msg)) - } - return ne, nil -} diff --git a/api/region/region.go b/api/region/region.go index fd13c7736..49e09650a 100644 --- a/api/region/region.go +++ b/api/region/region.go @@ -48,12 +48,8 @@ var AllTenant string type Region interface { Tenants(name string) TenantInterface Resources() ResourcesInterface - Nodes() NodeInterface Cluster() ClusterInterface - Configs() ConfigsInterface Version() string - Monitor() MonitorInterface - Notification() NotificationInterface DoRequest(path, method string, body io.Reader, decode *utilhttp.ResponseBody) (int, error) } diff --git a/api/region/region_test.go b/api/region/region_test.go deleted file mode 100644 index 3d08a2409..000000000 --- a/api/region/region_test.go +++ /dev/null @@ -1,102 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package region - -import ( - "testing" - - dbmodel "github.com/goodrain/rainbond/db/model" - utilhttp "github.com/goodrain/rainbond/util/http" -) - -func TestListTenant(t *testing.T) { - region, _ := NewRegion(APIConf{ - Endpoints: []string{"http://kubeapi.goodrain.me:8888"}, - }) - tenants, err := region.Tenants("").List() - if err != nil { - t.Fatal(err) - } - t.Logf("%+v", tenants) -} - -func TestListServices(t *testing.T) { - region, _ := NewRegion(APIConf{ - Endpoints: []string{"http://kubeapi.goodrain.me:8888"}, - }) - services, err := region.Tenants("n93lkp7t").Services("").List() - if err != nil { - t.Fatal(err) - } - for _, s := range services { - t.Logf("%+v", s) - } -} - -func TestDoRequest(t *testing.T) { - region, _ := NewRegion(APIConf{ - Endpoints: []string{"http://kubeapi.goodrain.me:8888"}, - }) - var decode utilhttp.ResponseBody - var tenants []*dbmodel.Tenants - decode.List = &tenants - code, err := region.DoRequest("/v2/tenants", "GET", nil, &decode) - if err != nil { - t.Fatal(err, code) - } - t.Logf("%+v", tenants) -} - -func TestListNodes(t *testing.T) { - region, _ := NewRegion(APIConf{ - Endpoints: []string{"http://kubeapi.goodrain.me:8888"}, - }) - services, err := region.Nodes().List() - if err != nil { - t.Fatal(err) - } - for _, s := range services { - t.Logf("%+v", s) - } -} - -func TestGetNodes(t *testing.T) { - region, _ := NewRegion(APIConf{ - Endpoints: []string{"http://kubeapi.goodrain.me:8888"}, - }) - node, err := region.Nodes().Get("a134eab8-3d42-40f5-84a5-fcf2b7a44b31") - if err != nil { - t.Fatal(err) - } - t.Logf("%+v", node) -} - -func TestGetTenantsBySSL(t *testing.T) { - region, _ := NewRegion(APIConf{ - Endpoints: []string{"https://127.0.0.1:8443"}, - Cacert: "/Users/qingguo/gopath/src/github.com/goodrain/rainbond/test/ssl/ca.pem", - Cert: "/Users/qingguo/gopath/src/github.com/goodrain/rainbond/test/ssl/client.pem", - CertKey: "/Users/qingguo/gopath/src/github.com/goodrain/rainbond/test/ssl/client.key.pem", - }) - tenants, err := region.Tenants("").List() - if err != nil { - t.Fatal(err) - } - t.Logf("%+v", tenants) -} diff --git a/cmd/node/initlogger.go b/cmd/node-proxy/initlogger.go similarity index 100% rename from cmd/node/initlogger.go rename to cmd/node-proxy/initlogger.go diff --git a/cmd/node/node.go b/cmd/node-proxy/node.go similarity index 91% rename from cmd/node/node.go rename to cmd/node-proxy/node.go index 1bcd3dc80..202de917e 100644 --- a/cmd/node/node.go +++ b/cmd/node-proxy/node.go @@ -26,15 +26,14 @@ import ( "github.com/spf13/pflag" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/cmd/node/server" + "github.com/goodrain/rainbond/cmd/node-proxy/option" + "github.com/goodrain/rainbond/cmd/node-proxy/server" ) func main() { if len(os.Args) > 1 && os.Args[1] == "version" { cmd.ShowVersion("node") } - server.ParseClientCommnad(os.Args) option.Config.AddFlags(pflag.CommandLine) server.InstallServiceFlags(pflag.CommandLine) if err := option.Init(); err != nil { diff --git a/cmd/node-proxy/option/conf.go b/cmd/node-proxy/option/conf.go new file mode 100644 index 000000000..fe45333ef --- /dev/null +++ b/cmd/node-proxy/option/conf.go @@ -0,0 +1,142 @@ +// Copyright (C) 2014-2021 Goodrain Co., Ltd. +// RAINBOND, Application Management Platform + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. For any non-GPL usage of Rainbond, +// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. +// must be obtained first. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package option + +import ( + "context" + "fmt" + "os" + "path" + + dockercli "github.com/docker/docker/client" + "github.com/goodrain/rainbond/util" + "github.com/sirupsen/logrus" + "github.com/spf13/pflag" +) + +var ( + + //Config config + Config = new(Conf) + initialized bool +) + +//Init init config +func Init() error { + if initialized { + return nil + } + pflag.Parse() + Config.SetLog() + if err := Config.parse(); err != nil { + return err + } + initialized = true + return nil +} + +//Conf Conf +type Conf struct { + APIAddr string //api server listen port + GrpcAPIAddr string //grpc api server listen port + LogLevel string + LogFile string + StatsdConfig StatsdConfig + UDPMonitorConfig UDPMonitorConfig + //enable collect docker container log + EnableCollectLog bool + DockerCli *dockercli.Client + // Namespace for Rainbond application. + RbdNamespace string + ImageRepositoryHost string + GatewayVIP string + HostsFile string +} + +//StatsdConfig StatsdConfig +type StatsdConfig struct { + StatsdListenAddress string + StatsdListenUDP string + StatsdListenTCP string + MappingConfig string + ReadBuffer int +} + +//UDPMonitorConfig UDPMonitorConfig +type UDPMonitorConfig struct { + ListenHost string + ListenPort string +} + +//AddFlags AddFlags +func (a *Conf) AddFlags(fs *pflag.FlagSet) { + fs.StringVar(&a.LogLevel, "log-level", "info", "the log level") + fs.StringVar(&a.LogFile, "log-file", "", "the log file path that log output") + fs.StringVar(&a.GrpcAPIAddr, "grpc-api-addr", ":6101", "The node grpc api server listen address") + fs.StringVar(&a.StatsdConfig.StatsdListenAddress, "statsd.listen-address", "", "The UDP address on which to receive statsd metric lines. DEPRECATED, use statsd.listen-udp instead.") + fs.StringVar(&a.StatsdConfig.StatsdListenUDP, "statsd.listen-udp", ":9125", "The UDP address on which to receive statsd metric lines. \"\" disables it.") + fs.StringVar(&a.StatsdConfig.StatsdListenTCP, "statsd.listen-tcp", ":9125", "The TCP address on which to receive statsd metric lines. \"\" disables it.") + fs.StringVar(&a.StatsdConfig.MappingConfig, "statsd.mapping-config", "", "Metric mapping configuration file name.") + fs.IntVar(&a.StatsdConfig.ReadBuffer, "statsd.read-buffer", 0, "Size (in bytes) of the operating system's transmit read buffer associated with the UDP connection. Please make sure the kernel parameters net.core.rmem_max is set to a value greater than the value specified.") + fs.BoolVar(&a.EnableCollectLog, "enabel-collect-log", true, "Whether to collect container logs") + fs.StringVar(&a.RbdNamespace, "rbd-ns", "rbd-system", "The namespace of rainbond applications.") + fs.StringVar(&a.ImageRepositoryHost, "image-repo-host", "goodrain.me", "The host of image repository") + fs.StringVar(&a.GatewayVIP, "gateway-vip", "", "The vip of gateway") + fs.StringVar(&a.HostsFile, "hostsfile", "/newetc/hosts", "/etc/hosts mapped path in the container. eg. /etc/hosts:/tmp/hosts. Do not set hostsfile to /etc/hosts") +} + +//SetLog 设置log +func (a *Conf) SetLog() { + level, err := logrus.ParseLevel(a.LogLevel) + if err != nil { + fmt.Println("set log level error." + err.Error()) + return + } + logrus.SetLevel(level) + if a.LogFile != "" { + if err := util.CheckAndCreateDir(path.Dir(a.LogFile)); err != nil { + logrus.Errorf("create node log file dir failure %s", err.Error()) + os.Exit(1) + } + logfile, err := os.OpenFile(a.LogFile, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0755) + if err != nil { + logrus.Errorf("create and open node log file failure %s", err.Error()) + os.Exit(1) + } + logrus.SetOutput(logfile) + } +} + +//ParseClient handle config and create some api +func (a *Conf) ParseClient(ctx context.Context) (err error) { + a.DockerCli, err = dockercli.NewClientWithOpts(dockercli.FromEnv) + if err != nil { + return err + } + return nil +} + +//parse parse +func (a *Conf) parse() error { + //init api listen port, can not custom + if a.APIAddr == "" { + a.APIAddr = ":6100" + } + return nil +} diff --git a/cmd/node/server/server.go b/cmd/node-proxy/server/server.go similarity index 66% rename from cmd/node/server/server.go rename to cmd/node-proxy/server/server.go index dfc8921f6..7185aa205 100644 --- a/cmd/node/server/server.go +++ b/cmd/node-proxy/server/server.go @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. +// Copyright (C) 2014-2021 Goodrain Co., Ltd. // RAINBOND, Application Management Platform // This program is free software: you can redistribute it and/or modify @@ -25,20 +25,14 @@ import ( "os/signal" "syscall" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/discover.v2" - eventLog "github.com/goodrain/rainbond/event" "github.com/goodrain/rainbond/node/api" - "github.com/goodrain/rainbond/node/api/controller" - "github.com/goodrain/rainbond/node/core/store" "github.com/goodrain/rainbond/node/initiate" - "github.com/goodrain/rainbond/node/kubecache" - "github.com/goodrain/rainbond/node/masterserver" "github.com/goodrain/rainbond/node/nodem" "github.com/goodrain/rainbond/node/nodem/docker" "github.com/goodrain/rainbond/node/nodem/envoy" "github.com/goodrain/rainbond/util/constants" - etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" "github.com/sirupsen/logrus" "k8s.io/client-go/kubernetes" @@ -55,18 +49,11 @@ func Run(cfg *option.Conf) error { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: cfg.EtcdEndpoints, - CaFile: cfg.EtcdCaFile, - CertFile: cfg.EtcdCertFile, - KeyFile: cfg.EtcdKeyFile, - DialTimeout: cfg.EtcdDialTimeout, - } - if err := cfg.ParseClient(ctx, etcdClientArgs); err != nil { + if err := cfg.ParseClient(ctx); err != nil { return fmt.Errorf("config parse error:%s", err.Error()) } - config, err := k8sutil.NewRestConfig(cfg.K8SConfPath) + config, err := k8sutil.NewRestConfig("") if err != nil { return err } @@ -82,27 +69,6 @@ func Run(cfg *option.Conf) error { if err != nil { return fmt.Errorf("create node manager failed: %s", err) } - if err := nodemanager.InitStart(); err != nil { - return err - } - - err = eventLog.NewManager(eventLog.EventConfig{ - EventLogServers: cfg.EventLogServer, - DiscoverArgs: etcdClientArgs, - }) - if err != nil { - logrus.Errorf("error creating eventlog manager") - return nil - } - defer eventLog.CloseManager() - logrus.Debug("create and start event log client success") - - kubecli, err := kubecache.NewKubeClient(cfg, clientset) - if err != nil { - return err - } - defer kubecli.Stop() - if cfg.ImageRepositoryHost == constants.DefImageRepository { hostManager, err := initiate.NewHostManager(cfg, k8sDiscover) if err != nil { @@ -117,10 +83,6 @@ func Run(cfg *option.Conf) error { return fmt.Errorf("sync docker cert from secret error: %s", err.Error()) } - // init etcd client - if err = store.NewClient(ctx, cfg, etcdClientArgs); err != nil { - return fmt.Errorf("Connect to ETCD %s failed: %s", cfg.EtcdEndpoints, err) - } errChan := make(chan error, 3) if err := nodemanager.Start(errChan); err != nil { return fmt.Errorf("start node manager failed: %s", err) @@ -128,24 +90,8 @@ func Run(cfg *option.Conf) error { defer nodemanager.Stop() logrus.Debug("create and start node manager moudle success") - //master服务在node服务之后启动 - var ms *masterserver.MasterServer - if cfg.RunMode == "master" { - ms, err = masterserver.NewMasterServer(nodemanager.GetCurrentNode(), kubecli) - if err != nil { - logrus.Errorf(err.Error()) - return err - } - ms.Cluster.UpdateNode(nodemanager.GetCurrentNode()) - if err := ms.Start(errChan); err != nil { - logrus.Errorf(err.Error()) - return err - } - defer ms.Stop(nil) - logrus.Debug("create and start master server moudle success") - } //create api manager - apiManager := api.NewManager(*cfg, nodemanager.GetCurrentNode(), ms, kubecli) + apiManager := api.NewManager(*cfg, clientset) if err := apiManager.Start(errChan); err != nil { return err } @@ -165,8 +111,6 @@ func Run(cfg *option.Conf) error { defer grpcserver.Stop() logrus.Debug("create and start api server moudle success") - - defer controller.Exist(nil) //step finally: listen Signal term := make(chan os.Signal) signal.Notify(term, os.Interrupt, syscall.SIGTERM) diff --git a/cmd/node/server/service_others.go b/cmd/node-proxy/server/service_others.go similarity index 91% rename from cmd/node/server/service_others.go rename to cmd/node-proxy/server/service_others.go index c194849fd..7ec04c7f7 100644 --- a/cmd/node/server/service_others.go +++ b/cmd/node-proxy/server/service_others.go @@ -1,5 +1,5 @@ // RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. +// Copyright (C) 2014-2021 Goodrain Co., Ltd. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ package server import ( - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/spf13/pflag" ) diff --git a/cmd/node/server/service_windows.go b/cmd/node-proxy/server/service_windows.go similarity index 98% rename from cmd/node/server/service_windows.go rename to cmd/node-proxy/server/service_windows.go index 5a2707ba9..c301c83a1 100644 --- a/cmd/node/server/service_windows.go +++ b/cmd/node-proxy/server/service_windows.go @@ -25,7 +25,7 @@ import ( "path/filepath" "strings" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" utilwindows "github.com/goodrain/rainbond/util/windows" "github.com/spf13/pflag" "golang.org/x/sys/windows" diff --git a/cmd/node/swagger.json b/cmd/node-proxy/swagger.json similarity index 100% rename from cmd/node/swagger.json rename to cmd/node-proxy/swagger.json diff --git a/cmd/node/option/conf.go b/cmd/node/option/conf.go deleted file mode 100644 index d654be2d5..000000000 --- a/cmd/node/option/conf.go +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package option - -import ( - "context" - "flag" - "fmt" - "os" - "path" - "time" - - client "github.com/coreos/etcd/clientv3" - dockercli "github.com/docker/docker/client" - "github.com/fsnotify/fsnotify" - "github.com/goodrain/rainbond/util" - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" - "github.com/spf13/pflag" -) - -var ( - confFile = flag.String("conf", - "conf/files/base.json", "config file path") - //Config config - Config = new(Conf) - initialized bool - - watcher *fsnotify.Watcher - exitChan = make(chan struct{}) -) - -//Init init config -func Init() error { - if initialized { - return nil - } - pflag.Parse() - Config.SetLog() - if err := Config.parse(); err != nil { - return err - } - initialized = true - return nil -} - -//Conf Conf -type Conf struct { - APIAddr string //api server listen port - GrpcAPIAddr string //grpc api server listen port - PrometheusAPI string //Prometheus server listen port - K8SConfPath string //absolute path to the kubeconfig file - LogLevel string - LogFile string - HostID string - HostIP string - PodIP string - RunMode string //ACP_NODE 运行模式:master,node - NodeRule string //节点属性 compute manage storage - Service string //服务注册与发现 - InitStatus string - NodePath string //Rainbond node model basic information storage path in etcd - EventLogServer []string //event server address list - ConfigStoragePath string //config storage path in etcd - LockPath string - TTL int64 // node heartbeat to master TTL - PodCIDR string //pod cidr, when master not set cidr,this parameter can take effect - EtcdEndpoints []string // etcd endpoints - EtcdDialTimeout time.Duration // etcd dial timeout - EtcdCaFile string // etcd ca file - EtcdCertFile string // etcd cert file - EtcdKeyFile string // etcd key file - StatsdConfig StatsdConfig - UDPMonitorConfig UDPMonitorConfig - MinResyncPeriod time.Duration - AutoUnschedulerUnHealthDuration time.Duration - AutoScheduler bool - ReqTimeout int - - // for node controller - ServiceListFile string - ServiceManager string - EnableInitStart bool - AutoRegistNode bool - //enable collect docker container log - EnableCollectLog bool - DockerCli *dockercli.Client - EtcdCli *client.Client - - LicPath string - LicSoPath string - - // EnableImageGC is the trigger of image garbage collection. - EnableImageGC bool - // imageMinimumGCAge is the minimum age for an unused image before it is - // garbage collected. - ImageMinimumGCAge time.Duration - // imageGCHighThresholdPercent is the percent of disk usage after which - // image garbage collection is always run. The percent is calculated as - // this field value out of 100. - ImageGCHighThresholdPercent int32 - // imageGCLowThresholdPercent is the percent of disk usage before which - // image garbage collection is never run. Lowest disk usage to garbage - // collect to. The percent is calculated as this field value out of 100. - ImageGCLowThresholdPercent int32 - // ImageGCPeriod is the period for performing image garbage collection. - ImageGCPeriod time.Duration - - // Namespace for Rainbond application. - RbdNamespace string - ImageRepositoryHost string - GatewayVIP string - HostsFile string -} - -//StatsdConfig StatsdConfig -type StatsdConfig struct { - StatsdListenAddress string - StatsdListenUDP string - StatsdListenTCP string - MappingConfig string - ReadBuffer int -} - -//UDPMonitorConfig UDPMonitorConfig -type UDPMonitorConfig struct { - ListenHost string - ListenPort string -} - -//AddFlags AddFlags -func (a *Conf) AddFlags(fs *pflag.FlagSet) { - fs.StringVar(&a.LogLevel, "log-level", "info", "the log level") - fs.StringVar(&a.LogFile, "log-file", "", "the log file path that log output") - fs.StringVar(&a.PrometheusAPI, "prometheus", "http://rbd-monitor:9999", "the prometheus server address") - fs.StringVar(&a.NodePath, "nodePath", "/rainbond/nodes", "the path of node in etcd") - fs.StringVar(&a.HostID, "nodeid", "", "the unique ID for this node. Just specify, don't modify") - fs.StringVar(&a.HostIP, "hostIP", "", "the host ip you can define. default get ip from eth0") - fs.StringVar(&a.PodIP, "podIP", "", "The pod ip of node.") - fs.StringSliceVar(&a.EventLogServer, "event-log-server", []string{"127.0.0.1:6366"}, "host:port slice of event log server") - fs.StringVar(&a.ConfigStoragePath, "config-path", "/rainbond/acp_configs", "the path of config to store(new)") - fs.StringVar(&a.Service, "servicePath", "/traefik/backends", "the path of service info to store") - fs.StringSliceVar(&a.EtcdEndpoints, "etcd", []string{"http://127.0.0.1:2379"}, "the path of node in etcd") - fs.StringVar(&a.EtcdCaFile, "etcd-ca", "", "verify etcd certificates of TLS-enabled secure servers using this CA bundle") - fs.StringVar(&a.EtcdCertFile, "etcd-cert", "", "identify secure etcd client using this TLS certificate file") - fs.StringVar(&a.EtcdKeyFile, "etcd-key", "", "identify secure etcd client using this TLS key file") - fs.DurationVar(&a.EtcdDialTimeout, "etcd-dialTimeOut", 3, "etcd cluster dialTimeOut In seconds") - fs.IntVar(&a.ReqTimeout, "reqTimeOut", 2, "req TimeOut.") - fs.Int64Var(&a.TTL, "ttl", 10, "Frequency of node status reporting to master") - //fs.StringVar(&a.APIAddr, "api-addr", ":6100", "The node api server listen address") - fs.StringVar(&a.GrpcAPIAddr, "grpc-api-addr", ":6101", "The node grpc api server listen address") - fs.StringVar(&a.K8SConfPath, "kube-conf", "", "absolute path to the kubeconfig file ./kubeconfig") - fs.StringVar(&a.RunMode, "run-mode", "worker", "the acp_node run mode,could be 'worker' or 'master'") - fs.StringVar(&a.NodeRule, "noderule", "compute", "current node rule,maybe is `compute` `manage` `storage` ") - fs.StringVar(&a.StatsdConfig.StatsdListenAddress, "statsd.listen-address", "", "The UDP address on which to receive statsd metric lines. DEPRECATED, use statsd.listen-udp instead.") - fs.StringVar(&a.StatsdConfig.StatsdListenUDP, "statsd.listen-udp", ":9125", "The UDP address on which to receive statsd metric lines. \"\" disables it.") - fs.StringVar(&a.StatsdConfig.StatsdListenTCP, "statsd.listen-tcp", ":9125", "The TCP address on which to receive statsd metric lines. \"\" disables it.") - fs.StringVar(&a.StatsdConfig.MappingConfig, "statsd.mapping-config", "", "Metric mapping configuration file name.") - fs.IntVar(&a.StatsdConfig.ReadBuffer, "statsd.read-buffer", 0, "Size (in bytes) of the operating system's transmit read buffer associated with the UDP connection. Please make sure the kernel parameters net.core.rmem_max is set to a value greater than the value specified.") - fs.DurationVar(&a.MinResyncPeriod, "min-resync-period", time.Second*15, "The resync period in reflectors will be random between MinResyncPeriod and 2*MinResyncPeriod") - fs.StringVar(&a.ServiceListFile, "service-list-file", "/opt/rainbond/conf/", "Specifies the configuration file, which can be a directory, that configures the service running on the current node") - fs.BoolVar(&a.EnableInitStart, "enable-init-start", false, "Enable dependency - free initialization starts for services that support initialization starts") - fs.BoolVar(&a.AutoRegistNode, "auto-registnode", true, "Whether auto regist node info to cluster where node is not found") - fs.BoolVar(&a.AutoScheduler, "auto-scheduler", true, "Whether auto set node unscheduler where current node is unhealth") - fs.BoolVar(&a.EnableCollectLog, "enabel-collect-log", true, "Whether to collect container logs") - fs.DurationVar(&a.AutoUnschedulerUnHealthDuration, "autounscheduler-unhealthy-dura", 5*time.Minute, "Node unhealthy duration, after the automatic offline,if set 0,disable auto handle unscheduler.default is 5 Minute") - fs.StringVar(&a.LicPath, "lic-path", "/opt/rainbond/etc/license/license.yb", "the license path of the enterprise version.") - fs.StringVar(&a.LicSoPath, "lic-so-path", "/opt/rainbond/etc/license/license.so", "Dynamic library file path for parsing the license.") - fs.BoolVar(&a.EnableImageGC, "enable-image-gc", true, "The trigger of image garbage collection.") - fs.DurationVar(&a.ImageMinimumGCAge, "minimum-image-ttl-duration", 2*time.Hour, "Minimum age for an unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'.") - fs.DurationVar(&a.ImageGCPeriod, "image-gc-period", 5*time.Minute, "ImageGCPeriod is the period for performing image garbage collection. Examples: '10s', '5m' or '2h45m'.") - fs.Int32Var(&a.ImageGCHighThresholdPercent, "image-gc-high-threshold", 90, "The percent of disk usage after which image garbage collection is always run. Values must be within the range [0, 100], To disable image garbage collection, set to 100. ") - fs.Int32Var(&a.ImageGCLowThresholdPercent, "image-gc-low-threshold", 75, "The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Values must be within the range [0, 100] and should not be larger than that of --image-gc-high-threshold.") - fs.StringVar(&a.RbdNamespace, "rbd-ns", "rbd-system", "The namespace of rainbond applications.") - fs.StringVar(&a.ImageRepositoryHost, "image-repo-host", "goodrain.me", "The host of image repository") - fs.StringVar(&a.GatewayVIP, "gateway-vip", "", "The vip of gateway") - fs.StringVar(&a.HostsFile, "hostsfile", "/newetc/hosts", "/etc/hosts mapped path in the container. eg. /etc/hosts:/tmp/hosts. Do not set hostsfile to /etc/hosts") -} - -//SetLog 设置log -func (a *Conf) SetLog() { - level, err := logrus.ParseLevel(a.LogLevel) - if err != nil { - fmt.Println("set log level error." + err.Error()) - return - } - logrus.SetLevel(level) - if a.LogFile != "" { - if err := util.CheckAndCreateDir(path.Dir(a.LogFile)); err != nil { - logrus.Errorf("create node log file dir failure %s", err.Error()) - os.Exit(1) - } - logfile, err := os.OpenFile(a.LogFile, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0755) - if err != nil { - logrus.Errorf("create and open node log file failure %s", err.Error()) - os.Exit(1) - } - logrus.SetOutput(logfile) - } -} - -//ParseClient handle config and create some api -func (a *Conf) ParseClient(ctx context.Context, etcdClientArgs *etcdutil.ClientArgs) (err error) { - a.DockerCli, err = dockercli.NewEnvClient() - if err != nil { - return err - } - logrus.Infof("begin create etcd client: %s", a.EtcdEndpoints) - for { - a.EtcdCli, err = etcdutil.NewClient(ctx, etcdClientArgs) - if err != nil { - logrus.Errorf("create etcd client failure %s, will retry after 3 second", err.Error()) - } - if err == nil && a.EtcdCli != nil { - break - } - time.Sleep(time.Second * 3) - } - logrus.Infof("create etcd client success") - return nil -} - -//parse parse -func (a *Conf) parse() error { - if a.TTL <= 0 { - a.TTL = 10 - } - a.LockPath = "/rainbond/lock" - if a.HostIP == "" || !util.CheckIP(a.HostIP) { - localIP, err := util.LocalIP() - if localIP == nil || err != nil { - return fmt.Errorf("can not find ip of this node") - } - a.HostIP = localIP.String() - } - //init api listen port, can not custom - if a.APIAddr == "" { - a.APIAddr = ":6100" - } - if a.HostID == "" { - return fmt.Errorf("kubernetes node id can't empty") - } - return nil -} diff --git a/cmd/node/server/client.go b/cmd/node/server/client.go deleted file mode 100644 index ebc00aa1d..000000000 --- a/cmd/node/server/client.go +++ /dev/null @@ -1,189 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package server - -import ( - "fmt" - "net/http" - "os" - "sort" - "strings" - - "github.com/goodrain/rainbond/util" - - "github.com/sirupsen/logrus" - - "github.com/goodrain/rainbond/event" - - "github.com/goodrain/rainbond/builder/parser" - - "github.com/goodrain/rainbond/node/nodem/service" - - "github.com/goodrain/rainbond/cmd" - - httputil "github.com/goodrain/rainbond/util/http" - "github.com/urfave/cli" -) - -//ParseClientCommnad parse client command -// node service xxx :Operation of the guard component -// node reg : Register the daemon configuration for node -// node run: daemon start node server -func ParseClientCommnad(args []string) { - - if len(args) > 1 { - switch args[1] { - case "version": - cmd.ShowVersion("node") - case "service": - controller := controllerServiceClient{} - if len(args) > 2 { - switch args[2] { - case "start": - if len(args) < 4 { - fmt.Printf("Parameter error") - } - //enable a service - serviceName := args[3] - if err := controller.startService(serviceName); err != nil { - fmt.Printf("start service %s failure %s", serviceName, err.Error()) - os.Exit(1) - } - fmt.Printf("start service %s success", serviceName) - os.Exit(0) - case "stop": - if len(args) < 4 { - fmt.Printf("Parameter error") - } - //disable a service - serviceName := args[3] - if err := controller.stopService(serviceName); err != nil { - fmt.Printf("stop service %s failure %s", serviceName, err.Error()) - os.Exit(1) - } - fmt.Printf("stop service %s success", serviceName) - os.Exit(0) - case "update": - if err := controller.updateConfig(); err != nil { - fmt.Printf("update service config failure %s", err.Error()) - os.Exit(1) - } - fmt.Printf("update service config success") - os.Exit(0) - } - } - case "upgrade": - App := cli.NewApp() - App.Version = "0.1" - App.Commands = []cli.Command{ - { - Name: "upgrade", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "config-dir,c", - Value: "/opt/rainbond/conf", - Usage: "service config file dir", - }, - cli.StringFlag{ - Name: "new-version,v", - Value: "", - Usage: "upgrade target version", - }, - cli.StringFlag{ - Name: "image-prefix,p", - Value: "goodrain.me", - Usage: "", - }, - cli.StringSliceFlag{ - Name: "services,s", - Value: &cli.StringSlice{"rbd-gateway", "rbd-api", "rbd-chaos", "rbd-mq", "rbd-webcli", "rbd-worker", "rbd-eventlog", "rbd-monitor", "rbd-app-ui"}, - Usage: "Enable supported services", - }, - }, - Action: upgradeImages, - }, - } - sort.Sort(cli.FlagsByName(App.Flags)) - sort.Sort(cli.CommandsByName(App.Commands)) - if err := App.Run(os.Args); err != nil { - logrus.Errorf("upgrade failure %s", err.Error()) - os.Exit(1) - } - logrus.Info("upgrade success") - os.Exit(0) - case "run": - - } - } -} - -//upgrade image name -func upgradeImages(ctx *cli.Context) error { - services := service.LoadServicesWithFileFromLocal(ctx.String("c")) - for i, serviceList := range services { - for j, service := range serviceList.Services { - if util.StringArrayContains(ctx.StringSlice("s"), service.Name) && - service.Start != "" && !service.OnlyHealthCheck { - par := parser.CreateDockerRunOrImageParse("", "", service.Start, nil, event.GetTestLogger()) - par.ParseDockerun(service.Start) - image := par.GetImage() - if image.Name == "" { - continue - } - newImage := ctx.String("p") + "/" + service.Name + ":" + ctx.String("v") - oldImage := func() string { - if image.IsOfficial() { - return image.GetRepostory() + ":" + image.GetTag() - } - return image.String() - }() - services[i].Services[j].Start = strings.Replace(services[i].Services[j].Start, oldImage, newImage, 1) - logrus.Infof("upgrade %s image from %s to %s", service.Name, oldImage, newImage) - } - } - } - return service.WriteServicesWithFile(services...) -} - -type controllerServiceClient struct { -} - -func (c *controllerServiceClient) request(url string) error { - res, err := http.Post(url, "", nil) - if err != nil { - return err - } - if res.StatusCode == 200 { - return nil - } - resbody, err := httputil.ParseResponseBody(res.Body, "application/json") - if err != nil { - return err - } - return fmt.Errorf(resbody.Msg) -} -func (c *controllerServiceClient) startService(serviceName string) error { - return c.request(fmt.Sprintf("http://127.0.0.1:6100/services/%s/start", serviceName)) -} -func (c *controllerServiceClient) stopService(serviceName string) error { - return c.request(fmt.Sprintf("http://127.0.0.1:6100/services/%s/stop", serviceName)) -} -func (c *controllerServiceClient) updateConfig() error { - return c.request(fmt.Sprintf("http://127.0.0.1:6100/services/update")) -} diff --git a/discover.v2/k8s_discover.go b/discover.v2/k8s_discover.go index 03e647d89..110c4a0f4 100644 --- a/discover.v2/k8s_discover.go +++ b/discover.v2/k8s_discover.go @@ -14,7 +14,7 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/discover/config" ) diff --git a/discover.v2/k8s_discover_test.go b/discover.v2/k8s_discover_test.go index 27e6b4911..abe5a6109 100644 --- a/discover.v2/k8s_discover_test.go +++ b/discover.v2/k8s_discover_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/discover/config" "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" diff --git a/go.mod b/go.mod index 377a53fbf..7e919249c 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,6 @@ require ( github.com/golang/protobuf v1.4.3 github.com/goodrain/rainbond-oam v0.0.0-20210810094229-f1cd639c451a github.com/goodrain/rainbond-operator v1.3.1-0.20210401055914-f8fe4bf89a21 - github.com/google/go-cmp v0.5.4 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/gorilla/websocket v1.4.2 github.com/gosuri/uitable v0.0.4 @@ -55,8 +54,7 @@ require ( github.com/howeyc/fsnotify v0.9.0 github.com/imdario/mergo v0.3.11 github.com/jinzhu/gorm v1.9.16 - github.com/json-iterator/go v1.1.10 - github.com/kr/pretty v0.2.1 // indirect + github.com/json-iterator/go v1.1.11 github.com/kr/pty v1.1.8 github.com/mattn/go-runewidth v0.0.6 github.com/melbahja/got v0.5.0 @@ -76,11 +74,11 @@ require ( github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7 github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.45.0 github.com/prometheus-operator/prometheus-operator/pkg/client v0.45.0 - github.com/prometheus/client_golang v1.9.0 + github.com/prometheus/client_golang v1.11.0 github.com/prometheus/client_model v0.2.0 - github.com/prometheus/common v0.15.0 - github.com/prometheus/node_exporter v1.0.1 - github.com/prometheus/procfs v0.2.0 + github.com/prometheus/common v0.29.0 + github.com/prometheus/node_exporter v1.2.2 + github.com/prometheus/procfs v0.7.2 github.com/shirou/gopsutil v3.21.3+incompatible github.com/sirupsen/logrus v1.7.0 github.com/smartystreets/goconvey v1.6.4 @@ -92,16 +90,14 @@ require ( github.com/twinj/uuid v1.0.0 github.com/urfave/cli v1.22.2 github.com/yudai/umutex v0.0.0-20150817080136-18216d265c6b - golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad - golang.org/x/net v0.0.0-20201224014010-6772e930b67b - golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 // indirect - golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c + golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e + golang.org/x/net v0.0.0-20210525063256-abc453219eb5 + golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 golang.org/x/tools v0.0.0-20201228162255-34cd474b9958 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e // indirect google.golang.org/grpc v1.33.2 - google.golang.org/protobuf v1.25.0 gopkg.in/alecthomas/kingpin.v2 v2.2.6 gopkg.in/src-d/go-git.v4 v4.13.1 gopkg.in/yaml.v2 v2.4.0 diff --git a/go.sum b/go.sum index ec7b4eb03..08643e1f9 100644 --- a/go.sum +++ b/go.sum @@ -258,6 +258,8 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= @@ -317,7 +319,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/crossplane/crossplane-runtime v0.8.0 h1:IBm5LWVeqB2BjHpkykURHY0PSozXWfIXk7LfWtr27wY= github.com/crossplane/crossplane-runtime v0.8.0/go.mod h1:gNY/21MLBaz5KNP7hmfXbBXp8reYRbwY5B/97Kp4tgM= github.com/crossplane/crossplane-runtime v0.10.0 h1:H8YvMcrm1uzZYpwU/BpxjRQfceVulxgYJMx4rmX38Hg= github.com/crossplane/crossplane-runtime v0.10.0/go.mod h1:cJl5ZZONisre4v6wTmbrC8Jh3AI+erq/lNaxZzv9tnU= @@ -378,7 +379,6 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3 github.com/dsnet/compress v0.0.1/go.mod h1:Aw8dCMJ7RioblQeTqt88akK31OvO8Dhf5JflhBbQEHo= github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/channels v1.1.0 h1:F1taHcn7/F0i8DYqKXJnyhJcVpp2kgFcNePxXtnyu4k= github.com/eapache/channels v1.1.0/go.mod h1:jMm2qB5Ubtg9zLd+inMZd2/NUvXgzmWXsDaLyQIGfH0= @@ -392,7 +392,6 @@ github.com/elastic/go-sysinfo v1.0.1/go.mod h1:O/D5m1VpYLwGjCYzEt63g3Z1uO3jXfwyz github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= github.com/elastic/go-windows v1.0.1/go.mod h1:FoVvqWSun28vaDQPbj2Elfc0JahhPB7WQEGa3c814Ss= -github.com/elazarl/go-bindata-assetfs v0.0.0-20150813044622-d5cac425555c h1:Knqh8y6EeTJQ3FZsqdRq7XfB7/RimWQjBtO4YRzUgcE= github.com/elazarl/go-bindata-assetfs v0.0.0-20150813044622-d5cac425555c/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= @@ -400,6 +399,8 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7fo github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043 h1:I3hLsM87FSASssIrIOGwJCio31dvLkvpYDKn2+r31ec= github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE= +github.com/ema/qdisc v0.0.0-20200603082823-62d0308e3e00 h1:0GHzegkDz/zSrt+Zph1OueNImPdUxoToypnkhhRYTjI= +github.com/ema/qdisc v0.0.0-20200603082823-62d0308e3e00/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.14.2+incompatible h1:uyx8VgUCryEkh7qbr8rEtrA0rGDEJ73F5lOJdB5m3V8= @@ -439,6 +440,7 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -478,6 +480,8 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0 h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +github.com/go-kit/log v0.1.0 h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= @@ -512,7 +516,6 @@ github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwds github.com/go-openapi/jsonpointer v0.17.2/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -522,7 +525,6 @@ github.com/go-openapi/jsonreference v0.17.2/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3Hfo github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= @@ -545,7 +547,6 @@ github.com/go-openapi/spec v0.17.2/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsd github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= github.com/go-openapi/spec v0.19.4/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= @@ -565,7 +566,6 @@ github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/ github.com/go-openapi/swag v0.17.2/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= @@ -584,7 +584,6 @@ github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTM github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= @@ -694,8 +693,6 @@ github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkY github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/goodrain/gorm-bulk-upsert v1.0.1-0.20210608013724-7e7870d16357 h1:kdSSrpA5yNvgqbfpMlEr8bvQWiLc1Uz9g0vYf3JVT7s= github.com/goodrain/gorm-bulk-upsert v1.0.1-0.20210608013724-7e7870d16357/go.mod h1:b7/GgeVNbf/SFw4FYIWslxNV5I10C9Mhf/++3jsDk3M= -github.com/goodrain/rainbond-oam v0.0.0-20210721020036-158e1be667dc h1:hCtxb/Yy4G+wEc2n+yaXx3j4SF/s34zNI8XK5qkHqXk= -github.com/goodrain/rainbond-oam v0.0.0-20210721020036-158e1be667dc/go.mod h1:/dRehR3e1pGexOaIDjA44AHBlVPbb7v+O7GWAVyo740= github.com/goodrain/rainbond-oam v0.0.0-20210810094229-f1cd639c451a h1:a48En+OrB5PzoOJflEEc77eCzh6mODRHkCpx+4kB2/0= github.com/goodrain/rainbond-oam v0.0.0-20210810094229-f1cd639c451a/go.mod h1:/dRehR3e1pGexOaIDjA44AHBlVPbb7v+O7GWAVyo740= github.com/goodrain/rainbond-operator v1.3.1-0.20210401055914-f8fe4bf89a21 h1:iCPI96slvJv88iPc1NJW8zhpkiza0kwB0jtsuZIJLRQ= @@ -714,6 +711,9 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-github/v32 v32.1.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= @@ -843,6 +843,8 @@ github.com/hashicorp/serf v0.9.0/go.mod h1:YL0HO+FifKOW2u1ke99DGVu1zhcpZzNwrLIqB github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hodgesds/perf-utils v0.0.8 h1:6BT6cddpouM0G7eHhLFS+XcqtPvhrzWbPreyIvgFEcg= github.com/hodgesds/perf-utils v0.0.8/go.mod h1:F6TfvsbtrF88i++hou29dTXlI2sfsJv+gRZDtmTJkAs= +github.com/hodgesds/perf-utils v0.2.5 h1:X992/V3OaNJRM8Ivcram8Hhxz4JhWiKI0T8iGCJwk2k= +github.com/hodgesds/perf-utils v0.2.5/go.mod h1:X3dAE1IoPfsSKR2MDhorGY1mORNDOJTZ+0XTrtmoHFI= github.com/howeyc/fsnotify v0.9.0 h1:0gtV5JmOKH4A8SsFxG2BczSeXWWPvcMT0euZt5gDAxY= github.com/howeyc/fsnotify v0.9.0/go.mod h1:41HzSPxBGeFRQKEEwgh49TRw/nKBsYZ2cF1OzPjSJsA= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -850,6 +852,7 @@ github.com/huandu/xstrings v1.3.1 h1:4jgBlKK6tLKFvO8u5pmYjG91cqytmDCDvGh7ECVFfFs github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/illumos/go-kstat v0.0.0-20210513183136-173c9b0a9973/go.mod h1:PoK3ejP3LJkGTzKqRlpvCIFas3ncU02v8zzWDW+g0FY= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -896,12 +899,22 @@ github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 h1:uhL5Gw7BINiiPAo24A2sxkcDI0Jt/sqp1v5xQCniEFA= +github.com/josharian/native v0.0.0-20200817173448-b6b71def0850/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4 h1:nwOc1YaOrYJ37sEBrtWZrdqzK22hiJs3GpDmP3sR2Yw= github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ= +github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok= +github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod h1:cR77jAZG3Y3bsb8hF6fHJbFoyFukLFOkQ98S0pQz3xw= +github.com/jsimonetti/rtnetlink v0.0.0-20201220180245-69540ac93943/go.mod h1:z4c53zj6Eex712ROyh8WI0ihysb5j2ROyV42iNogmAs= +github.com/jsimonetti/rtnetlink v0.0.0-20210122163228-8d122574c736/go.mod h1:ZXpIyOK59ZnN7J0BV99cZUPmsqDRZ3eq5X+st7u/oSA= +github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b/go.mod h1:8w9Rh8m+aHZIG69YPGGem1i5VzoyRC8nw2kA8B+ik5U= +github.com/jsimonetti/rtnetlink v0.0.0-20210525051524-4cc836578190/go.mod h1:NmKSdU4VGSiv1bMsdqNALI4RSvvjtz65tTMCnD05qLo= +github.com/jsimonetti/rtnetlink v0.0.0-20210713125558-2bfdf1dbdbd6 h1:sGihmgAucF8bG1bCYiOp2OOO9WRnZ9YL4kvPSUKXCeI= +github.com/jsimonetti/rtnetlink v0.0.0-20210713125558-2bfdf1dbdbd6/go.mod h1:qdKhcKUxYn3/QvneOvPWXXMPqktEBHnCW98wUTA3rmA= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -910,6 +923,8 @@ github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= @@ -1015,7 +1030,6 @@ github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= @@ -1065,6 +1079,7 @@ github.com/mattn/go-xmlrpc v0.0.3/go.mod h1:mqc2dz7tP5x5BKlCahN/n+hs7OSZKJkS9JsH github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo= github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0= github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc= github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= @@ -1072,8 +1087,20 @@ github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFO github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= github.com/mdlayher/netlink v1.1.0 h1:mpdLgm+brq10nI9zM1BpX1kpDbh3NLl3RSnVq6ZSkfg= github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY= +github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o= +github.com/mdlayher/netlink v1.2.0/go.mod h1:kwVW1io0AZy9A1E2YYgaD4Cj+C+GPkU6klXCMzIJ9p8= +github.com/mdlayher/netlink v1.2.1/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU= +github.com/mdlayher/netlink v1.2.2-0.20210123213345-5cc92139ae3e/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU= +github.com/mdlayher/netlink v1.3.0/go.mod h1:xK/BssKuwcRXHrtN04UBkwQ6dY9VviGGuriDdoPSWys= +github.com/mdlayher/netlink v1.4.0/go.mod h1:dRJi5IABcZpBD2A3D0Mv/AiX8I9uDEu5oGkAVrekmf8= +github.com/mdlayher/netlink v1.4.1 h1:I154BCU+mKlIf7BgcAJB2r7QjveNPty6uNY1g9ChVfI= +github.com/mdlayher/netlink v1.4.1/go.mod h1:e4/KuJ+s8UhfUpO9z00/fDZZmhSrs+oxyqAS9cNgn6Q= +github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00 h1:qEtkL8n1DAHpi5/AOgAckwGQUlMe4+jhL/GMt+GKIks= +github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00/go.mod h1:GAFlyu4/XV68LkQKYzKhIo/WW7j3Zi0YRAz/BOoanUc= github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee h1:hZDujBrW3ye2xxdKNFYT59D4yCH5Q0zLuNBNtysKtok= github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8= +github.com/mdlayher/wifi v0.0.0-20200527114002-84f0b9457fdd h1:50p1vPNK43pzCVX10+5MmiOerbBzC1vR6+sLB3FZewE= +github.com/mdlayher/wifi v0.0.0-20200527114002-84f0b9457fdd/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8= github.com/melbahja/got v0.5.0 h1:tFp5WasOUeZ/SiW82G4SS8clb5Q/Pw6IFYvOcLgt/ZY= github.com/melbahja/got v0.5.0/go.mod h1:z/sG672dxMFNDZtZ9CHBbfuYeTzV0Xqilq6BUEw41oY= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= @@ -1189,7 +1216,6 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs= github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= @@ -1288,6 +1314,8 @@ github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83A github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.9.0 h1:Rrch9mh17XcxvEu9D9DEpb4isxjGBtcevQjKvxPRQIU= github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1309,8 +1337,15 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.29.0 h1:3jqPBvKT4OHAbje2Ql7KeaaSicDBCxMYwEJU1zRJceE= +github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.30.0 h1:JEkYlQnpzrzQFxi6gnukFPdQ+ac82oRhzMcIduJu/Ug= +github.com/prometheus/exporter-toolkit v0.6.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/node_exporter v1.0.1 h1:xTBtauxuNCMhuF4FKiNo2wDCuCAWgS3PoTlVbXLzNO0= github.com/prometheus/node_exporter v1.0.1/go.mod h1:IC23eAmBHxDOtCRUgP9uqJewluDPwjStnbvWJEYtisQ= +github.com/prometheus/node_exporter v1.2.2 h1:ryGA5q75gD2IFnR7rOEXA8sB5Wd1FV+v+J//Jou6bck= +github.com/prometheus/node_exporter v1.2.2/go.mod h1:S/l8/X/V4kdhdG4fPMTgIrUwyYohUWZVHETm+X4yxsI= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1327,6 +1362,9 @@ github.com/prometheus/procfs v0.0.12-0.20200513160535-c6ff04bafc38/go.mod h1:lV6 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.2 h1:zE6zJjRS9S916ptrZ326OU0++1XRwHgxkvCFflxx6Fo= +github.com/prometheus/procfs v0.7.2/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/prometheus v0.0.0-20180315085919-58e2a31db8de/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s= github.com/prometheus/prometheus v1.8.2-0.20200110114423-1e64d757f711/go.mod h1:7U90zPoLkWjEIQcy/rweQla82OCTUzxVHE51G3OhJbI= github.com/prometheus/prometheus v1.8.2-0.20200507164740-ecee9c8abfd1/go.mod h1:S5n0C6tSgdnwWshBUceRx5G1OsjLv/EeZ9t3wIfEtsY= @@ -1340,7 +1378,6 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.4.0 h1:LUa41nrWTQNGhzdsZ5lTnkwbNjj6rXTdazA1cSdjkOY= github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.0 h1:IZRgg4sfrDH7nsAD1Y/Nwj+GzIfEwpJSLjCaNC3SbsI= github.com/rogpeppe/go-internal v1.6.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1354,6 +1391,8 @@ github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/safchain/ethtool v0.0.0-20201023143004-874930cb3ce0 h1:eskphjc5kRCykOJyX7HHVbJCs25/8knprttvrVvEd8o= +github.com/safchain/ethtool v0.0.0-20201023143004-874930cb3ce0/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= @@ -1380,6 +1419,7 @@ github.com/shurcooL/vfsgen v0.0.0-20180825020608-02ddb050ef6b/go.mod h1:TrYk7fJV github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/siebenmann/go-kstat v0.0.0-20200303194639-4e8294f9e9d5 h1:rRF7gJ7t0E1bfqNLwMqgb59eb273kgi+GgLE/yEiDzs= github.com/siebenmann/go-kstat v0.0.0-20200303194639-4e8294f9e9d5/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8= +github.com/siebenmann/go-kstat v0.0.0-20210513183136-173c9b0a9973/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -1472,7 +1512,6 @@ github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMW github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.1.13/go.mod h1:jxau1n+/wyTGLQoCkjok9r5zFa/FxT6eI5HiHKQszjc= github.com/ugorji/go v1.2.1 h1:dz+JxTe7GZQdErTo7SREc1jQj/hFP1k7jyIAwODoW+k= @@ -1480,7 +1519,6 @@ github.com/ugorji/go v1.2.1/go.mod h1:cSVypSfTLm2o9fKxXvQgn3rMmkPXovcWor6Qn5tbFm github.com/ugorji/go/codec v0.0.0-20181022190402-e5e69e061d4f/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.1.13/go.mod h1:oNVt3Dq+FO91WNQ/9JnHKQP2QJxTzoN7wCBFCq1OeuU= github.com/ugorji/go/codec v1.2.1 h1:/TRfW3XKkvWvmAYyCUaQlhoCDGjcvNR8xVVA/l5p/jQ= @@ -1494,7 +1532,6 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4= github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -1542,10 +1579,8 @@ github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUA github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -gitlab.com/poldi1405/go-ansi v1.1.0 h1:BrWoD9TivJKjdnQUwiHVzyqAemDiRpDVBCbbNOPoySQ= gitlab.com/poldi1405/go-ansi v1.1.0/go.mod h1:TLoRttGdPaq5H2qfF7I1cC5Lt2WXtQeIkFurjbUf6OI= gitlab.com/poldi1405/go-indicators v0.0.0-20200820134929-9b373aa411a5/go.mod h1:jn34qwBiXTHz73wD9neAMeJGCeMijVro+WCqk1RJXL4= -gitlab.com/poldi1405/go-indicators v1.0.0 h1:miZ7CisCvAH6G16OuY6ATtC8QUUjVCYabNgVsRYjJIs= gitlab.com/poldi1405/go-indicators v1.0.0/go.mod h1:jn34qwBiXTHz73wD9neAMeJGCeMijVro+WCqk1RJXL4= go.elastic.co/apm v1.5.0/go.mod h1:OdB9sPtM6Vt7oz3VXt7+KR96i9li74qrxBGHTQygFvk= go.elastic.co/apm/module/apmhttp v1.5.0/go.mod h1:1FbmNuyD3ddauwzgVwFB0fqY6KbZt3JkV187tGCYYhY= @@ -1579,11 +1614,9 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/automaxprocs v1.2.0/go.mod h1:YfO3fm683kQpzETxlTGZhGIVmXAhaw3gxeBADbpZtnU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -1625,6 +1658,8 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1650,7 +1685,6 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= @@ -1717,11 +1751,17 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1729,6 +1769,8 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 h1:Lm4OryKCca1vehdsWogr9N4t7NfZxLbJoc/H0w4K4S4= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1753,6 +1795,7 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219203350-90b0e4468f99/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1827,12 +1870,25 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1843,10 +1899,11 @@ golang.org/x/text v0.3.1-0.20180805044716-cb6730876b98/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2030,6 +2087,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -2091,7 +2150,6 @@ gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20200121175148-a6ecf24a6d71/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200603094226-e3079894b1e8/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/grctl/cmd/ansible.go b/grctl/cmd/ansible.go deleted file mode 100644 index a4e0561bd..000000000 --- a/grctl/cmd/ansible.go +++ /dev/null @@ -1,74 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2019 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package cmd - -import ( - "github.com/goodrain/rainbond/grctl/clients" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/urfave/cli" - - ansibleUtil "github.com/goodrain/rainbond/util/ansible" -) - -//NewCmdAnsible ansible config cmd -func NewCmdAnsible() cli.Command { - c := cli.Command{ - Name: "ansible", - Usage: "Manage the ansible environment", - Hidden: true, - Subcommands: []cli.Command{ - cli.Command{ - Name: "hosts", - Usage: "Manage the ansible hosts config environment", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "hosts-file-path", - Usage: "hosts file path", - Value: "/opt/rainbond/rainbond-ansible/inventory/hosts", - }, - cli.StringFlag{ - Name: "config-file-path", - Usage: "install config path", - Value: "/opt/rainbond/rainbond-ansible/scripts/installer/global.sh", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - hosts, err := clients.RegionClient.Nodes().List() - handleErr(err) - return WriteHostsFile(c.String("hosts-file-path"), c.String("config-file-path"), hosts) - }, - }, - }, - } - return c -} - -//WriteHostsFile write hosts file -func WriteHostsFile(filePath, installConfPath string, hosts []*client.HostNode) error { - //get node list from api without condition list. - //so will get condition - for i := range hosts { - nodeWithCondition, _ := clients.RegionClient.Nodes().Get(hosts[i].ID) - if nodeWithCondition != nil { - hosts[i] = nodeWithCondition - } - } - return ansibleUtil.WriteHostsFile(filePath, installConfPath, hosts) -} diff --git a/grctl/cmd/build.go b/grctl/cmd/build.go index c5f8d0af2..f1a5beca3 100644 --- a/grctl/cmd/build.go +++ b/grctl/cmd/build.go @@ -24,13 +24,10 @@ import ( "io/ioutil" "os" "os/exec" - "path" "time" - "github.com/docker/docker/client" "github.com/goodrain/rainbond/builder/parser/code" "github.com/goodrain/rainbond/grctl/clients" - "github.com/goodrain/rainbond/util" "github.com/goodrain/rainbond/util/termtables" "github.com/urfave/cli" corev1 "k8s.io/api/core/v1" @@ -41,7 +38,7 @@ import ( func NewSourceBuildCmd() cli.Command { c := cli.Command{ Subcommands: []cli.Command{ - cli.Command{ + { Name: "list", Usage: "Lists the building tasks pod currently being performed", Flags: []cli.Flag{ @@ -59,7 +56,7 @@ func NewSourceBuildCmd() cli.Command { cmd.Run() }, }, - cli.Command{ + { Name: "log", Usage: "Displays a log of the build task", Flags: []cli.Flag{ @@ -82,11 +79,11 @@ func NewSourceBuildCmd() cli.Command { cmd.Run() }, }, - cli.Command{ + { Name: "maven-setting", Usage: "maven setting config file manage", Subcommands: []cli.Command{ - cli.Command{ + { Name: "list", Flags: []cli.Flag{ cli.StringFlag{ @@ -121,7 +118,7 @@ func NewSourceBuildCmd() cli.Command { fmt.Println(runtable.Render()) }, }, - cli.Command{ + { Name: "get", Flags: []cli.Flag{ cli.StringFlag{ @@ -145,7 +142,7 @@ func NewSourceBuildCmd() cli.Command { fmt.Println(cm.Data["mavensetting"]) }, }, - cli.Command{ + { Name: "update", Usage: "update maven setting config file manage", Flags: []cli.Flag{ @@ -190,7 +187,7 @@ func NewSourceBuildCmd() cli.Command { fmt.Println("Update Success") }, }, - cli.Command{ + { Name: "add", Usage: "add maven setting config file manage", Flags: []cli.Flag{ @@ -244,7 +241,7 @@ func NewSourceBuildCmd() cli.Command { fmt.Println("Add Success") }, }, - cli.Command{ + { Name: "delete", Usage: "delete maven setting config file manage", Flags: []cli.Flag{ @@ -276,42 +273,3 @@ func NewSourceBuildCmd() cli.Command { } return c } - -func getLang(dir string) (string, error) { - lang, err := code.GetLangType(dir) - if err != nil { - return "", err - } - return lang.String(), nil -} - -func getSourceCodeTarFile(dir string) (*os.File, error) { - util.CheckAndCreateDir("/tmp/.grctl/") - var cmd []string - cmd = append(cmd, "tar", "-cf", "/tmp/.grctl/sourcebuild.tar", "--exclude=.svn", "--exclude=.git", "./") - source := exec.Command(cmd[0], cmd[1:]...) - source.Dir = dir - if err := source.Run(); err != nil { - return nil, err - } - return os.OpenFile("/tmp/.grctl/sourcebuild.tar", os.O_RDONLY, 0755) -} - -func clear() { - os.RemoveAll("/tmp/.grctl/sourcebuild.tar") -} - -func createDockerCli() *client.Client { - cli, err := client.NewEnvClient() - if err != nil { - fatal("docker client create failure:"+err.Error(), 1) - } - return cli -} - -func prepare(dir string) { - util.CheckAndCreateDir(path.Join(dir, ".cache")) - util.CheckAndCreateDir(path.Join(dir, ".release")) - os.Chown(path.Join(dir, ".cache"), 200, 200) - os.Chown(path.Join(dir, ".release"), 200, 200) -} diff --git a/grctl/cmd/cluster.go b/grctl/cmd/cluster.go index ffac6d15d..101dbfb63 100644 --- a/grctl/cmd/cluster.go +++ b/grctl/cmd/cluster.go @@ -19,45 +19,16 @@ package cmd import ( - "context" - "fmt" - "os" - "os/exec" - "strconv" - "strings" - - rainbondv1alpha1 "github.com/goodrain/rainbond-operator/api/v1alpha1" - "github.com/goodrain/rainbond/grctl/clients" "github.com/goodrain/rainbond/grctl/cluster" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/util/termtables" - "github.com/gosuri/uitable" "github.com/urfave/cli" - "gopkg.in/yaml.v2" - "k8s.io/apimachinery/pkg/types" ) //NewCmdCluster cmd for cluster func NewCmdCluster() cli.Command { c := cli.Command{ Name: "cluster", - Usage: "show curren cluster datacenter info", + Usage: "Cluster management commands", Subcommands: []cli.Command{ - { - Name: "config", - Usage: "prints the current cluster configuration", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "namespace, ns", - Usage: "rainbond default namespace", - Value: "rbd-system", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - return printConfig(c) - }, - }, { Name: "upgrade", Usage: "upgrade cluster", @@ -83,213 +54,6 @@ func NewCmdCluster() cli.Command { }, }, }, - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "namespace,ns", - Usage: "rainbond default namespace", - Value: "rbd-system", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - return getClusterInfo(c) - }, } return c } - -func getClusterInfo(c *cli.Context) error { - namespace := c.String("namespace") - //show cluster resource detail - clusterInfo, err := clients.RegionClient.Cluster().GetClusterInfo() - if err != nil { - if err.Code == 502 { - fmt.Println("The current cluster node manager is not working properly.") - fmt.Println("You can query the service log for troubleshooting.") - os.Exit(1) - } - fmt.Println("The current cluster api server is not working properly.") - fmt.Println("You can query the service log for troubleshooting.") - os.Exit(1) - } - healthCPUFree := fmt.Sprintf("%.2f", float32(clusterInfo.HealthCapCPU)-clusterInfo.HealthReqCPU) - unhealthCPUFree := fmt.Sprintf("%.2f", float32(clusterInfo.UnhealthCapCPU)-clusterInfo.UnhealthReqCPU) - healthMemFree := fmt.Sprintf("%d", clusterInfo.HealthCapMem-clusterInfo.HealthReqMem) - unhealthMemFree := fmt.Sprintf("%d", clusterInfo.UnhealthCapMem-clusterInfo.UnhealthReqMem) - table := uitable.New() - table.AddRow("", "Used/Total", "Use of", "Health free", "Unhealth free") - table.AddRow("CPU(Core)", fmt.Sprintf("%.2f/%d", clusterInfo.ReqCPU, clusterInfo.CapCPU), - fmt.Sprintf("%d", func() int { - if clusterInfo.CapCPU == 0 { - return 0 - } - return int(clusterInfo.ReqCPU * 100 / float32(clusterInfo.CapCPU)) - }())+"%", "\033[0;32;32m"+healthCPUFree+"\033[0m \t\t", unhealthCPUFree) - table.AddRow("Memory(Mb)", fmt.Sprintf("%d/%d", clusterInfo.ReqMem, clusterInfo.CapMem), - fmt.Sprintf("%d", func() int { - if clusterInfo.CapMem == 0 { - return 0 - } - return int(float32(clusterInfo.ReqMem*100) / float32(clusterInfo.CapMem)) - }())+"%", "\033[0;32;32m"+healthMemFree+" \033[0m \t\t", unhealthMemFree) - table.AddRow("DistributedDisk(Gb)", fmt.Sprintf("%d/%d", clusterInfo.ReqDisk/1024/1024/1024, clusterInfo.CapDisk/1024/1024/1024), - fmt.Sprintf("%.2f", func() float32 { - if clusterInfo.CapDisk == 0 { - return 0 - } - return float32(clusterInfo.ReqDisk*100) / float32(clusterInfo.CapDisk) - }())+"%") - fmt.Println(table) - - //show component health status - printComponentStatus(namespace) - //show node detail - serviceTable := termtables.CreateTable() - serviceTable.AddHeaders("Uid", "IP", "HostName", "NodeRole", "Status") - list, err := clients.RegionClient.Nodes().List() - handleErr(err) - var rest []*client.HostNode - for _, v := range list { - if v.Role.HasRule("manage") || !v.Role.HasRule("compute") { - handleStatus(serviceTable, v) - } else { - rest = append(rest, v) - } - } - if len(rest) > 0 { - serviceTable.AddSeparator() - } - for _, v := range rest { - handleStatus(serviceTable, v) - } - fmt.Println(serviceTable.Render()) - return nil -} - -func getServicesHealthy(nodes []*client.HostNode) map[string][]map[string]string { - - StatusMap := make(map[string][]map[string]string, 30) - roleList := make([]map[string]string, 0, 10) - - for _, n := range nodes { - for _, v := range n.NodeStatus.Conditions { - status, ok := StatusMap[string(v.Type)] - if !ok { - StatusMap[string(v.Type)] = []map[string]string{map[string]string{"type": string(v.Type), "status": string(v.Status), "message": string(v.Message), "hostname": n.HostName}} - } else { - list := status - list = append(list, map[string]string{"type": string(v.Type), "status": string(v.Status), "message": string(v.Message), "hostname": n.HostName}) - StatusMap[string(v.Type)] = list - } - - } - roleList = append(roleList, map[string]string{"role": n.Role.String(), "status": n.NodeStatus.Status}) - - } - StatusMap["Role"] = roleList - return StatusMap -} - -func summaryResult(list []map[string]string) (status string, errMessage string) { - upNum := 0 - err := "" - for _, v := range list { - if v["type"] == "OutOfDisk" || v["type"] == "DiskPressure" || v["type"] == "MemoryPressure" || v["type"] == "InstallNotReady" { - if v["status"] == "False" { - upNum++ - } else { - err = "" - err = err + v["hostname"] + ":" + v["message"] + "/" - } - } else { - if v["status"] == "True" { - upNum++ - } else { - err = "" - err = err + v["hostname"] + ":" + v["message"] + "/" - } - } - } - if upNum == len(list) { - status = "\033[0;32;32m" + strconv.Itoa(upNum) + "/" + strconv.Itoa(len(list)) + " \033[0m" - } else { - status = "\033[0;31;31m " + strconv.Itoa(upNum) + "/" + strconv.Itoa(len(list)) + " \033[0m" - } - errMessage = err - return -} - -func handleNodeReady(list []map[string]string) bool { - trueNum := 0 - for _, v := range list { - if v["status"] == "True" { - trueNum++ - } - } - if trueNum == len(list) { - return true - } - return false -} - -func clusterStatus(roleList []map[string]string, ReadyList []map[string]string) (string, string) { - var clusterStatus string - var errMessage string - readyStatus := handleNodeReady(ReadyList) - if readyStatus { - clusterStatus = "\033[0;32;32mhealthy\033[0m" - errMessage = "" - } else { - clusterStatus = "\033[0;31;31munhealthy\033[0m" - errMessage = "There is a service exception in the cluster" - } - var computeFlag bool - var manageFlag bool - var gatewayFlag bool - for _, v := range roleList { - if strings.Contains(v["role"], "compute") && v["status"] == "running" { - computeFlag = true - } - if strings.Contains(v["role"], "manage") && v["status"] == "running" { - manageFlag = true - } - if strings.Contains(v["role"], "gateway") && v["status"] == "running" { - gatewayFlag = true - } - } - if !manageFlag { - clusterStatus = "\033[0;33;33munavailable\033[0m" - errMessage = "No management nodes are available in the cluster" - } - if !computeFlag { - clusterStatus = "\033[0;33;33munavailable\033[0m" - errMessage = "No compute nodes are available in the cluster" - } - if !gatewayFlag { - clusterStatus = "\033[0;33;33munavailable\033[0m" - errMessage = "No gateway nodes are available in the cluster" - } - return clusterStatus, errMessage -} - -func printComponentStatus(namespace string) { - fmt.Println("----------------------------------------------------------------------------------") - fmt.Println() - cmd := exec.Command("kubectl", "get", "pod", "-n", namespace, "-o", "wide") - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - cmd.Run() - fmt.Println() -} - -func printConfig(c *cli.Context) error { - var config rainbondv1alpha1.RainbondCluster - err := clients.RainbondKubeClient.Get(context.Background(), - types.NamespacedName{Namespace: c.String("namespace"), Name: "rainbondcluster"}, &config) - if err != nil { - showError(err.Error()) - } - out, _ := yaml.Marshal(config) - fmt.Println(string(out)) - return nil -} diff --git a/grctl/cmd/cmd.go b/grctl/cmd/cmd.go index 5d3f242fe..ded681313 100644 --- a/grctl/cmd/cmd.go +++ b/grctl/cmd/cmd.go @@ -19,10 +19,6 @@ package cmd import ( - "fmt" - "os" - "strings" - conf "github.com/goodrain/rainbond/cmd/grctl/option" "github.com/goodrain/rainbond/grctl/clients" "github.com/sirupsen/logrus" @@ -35,11 +31,8 @@ func GetCmds() []cli.Command { cmds = append(cmds, NewCmdInstall()) cmds = append(cmds, NewCmdService()) cmds = append(cmds, NewCmdTenant()) - cmds = append(cmds, NewCmdNode()) cmds = append(cmds, NewCmdCluster()) cmds = append(cmds, NewSourceBuildCmd()) - cmds = append(cmds, NewCmdAnsible()) - cmds = append(cmds, NewCmdLicense()) cmds = append(cmds, NewCmdGateway()) cmds = append(cmds, NewCmdEnvoy()) cmds = append(cmds, NewCmdConfig()) @@ -82,19 +75,6 @@ func CommonWithoutRegion(c *cli.Context) { } } -// fatal prints the message (if provided) and then exits. If V(2) or greater, -// glog.Fatal is invoked for extended information. -func fatal(msg string, code int) { - if len(msg) > 0 { - // add newline if needed - if !strings.HasSuffix(msg, "\n") { - msg += "\n" - } - fmt.Fprint(os.Stderr, msg) - } - os.Exit(code) -} - //GetTenantNamePath Get Tenantname Path func GetTenantNamePath() string { tenantnamepath, err := conf.GetTenantNamePath() diff --git a/grctl/cmd/config.go b/grctl/cmd/config.go index af152529c..35b0aa878 100644 --- a/grctl/cmd/config.go +++ b/grctl/cmd/config.go @@ -44,7 +44,7 @@ func NewCmdConfig() cli.Command { Value: "rbd-system", }, }, - Usage: "show region config file", + Usage: "Show region config file", Action: func(c *cli.Context) { Common(c) namespace := c.String("namespace") diff --git a/grctl/cmd/envoy.go b/grctl/cmd/envoy.go index 85881ebfe..87173665c 100644 --- a/grctl/cmd/envoy.go +++ b/grctl/cmd/envoy.go @@ -36,7 +36,7 @@ import ( func NewCmdEnvoy() cli.Command { c := cli.Command{ Name: "envoy", - Usage: "envoy management related commands", + Usage: "Envoy management related commands", Flags: []cli.Flag{ cli.StringFlag{ Name: "address", diff --git a/grctl/cmd/license.go b/grctl/cmd/license.go deleted file mode 100644 index e28460ddd..000000000 --- a/grctl/cmd/license.go +++ /dev/null @@ -1,86 +0,0 @@ -package cmd - -import ( - "fmt" - - licutil "github.com/goodrain/rainbond/util/license" - "github.com/gosuri/uitable" - "github.com/urfave/cli" -) - -//NewCmdLicense - -func NewCmdLicense() cli.Command { - c := cli.Command{ - Name: "license", - Usage: "rainbond license manage cmd", - Subcommands: []cli.Command{ - { - Name: "show", - Usage: "show license information", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "lic-path, lp", - Usage: "license file path", - Value: "/opt/rainbond/etc/license/license.yb", - }, - cli.StringFlag{ - Name: "lic-so-path, lsp", - Usage: "license.so file path", - Value: "/opt/rainbond/etc/license/license.so", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - licPath := c.String("lic-path") - licSoPath := c.String("lic-so-path") - licInfo, err := licutil.GetLicInfo(licPath, licSoPath) - if err != nil { - showError(err.Error()) - } - - if licInfo == nil { - fmt.Println("non-enterprise version, no license information") - return nil - } - - table := uitable.New() - table.AddRow("授权公司名称:", licInfo.Company) - table.AddRow("授权公司代码:", licInfo.Code) - table.AddRow("授权单数据中心节点数:", licInfo.Node) - table.AddRow("授权开始时间:", licInfo.StartTime) - table.AddRow("授权到期时间:", licInfo.EndTime) - table.AddRow("授权key:", licInfo.LicKey) - fmt.Println(table) - return nil - }, - }, - { - Name: "genkey", - Usage: "generate a license key for the machine", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "lic-so-path, lsp", - Usage: "license.so file path", - Value: "/opt/rainbond/etc/license/license.so", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - licSoPath := c.String("lic-so-path") - licKey, err := licutil.GenLicKey(licSoPath) - if err != nil { - showError(err.Error()) - } - - if licKey == "" { - fmt.Println("non-enterprise version, no license key") - return nil - } - fmt.Println(licKey) - return nil - }, - }, - }, - } - return c -} diff --git a/grctl/cmd/node.go b/grctl/cmd/node.go deleted file mode 100644 index 020bdf7ff..000000000 --- a/grctl/cmd/node.go +++ /dev/null @@ -1,736 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package cmd - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "os" - "strconv" - "strings" - "time" - - "github.com/goodrain/rainbond/util/ansible" - - "github.com/fatih/color" - - "github.com/goodrain/rainbond/api/util" - "github.com/goodrain/rainbond/grctl/clients" - "github.com/goodrain/rainbond/node/nodem/client" - coreutil "github.com/goodrain/rainbond/util" - "github.com/goodrain/rainbond/util/termtables" - "github.com/gosuri/uitable" - "github.com/sirupsen/logrus" - "github.com/urfave/cli" -) - -func handleErr(err *util.APIHandleError) { - if err != nil { - if err.Err != nil { - fmt.Printf(err.String()) - os.Exit(1) - } else { - fmt.Printf("API return %d", err.Code) - } - } -} -func showError(m string) { - fmt.Printf("Error: %s\n", m) - os.Exit(1) -} - -func showSuccessMsg(m string) { - fmt.Printf("Success: %s\n", m) - os.Exit(0) -} - -func getExternalIP(path string, node []*client.HostNode) []string { - var result []string - if fileExist(path) { - externalIP, err := ioutil.ReadFile(path) - if err != nil { - return nil - } - strings.TrimSpace(string(externalIP)) - result = append(result, strings.TrimSpace(string(externalIP))) - } else { - for _, v := range node { - result = append(result, v.InternalIP) - } - } - return result -} -func fileExist(path string) bool { - _, err := os.Stat(path) - if err == nil { - return true - } - if os.IsNotExist(err) { - return false - } - return false -} - -type nodeStatusShow struct { - status string - message []string - color color.Attribute -} - -func (n nodeStatusShow) String() string { - color := color.New(n.color) - if len(n.message) > 0 { - return color.Sprintf("%s(%s)", n.status, strings.Join(n.message, ",")) - } - return color.Sprintf("%s", n.status) -} -func getStatusShow(v *client.HostNode) (status string) { - nss := nodeStatusShow{ - status: v.Status, - color: color.FgGreen, - } - if v.Role.HasRule("compute") && !v.NodeStatus.CurrentScheduleStatus { - nss.message = append(nss.message, "unschedulable") - nss.color = color.FgYellow - } - if !v.NodeStatus.NodeHealth { - nss.message = append(nss.message, "unhealth") - nss.color = color.FgRed - } - if v.NodeStatus.Status == client.Offline { - nss.message = append(nss.message, client.Offline) - nss.color = color.FgRed - } - - result := nss.String() - if strings.Contains(result, "unknown") { - result = "unknown" - } - return result -} -func handleStatus(serviceTable *termtables.Table, v *client.HostNode) { - serviceTable.AddRow(v.ID, v.InternalIP, v.HostName, v.Role.String(), getStatusShow(v)) -} - -func handleConditionResult(serviceTable *termtables.Table, conditions []client.NodeCondition) { - for _, v := range conditions { - if v.Type == client.NodeReady { - continue - } - var formatReady string - if v.Status == client.ConditionFalse || v.Status == client.ConditionUnknown { - if v.Type == client.OutOfDisk || v.Type == client.MemoryPressure || v.Type == client.DiskPressure || v.Type == client.InstallNotReady { - formatReady = "\033[0;32;32m false \033[0m" - } else { - formatReady = fmt.Sprintf("\033[0;31;31m %s \033[0m", v.Status) - } - } else { - if v.Type == client.OutOfDisk || v.Type == client.MemoryPressure || v.Type == client.DiskPressure || v.Type == client.InstallNotReady { - formatReady = "\033[0;31;31m true \033[0m" - } else { - formatReady = "\033[0;32;32m true \033[0m" - } - } - serviceTable.AddRow(string(v.Type), formatReady, - v.LastHeartbeatTime.Format(time.RFC3339)[:19], - v.LastTransitionTime.Format(time.RFC3339)[:19], - handleMessage(string(v.Status), v.Message), - ) - } -} - -func extractReady(serviceTable *termtables.Table, conditions []client.NodeCondition, name string) { - for _, v := range conditions { - if string(v.Type) == name { - var formatReady string - if v.Status == client.ConditionFalse { - formatReady = "\033[0;31;31m false \033[0m" - } else { - formatReady = "\033[0;32;32m true \033[0m" - } - serviceTable.AddRow("\033[0;33;33m "+string(v.Type)+" \033[0m", formatReady, - v.LastHeartbeatTime.Format(time.RFC3339)[:19], - v.LastTransitionTime.Format(time.RFC3339)[:19], - handleMessage(string(v.Status), v.Message)) - } - } -} - -func handleMessage(status string, message string) string { - if status == "True" { - return "" - } - return message -} - -//NewCmdNode NewCmdNode -func NewCmdNode() cli.Command { - c := cli.Command{ - Name: "node", - Usage: "rainbond node manage cmd", - Subcommands: []cli.Command{ - { - Name: "get", - Usage: "get hostID/internal ip", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "output,o", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - id := c.Args().First() - if id == "" { - logrus.Errorf("need args") - return nil - } - v, err := clients.RegionClient.Nodes().Get(id) - handleErr(err) - if c.String("output") == "json" { - jsIndent, _ := json.MarshalIndent(v, "", "\t") - fmt.Print(string(jsIndent)) - os.Exit(0) - } - table := uitable.New() - fmt.Printf("-------------------Node Information-----------------------\n") - table.AddRow("uuid", v.ID) - table.AddRow("host_name", v.HostName) - table.AddRow("health", v.NodeStatus.NodeHealth) - table.AddRow("create_time", v.CreateTime) - table.AddRow("internal_ip", v.InternalIP) - table.AddRow("external_ip", v.ExternalIP) - table.AddRow("role", v.Role) - table.AddRow("mode", v.Mode) - table.AddRow("available_memory", fmt.Sprintf("%d GB", v.AvailableMemory/1024/1024/1024)) - table.AddRow("available_cpu", fmt.Sprintf("%d Core", v.AvailableCPU)) - table.AddRow("status", v.Status) - table.AddRow("schedulable(set)", !v.Unschedulable) - table.AddRow("schedulable(current)", v.NodeStatus.CurrentScheduleStatus) - table.AddRow("version", v.NodeStatus.Version) - table.AddRow("up", v.NodeStatus.NodeUpdateTime) - table.AddRow("last_down_time", v.NodeStatus.LastDownTime) - fmt.Println(table) - fmt.Printf("-------------------Node Labels-----------------------\n") - labeltable := uitable.New() - // TODO: distinguish system labels and custom labels - for k, v := range v.Labels { - labeltable.AddRow(k, v) - } - fmt.Println(labeltable) - fmt.Printf("-------------------Service health-----------------------\n") - serviceTable := termtables.CreateTable() - serviceTable.AddHeaders("Condition", "Health", "LastUpdateTime", "LastChangeTime", "Message") - extractReady(serviceTable, v.NodeStatus.Conditions, "Ready") - handleConditionResult(serviceTable, v.NodeStatus.Conditions) - fmt.Println(serviceTable.Render()) - return nil - }, - }, - { - Name: "list", - Usage: "list", - Action: func(c *cli.Context) error { - Common(c) - list, err := clients.RegionClient.Nodes().List() - handleErr(err) - serviceTable := termtables.CreateTable() - serviceTable.AddHeaders("Uid", "IP", "HostName", "NodeRole", "Status") - var rest []*client.HostNode - for _, v := range list { - if v.Role.HasRule("manage") { - handleStatus(serviceTable, v) - } else { - rest = append(rest, v) - } - } - if len(rest) > 0 { - serviceTable.AddSeparator() - } - for _, v := range rest { - handleStatus(serviceTable, v) - } - fmt.Println(serviceTable.Render()) - return nil - }, - }, - { - Name: "resource", - Usage: "resource", - Action: func(c *cli.Context) error { - Common(c) - list, err := clients.RegionClient.Nodes().List() - handleErr(err) - serviceTable := termtables.CreateTable() - serviceTable.AddHeaders("Uid", "HostName", "CapCpu(核)", "CapMemory(M)", "UsedCpu(核)", "UsedMemory(M)", "CpuLimits(核)", "MemoryLimits(M)", "CpuUsageRate(%)", "MemoryUsedRate(%)") - for _, v := range list { - if v.Role.HasRule("compute") && v.Status != "offline" { - nodeResource, err := clients.RegionClient.Nodes().GetNodeResource(v.ID) - handleErr(err) - CPURequests := strconv.FormatFloat(float64(nodeResource.CPURequests)/float64(1000), 'f', 2, 64) - CPULimits := strconv.FormatFloat(float64(nodeResource.CPULimits)/float64(1000), 'f', 2, 64) - serviceTable.AddRow(v.ID, v.HostName, nodeResource.CPU, nodeResource.MemR, CPURequests, - nodeResource.MemoryRequests, CPULimits, - nodeResource.MemoryLimits, - nodeResource.CPURequestsR, - nodeResource.MemoryRequestsR) - } - } - fmt.Println(serviceTable.Render()) - return nil - }, - }, - // { - // Name: "up", - // Usage: "up hostID", - // Action: func(c *cli.Context) error { - // Common(c) - // id := c.Args().First() - // if id == "" { - // logrus.Errorf("need hostID") - // return nil - // } - // err := clients.RegionClient.Nodes().Up(id) - // handleErr(err) - // fmt.Printf("up node %s success\n", id) - // return nil - // }, - // }, - // { - // Name: "down", - // Usage: "down hostID", - // Action: func(c *cli.Context) error { - // Common(c) - // id := c.Args().First() - // if id == "" { - // logrus.Errorf("need hostID") - // return nil - // } - // err := clients.RegionClient.Nodes().Down(id) - // handleErr(err) - // fmt.Printf("down node %s success\n", id) - // return nil - // }, - // }, - { - Name: "cordon", - Usage: "Mark node as unschedulable", - Action: func(c *cli.Context) error { - Common(c) - id := c.Args().First() - if id == "" { - logrus.Errorf("need hostID") - return nil - } - node, err := clients.RegionClient.Nodes().Get(id) - handleErr(err) - if !node.Role.HasRule("compute") { - logrus.Errorf("管理节点不支持此功能") - return nil - } - err = clients.RegionClient.Nodes().UnSchedulable(id) - handleErr(err) - fmt.Printf("cordon node %s success\n", id) - return nil - }, - }, - { - Name: "uncordon", - Usage: "Mark node as schedulable", - Action: func(c *cli.Context) error { - Common(c) - id := c.Args().First() - if id == "" { - logrus.Errorf("need hostID") - return nil - } - node, err := clients.RegionClient.Nodes().Get(id) - handleErr(err) - if !node.Role.HasRule("compute") { - logrus.Errorf("管理节点不支持此功能") - return nil - } - err = clients.RegionClient.Nodes().ReSchedulable(id) - handleErr(err) - fmt.Printf("uncordon node %s success\n", id) - return nil - }, - }, - { - Name: "delete", - Usage: "delete hostID", - Action: func(c *cli.Context) error { - Common(c) - id := c.Args().First() - if id == "" { - logrus.Errorf("need hostID") - return nil - } - err := clients.RegionClient.Nodes().Delete(id) - handleErr(err) - fmt.Printf("delete node %s success\n", id) - return nil - }, - }, - { - Name: "rule", - Usage: "rule ruleName", - Action: func(c *cli.Context) error { - Common(c) - rule := c.Args().First() - if rule == "" { - logrus.Errorf("need rule name") - return nil - } - hostnodes, err := clients.RegionClient.Nodes().GetNodeByRule(rule) - handleErr(err) - serviceTable := termtables.CreateTable() - serviceTable.AddHeaders("Uid", "IP", "HostName", "NodeRole", "Status") - for _, v := range hostnodes { - handleStatus(serviceTable, v) - } - return nil - }, - }, - { - Name: "label", - Usage: "handle node labels", - Subcommands: []cli.Command{ - cli.Command{ - Name: "add", - Usage: "add label for the specified node", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "key", - Value: "", - Usage: "the label key", - }, - cli.StringFlag{ - Name: "val", - Value: "", - Usage: "the label val", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - hostID := c.Args().First() - if hostID == "" { - logrus.Errorf("need hostID") - return nil - } - k := c.String("key") - v := c.String("val") - if k == "" || v == "" { - logrus.Errorf("label key or value can not be empty") - return nil - } - err := clients.RegionClient.Nodes().Label(hostID).Add(k, v) - handleErr(err) - return nil - }, - }, - cli.Command{ - Name: "delete", - Usage: "delete the label of the specified node", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "key", - Value: "", - Usage: "the label key", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - hostID := c.Args().First() - if hostID == "" { - logrus.Errorf("need hostID") - return nil - } - k := c.String("key") - err := clients.RegionClient.Nodes().Label(hostID).Delete(k) - handleErr(err) - return nil - }, - }, - cli.Command{ - Name: "list", - Usage: "list the label of the specified node", - Flags: []cli.Flag{}, - Action: listNodeLabelsCommand, - }, - }, - }, - { - Name: "condition", - Usage: "handle node conditions, support delete and list", - Subcommands: []cli.Command{ - cli.Command{ - Name: "delete", - Usage: "delete condition for the specified node", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "name,n", - Value: "", - Usage: "the condition type name", - }, - }, - Action: func(c *cli.Context) error { - Common(c) - hostID := c.Args().First() - if hostID == "" { - logrus.Errorf("need hostID") - return nil - } - conditionType := c.String("name") - _, err := clients.RegionClient.Nodes().Condition(hostID).Delete(client.NodeConditionType(conditionType)) - handleErr(err) - showSuccessMsg("delete condition success") - return nil - }, - }, - cli.Command{ - Name: "list", - Usage: "list the conditions of the specified node", - Action: func(c *cli.Context) error { - Common(c) - hostID := c.Args().First() - if hostID == "" { - logrus.Errorf("need hostID") - return nil - } - conditions, err := clients.RegionClient.Nodes().Condition(hostID).List() - handleErr(err) - serviceTable := termtables.CreateTable() - serviceTable.AddHeaders("Condition", "Health", "LastUpdateTime", "LastChangeTime", "Message") - handleConditionResult(serviceTable, conditions) - fmt.Println(serviceTable.Render()) - return nil - }, - }, - }, - }, - // { - // Name: "add", - // Usage: "Add a node into the cluster", - // Flags: []cli.Flag{ - // cli.StringFlag{ - // Name: "hostname,host", - // Usage: "The option is required", - // }, - // cli.StringFlag{ - // Name: "hosts-file-path", - // Usage: "hosts file path", - // Value: "/opt/rainbond/rainbond-ansible/inventory/hosts", - // }, - // cli.StringFlag{ - // Name: "config-file-path", - // Usage: "ansible global config file path", - // Value: "/opt/rainbond/rainbond-ansible/scripts/installer/global.sh", - // }, - // cli.StringFlag{ - // Name: "internal-ip,iip", - // Usage: "The option is required", - // }, - // cli.StringFlag{ - // Name: "external-ip,eip", - // Usage: "Publish the ip address for external connection", - // }, - // cli.StringFlag{ - // Name: "root-pass,p", - // Usage: "Specify the root password of the target host for login, this option conflicts with private-key", - // }, - // cli.StringFlag{ - // Name: "private-key,key", - // Usage: "Specify the private key file for login, this option conflicts with root-pass", - // }, - // cli.StringSliceFlag{ - // Name: "role,r", - // Usage: "The option is required, the allowed values are: [manage|compute|gateway]", - // }, - // cli.StringFlag{ - // Name: "podCIDR,cidr", - // Usage: "Defines the IP assignment range for the specified node, which is automatically specified if not specified", - // }, - // cli.StringFlag{ - // Name: "id", - // Usage: "Specify node ID", - // }, - // cli.BoolFlag{ - // Name: "install", - // Usage: "Automatic installation after addition", - // }, - // }, - // Action: addNodeCommand, - // }, - // { - - // Name: "install", - // Usage: "Install a exist node into the cluster", - // Flags: []cli.Flag{ - // cli.StringFlag{ - // Name: "hosts-file-path", - // Usage: "hosts file path", - // Value: "/opt/rainbond/rainbond-ansible/inventory/hosts", - // }, - // cli.StringFlag{ - // Name: "config-file-path", - // Usage: "ansible global config file path", - // Value: "/opt/rainbond/rainbond-ansible/scripts/installer/global.sh", - // }, - // }, - // Action: installNodeCommand, - // }, - }, - } - return c -} - -func isNodeReady(node *client.HostNode) bool { - for _, v := range node.NodeStatus.Conditions { - if strings.ToLower(string(v.Type)) == "ready" { - if strings.ToLower(string(v.Status)) == "true" { - return true - } - } - } - return false -} - -func installNode(node *client.HostNode) { - // start add node script - logrus.Infof("Begin install node %s", node.ID) - // node stauts: installing - if _, err := clients.RegionClient.Nodes().UpdateNodeStatus(node.ID, client.Installing); err != nil { - logrus.Errorf("update node %s status failure %s", node.ID, err.Error()) - } - // install node - option := ansible.NodeInstallOption{ - HostRole: node.Role.String(), - HostName: node.HostName, - InternalIP: node.InternalIP, - RootPass: node.RootPass, - KeyPath: node.KeyPath, - NodeID: node.ID, - Stdin: os.Stdin, - Stdout: os.Stdout, - Stderr: os.Stderr, - } - - err := ansible.RunNodeInstallCmd(option) - - if err != nil { - logrus.Errorf("Error executing shell script %s", err.Error()) - if _, err := clients.RegionClient.Nodes().UpdateNodeStatus(node.ID, client.InstallFailed); err != nil { - logrus.Errorf("update node %s status failure %s", node.ID, err.Error()) - } - return - } - - // node status success - if _, err := clients.RegionClient.Nodes().UpdateNodeStatus(node.ID, client.InstallSuccess); err != nil { - logrus.Errorf("update node %s status failure %s", node.ID, err.Error()) - } - fmt.Println("------------------------------------") - fmt.Printf("Install node %s successful \n", node.ID) - if node.Role.HasRule("compute") { - fmt.Printf("You can do 'grctl node up %s' to get this compute node to join the cluster workload \n", node.ID) - } -} - -func addNodeCommand(c *cli.Context) error { - Common(c) - if !c.IsSet("role") { - showError("role must not null") - } - if c.String("internal-ip") == "" || !coreutil.CheckIP(c.String("internal-ip")) { - showError(fmt.Sprintf("internal ip(%s) is invalid", c.String("internal-ip"))) - } - if c.String("root-pass") != "" && c.String("private-key") != "" { - showError("Options private-key and root-pass are conflicting") - } - if c.String("root-pass") == "" && c.String("private-key") == "" { - showError("Options private-key and root-pass must set one") - } - var node client.APIHostNode - role := c.StringSlice("role") - for _, r := range role { - if strings.Contains(r, ",") { - node.Role.Add(strings.Split(r, ",")...) - continue - } - node.Role.Add(r) - } - if err := node.Role.Validation(); err != nil { - showError(err.Error()) - } - node.HostName = c.String("hostname") - node.RootPass = c.String("root-pass") - node.InternalIP = c.String("internal-ip") - node.ExternalIP = c.String("external-ip") - node.PodCIDR = c.String("podCIDR") - node.Privatekey = c.String("private-key") - node.AutoInstall = false - node.ID = c.String("id") - renode, err := clients.RegionClient.Nodes().Add(&node) - handleErr(err) - if c.Bool("install") { - nodes, err := clients.RegionClient.Nodes().List() - handleErr(err) - //write ansible hosts file - WriteHostsFile(c.String("hosts-file-path"), c.String("config-file-path"), nodes) - installNode(renode) - } else { - fmt.Printf("success add %s node %s \n you install it by running: grctl node install %s \n", renode.Role, renode.ID, renode.ID) - } - return nil -} - -func installNodeCommand(c *cli.Context) error { - Common(c) - nodeID := c.Args().First() - if nodeID == "" { - showError("node id can not be empty") - } - node, err := clients.RegionClient.Nodes().Get(nodeID) - handleErr(err) - nodes, err := clients.RegionClient.Nodes().List() - handleErr(err) - //write ansible hosts file - WriteHostsFile(c.String("hosts-file-path"), c.String("config-file-path"), nodes) - installNode(node) - return nil -} - -func listNodeLabelsCommand(c *cli.Context) error { - Common(c) - hostID := c.Args().First() - if hostID == "" { - logrus.Errorf("need hostID") - return nil - } - labels, err := clients.RegionClient.Nodes().Label(hostID).List() - handleErr(err) - labelTable := termtables.CreateTable() - labelTable.AddHeaders("LableKey", "LableValue") - for k, v := range labels { - labelTable.AddRow(k, v) - } - fmt.Print(labelTable.Render()) - return nil -} diff --git a/grctl/cmd/utils.go b/grctl/cmd/utils.go index 4c031fc99..e44f2befa 100644 --- a/grctl/cmd/utils.go +++ b/grctl/cmd/utils.go @@ -17,3 +17,30 @@ // along with this program. If not, see . package cmd + +import ( + "fmt" + "os" + + "github.com/goodrain/rainbond/api/util" +) + +func handleErr(err *util.APIHandleError) { + if err != nil { + if err.Err != nil { + fmt.Printf(err.String()) + os.Exit(1) + } else { + fmt.Printf("API return %d", err.Code) + } + } +} +func showError(m string) { + fmt.Printf("Error: %s\n", m) + os.Exit(1) +} + +func showSuccessMsg(m string) { + fmt.Printf("Success: %s\n", m) + os.Exit(0) +} diff --git a/hack/contrib/docker/node/.dockerignore b/hack/contrib/docker/node-proxy/.dockerignore similarity index 100% rename from hack/contrib/docker/node/.dockerignore rename to hack/contrib/docker/node-proxy/.dockerignore diff --git a/hack/contrib/docker/node/Dockerfile b/hack/contrib/docker/node-proxy/Dockerfile similarity index 100% rename from hack/contrib/docker/node/Dockerfile rename to hack/contrib/docker/node-proxy/Dockerfile diff --git a/hack/contrib/docker/node-proxy/entrypoint.sh b/hack/contrib/docker/node-proxy/entrypoint.sh new file mode 100755 index 000000000..c25a3ba4f --- /dev/null +++ b/hack/contrib/docker/node-proxy/entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash +if [ "$1" = "bash" ]; then + exec /bin/bash +elif [ "$1" = "version" ]; then + /run/rainbond-node-proxy version +else + exec /run/rainbond-node-proxy $@ +fi diff --git a/hack/contrib/docker/node/entrypoint.sh b/hack/contrib/docker/node/entrypoint.sh deleted file mode 100755 index 019848d50..000000000 --- a/hack/contrib/docker/node/entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -if [ "$1" = "bash" ];then - exec /bin/bash -elif [ "$1" = "version" ];then - /run/rainbond-node version -else - exec /run/rainbond-node $@ -fi \ No newline at end of file diff --git a/node/api/controller/ConfController.go b/node/api/controller/ConfController.go deleted file mode 100644 index fae2fda97..000000000 --- a/node/api/controller/ConfController.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "net/http" - - "github.com/goodrain/rainbond/node/api/model" - - httputil "github.com/goodrain/rainbond/util/http" - "github.com/sirupsen/logrus" -) - -//GetDatacenterConfig 获取数据中心配置 -func GetDatacenterConfig(w http.ResponseWriter, r *http.Request) { - c, err := datacenterConfig.GetDataCenterConfig() - if err != nil { - httputil.ReturnError(r, w, 500, err.Error()) - return - } - logrus.Infof("task details is %v", c) - httputil.ReturnSuccess(r, w, c) -} - -//PutDatacenterConfig 更新数据中心配置 -func PutDatacenterConfig(w http.ResponseWriter, r *http.Request) { - var gconfig model.GlobalConfig - if ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &gconfig, nil); !ok { - return - } - if err := datacenterConfig.PutDataCenterConfig(&gconfig); err != nil { - httputil.ReturnError(r, w, 500, err.Error()) - return - } - httputil.ReturnSuccess(r, w, &gconfig) -} diff --git a/node/api/controller/app_controller.go b/node/api/controller/app_controller.go deleted file mode 100644 index 2c09ee966..000000000 --- a/node/api/controller/app_controller.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "net/http" - "strings" - - httputil "github.com/goodrain/rainbond/util/http" - - "github.com/go-chi/chi" - "github.com/sirupsen/logrus" -) - -//APPRegister 服务注册 -func APPRegister(w http.ResponseWriter, r *http.Request) { - appName := strings.TrimSpace(chi.URLParam(r, "app_name")) - logrus.Infof(appName) -} - -//APPDiscover 服务发现 -//用于实时性要求不高的场景,例如docker发现event_log地址 -//请求API返回可用地址 -func APPDiscover(w http.ResponseWriter, r *http.Request) { - appName := strings.TrimSpace(chi.URLParam(r, "app_name")) - endpoints := appService.FindAppEndpoints(appName) - if endpoints == nil || len(endpoints) == 0 { - httputil.ReturnError(r, w, 404, "app endpoints not found") - return - } - httputil.ReturnSuccess(r, w, endpoints) -} - -//APPList 列出已注册应用 -func APPList(w http.ResponseWriter, r *http.Request) { - -} diff --git a/node/api/controller/cluster_controller.go b/node/api/controller/cluster_controller.go deleted file mode 100644 index 6e0e7b910..000000000 --- a/node/api/controller/cluster_controller.go +++ /dev/null @@ -1,484 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "fmt" - "net/http" - "runtime" - "strings" - - "github.com/shirou/gopsutil/disk" - v1 "k8s.io/api/core/v1" - - api "github.com/goodrain/rainbond/util/http" - - "github.com/go-chi/chi" - "github.com/sirupsen/logrus" - - "strconv" - - "github.com/goodrain/rainbond/node/api/model" - httputil "github.com/goodrain/rainbond/util/http" -) - -//GetNodeDetails GetNodeDetails -func GetNodeDetails(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node")) - hostNode, err := nodeService.GetNode(nodeUID) - if err != nil { - logrus.Infof("getting node by uid %s", nodeUID) - outRespDetails(w, 404, "error get resource "+nodeUID+" from etcd "+err.Error(), "找不到指定节点", nil, nil) - return - } - node, erre := kubecli.GetNodeByName(hostNode.HostName) - if erre != nil { - outRespDetails(w, 404, "error get node "+nodeUID+" from core "+err.Error(), "找不到指定节点", nil, nil) - return - } - d := &model.NodeDetails{} - d.Status = hostNode.Status - d.Name = node.Name - d.CreationTimestamp = node.CreationTimestamp.String() - d.Role = hostNode.Role - d.Labels = node.Labels - d.Annotations = node.Annotations - d.Conditions = nil - addMap := make(map[string]string) - for _, v := range node.Status.Addresses { - addMap[string(v.Type)] = v.Address - } - d.Addresses = addMap - d.Conditions = node.Status.Conditions - ca := make(map[string]string) - - ca["cpu"] = string(node.Status.Capacity.Cpu().String()) - ca["memory"] = strconv.Itoa(convertMemoryToMBInt(node.Status.Capacity.Memory().String(), false)) + " M" - ca["pods"] = string(node.Status.Capacity.Pods().String()) - d.Capacity = ca - ac := make(map[string]string) - ac["cpu"] = string(node.Status.Allocatable.Cpu().String()) - am := node.Status.Allocatable.Memory().String() - ac["memory"] = strconv.Itoa(convertMemoryToMBInt(am, false)) + " M" - ac["pods"] = string(node.Status.Allocatable.Pods().String()) - d.Allocatable = ac - d.SystemInfo = node.Status.NodeInfo - ps, erre := kubecli.GetPodsByNodes(node.Name) - if erre != nil { - logrus.Errorf("error get node pod %s", hostNode.ID) - } - rs := make(map[string]string) - cpuR := 0 - cpuRR := 0 - cpuL := 0 - cpuLR := 0 - memR := 0 - memRR := 0 - memL := 0 - memLR := 0 - pods := []*model.Pods{} - for _, v := range ps { - pod := &model.Pods{} - pod.Namespace = v.Namespace - serviceID := v.Labels["name"] - if serviceID == "" { - continue - } - pod.Name = v.Name - pod.Id = serviceID - - lc := v.Spec.Containers[0].Resources.Limits.Cpu().String() - cpuL += getCPUInt(lc) - lm := v.Spec.Containers[0].Resources.Limits.Memory().String() - - memL += convertMemoryToMBInt(lm, true) - rc := v.Spec.Containers[0].Resources.Requests.Cpu().String() - cpuR += getCPUInt(rc) - rm := v.Spec.Containers[0].Resources.Requests.Memory().String() - - memR += convertMemoryToMBInt(rm, true) - - logrus.Infof("namespace %s,podid %s :limit cpu %s,requests cpu %s,limit mem %s,request mem %s", pod.Namespace, pod.Id, lc, rc, lm, rm) - pod.CPURequests = rc - pod.CPURequestsR = getFinalRate(true, rc, ca["cpu"], ca["memory"]) - crr, _ := strconv.Atoi(pod.CPURequestsR) - cpuRR += crr - pod.CPULimits = lc - pod.CPULimitsR = getFinalRate(true, lc, ca["cpu"], ca["memory"]) - clr, _ := strconv.Atoi(pod.CPULimitsR) - cpuLR += clr - pod.MemoryRequests = strconv.Itoa(convertMemoryToMBInt(rm, true)) + " M" - pod.MemoryRequestsR = getFinalRate(false, strconv.Itoa(convertMemoryToMBInt(rm, true)), ca["cpu"], ca["memory"]) - mrr, _ := strconv.Atoi(pod.MemoryRequestsR) - memRR += mrr - - pod.MemoryLimits = strconv.Itoa(convertMemoryToMBInt(lm, true)) + " M" - pod.MemoryLimitsR = getFinalRate(false, strconv.Itoa(convertMemoryToMBInt(lm, true)), ca["cpu"], ca["memory"]) - mlr, _ := strconv.Atoi(pod.MemoryLimitsR) - memLR += mlr - pods = append(pods, pod) - } - d.NonterminatedPods = pods - rs["CPURequests"] = strconv.Itoa(cpuR) - rs["CPURequestsR"] = strconv.Itoa(cpuRR) - rs["CPULimits"] = strconv.Itoa(cpuL) - rs["CPULimitsR"] = strconv.Itoa(cpuLR) - rs["MemoryRequests"] = strconv.Itoa(memR) - rs["MemoryRequestsR"] = strconv.Itoa(memRR) - rs["MemoryLimits"] = strconv.Itoa(memL) - rs["MemoryLimitsR"] = strconv.Itoa(memLR) - d.AllocatedResources = rs - outRespSuccess(w, d, nil) - -} -func convertByteToMB(a string) int { - i, _ := strconv.Atoi(a) - return i / 1024 / 1024 -} -func convertMemoryToMBInt(mem string, pod bool) (v int) { - if pod { - if len(mem) != 1 { - if strings.Contains(mem, "G") || strings.Contains(mem, "g") { - mem = mem[0 : len(mem)-2] - v, _ = strconv.Atoi(mem) - v = v * 1024 - - } else if strings.Contains(mem, "M") || strings.Contains(mem, "m") { - mem = mem[0 : len(mem)-2] - v, _ = strconv.Atoi(mem) - - } else if strings.Contains(mem, "K") || strings.Contains(mem, "k") { - mem = mem[0 : len(mem)-2] - vi, _ := strconv.Atoi(mem) - v = vi / 1024 - - } else { - vi, _ := strconv.Atoi(mem) - v = vi / 1024 / 1024 - - } - - } else { - v, _ = strconv.Atoi(mem) - - } - logrus.Infof("input mem is %s,output mem is %d", mem, v) - } else { - if len(mem) != 1 { - - if strings.Contains(mem, "G") { - mem = mem[0 : len(mem)-2] - v, _ = strconv.Atoi(mem) - v = v * 1024 - - } else if strings.Contains(mem, "M") { - mem = mem[0 : len(mem)-2] - v, _ = strconv.Atoi(mem) - - } else if strings.Contains(mem, "K") { - mem = mem[0 : len(mem)-2] - vi, _ := strconv.Atoi(mem) - v = vi / 1024 - - } else { - vi, _ := strconv.Atoi(mem) - v = vi / 1024 - - } - - } else { - v, _ = strconv.Atoi(mem) - - } - } - return -} - -func getCPUInt(v string) int { - if len(v) != 1 { - v = v[0 : len(v)-1] - vi, _ := strconv.Atoi(v) - return vi - } - vi, _ := strconv.Atoi(v) - return vi -} - -func getFinalRate(cpu bool, value string, capCPU, capMemMB string) (result string) { - defer func() { // 必须要先声明defer,否则不能捕获到panic异常 - if err := recover(); err != nil { - logrus.Warnf("get resource rate failed,details :%s", err) - result = "0" - } - }() - - if cpu { - if len(value) != 1 { - value = value[0 : len(value)-1] - } - i, _ := strconv.Atoi(value) - capCPUInt, _ := strconv.Atoi(capCPU) - capCPUInt *= 1000 - result = strconv.Itoa(i * 100 / capCPUInt) - } else { - capMemMB = capMemMB[0 : len(capMemMB)-2] - capMemMBInt, _ := strconv.Atoi(capMemMB) - if len(value) != 1 { - - u, err := strconv.Atoi(value) - if err != nil { - logrus.Infof("err occurred details:%s", err.Error()) - } - - result = strconv.Itoa(u * 100 / (capMemMBInt)) - } else { - result = value - } - - } - return -} - -//GetNodeBasic GetNodeBasic -func GetNodeBasic(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node")) - hostnode, err := nodeService.GetNode(nodeUID) - if err != nil { - logrus.Infof("getting resource of node uid %s", nodeUID) - outRespDetails(w, 404, "error get resource "+nodeUID+" from etcd "+err.Error(), "找不到指定节点", nil, nil) - return - } - outRespSuccess(w, hostnode, nil) -} - -//Resources specified node scheduler resources info -func Resources(w http.ResponseWriter, r *http.Request) { - result := new(model.Resource) - cpuR := 0 - memR := 0 - ps, _ := kubecli.GetAllPods() - for _, pv := range ps { - for _, c := range pv.Spec.Containers { - rc := c.Resources.Requests.Cpu().String() - rm := c.Resources.Requests.Memory().String() - cpuR += getCPUInt(rc) - memR += convertMemoryToMBInt(rm, true) - } - } - result.CPU = cpuR - result.MemR = memR - logrus.Infof("get cpu %v and mem %v", cpuR, memR) - api.ReturnSuccess(r, w, result) -} - -//CapRes CapRes -func CapRes(w http.ResponseWriter, r *http.Request) { - nodes, err := kubecli.GetNodes() - if err != nil { - api.ReturnError(r, w, 500, err.Error()) - return - } - var capCPU int64 - var capMem int64 - for _, v := range nodes { - capCPU += v.Status.Capacity.Cpu().Value() - capMem += v.Status.Capacity.Memory().Value() - } - - result := new(model.Resource) - result.CPU = int(capCPU) - result.MemR = int(capMem) - logrus.Infof("get cpu %v and mem %v", capCPU, capMem) - api.ReturnSuccess(r, w, result) -} - -//ClusterInfo ClusterInfo -func ClusterInfo(w http.ResponseWriter, r *http.Request) { - nodes, err := kubecli.GetNodes() - if err != nil { - api.ReturnError(r, w, 500, err.Error()) - return - } - var healthCapCPU int64 - var healthCapMem int64 - var unhealthCapCPU int64 - var unhealthCapMem int64 - usedNodeList := make([]*v1.Node, len(nodes)) - for i, v := range nodes { - nodeHealth := false - for _, con := range v.Status.Conditions { - if con.Type == v1.NodeReady { - nodeHealth = con.Status == v1.ConditionTrue - break - } - } - if nodeHealth { - healthCapCPU += v.Status.Allocatable.Cpu().Value() - healthCapMem += v.Status.Allocatable.Memory().Value() - } else { - unhealthCapCPU += v.Status.Allocatable.Cpu().Value() - unhealthCapMem += v.Status.Allocatable.Memory().Value() - } - if v.Spec.Unschedulable == false { - usedNodeList = append(usedNodeList, nodes[i]) - } - } - - var healthcpuR int64 - var healthmemR int64 - var unhealthCPUR int64 - var unhealthMemR int64 - var nodeAllocatableResourceList = make(map[string]*model.NodeResource, len(usedNodeList)) - var maxAllocatableMemory *model.NodeResource - for _, node := range usedNodeList { - if node == nil { - continue - } - pods, _ := kubecli.GetPodsByNodes(node.Name) - nodeAllocatableResource := model.NewResource(node.Status.Allocatable) - nodeHealth := false - for _, con := range node.Status.Conditions { - if con.Type == v1.NodeReady { - nodeHealth = con.Status == v1.ConditionTrue - break - } - } - for _, pod := range pods { - nodeAllocatableResource.AllowedPodNumber-- - for _, c := range pod.Spec.Containers { - nodeAllocatableResource.Memory -= c.Resources.Requests.Memory().Value() - nodeAllocatableResource.MilliCPU -= c.Resources.Requests.Cpu().MilliValue() - nodeAllocatableResource.EphemeralStorage -= c.Resources.Requests.StorageEphemeral().Value() - if nodeHealth { - healthcpuR += c.Resources.Requests.Cpu().MilliValue() - healthmemR += c.Resources.Requests.Memory().Value() - } else { - unhealthCPUR += c.Resources.Requests.Cpu().MilliValue() - unhealthMemR += c.Resources.Requests.Memory().Value() - } - } - } - nodeAllocatableResourceList[node.Name] = nodeAllocatableResource - // Gets the node resource with the maximum remaining scheduling memory - if maxAllocatableMemory == nil { - maxAllocatableMemory = nodeAllocatableResource - } else { - if nodeAllocatableResource.Memory > maxAllocatableMemory.Memory { - maxAllocatableMemory = nodeAllocatableResource - } - } - } - var diskstauts *disk.UsageStat - if runtime.GOOS != "windows" { - diskstauts, _ = disk.Usage("/grdata") - } else { - diskstauts, _ = disk.Usage(`z:\\`) - } - var diskCap, reqDisk uint64 - if diskstauts != nil { - diskCap = diskstauts.Total - reqDisk = diskstauts.Used - } - - result := &model.ClusterResource{ - CapCPU: int(healthCapCPU + unhealthCapCPU), - CapMem: int(healthCapMem+unhealthCapMem) / 1024 / 1024, - HealthCapCPU: int(healthCapCPU), - HealthCapMem: int(healthCapMem) / 1024 / 1024, - UnhealthCapCPU: int(unhealthCapCPU), - UnhealthCapMem: int(unhealthCapMem) / 1024 / 1024, - ReqCPU: float32(healthcpuR+unhealthCPUR) / 1000, - ReqMem: int(healthmemR+unhealthMemR) / 1024 / 1024, - HealthReqCPU: float32(healthcpuR) / 1000, - HealthReqMem: int(healthmemR) / 1024 / 1024, - UnhealthReqCPU: float32(unhealthCPUR) / 1000, - UnhealthReqMem: int(unhealthMemR) / 1024 / 1024, - ComputeNode: len(nodes), - CapDisk: diskCap, - ReqDisk: reqDisk, - MaxAllocatableMemoryNodeResource: maxAllocatableMemory, - } - allnodes, _ := nodeService.GetAllNode() - result.AllNode = len(allnodes) - for _, n := range allnodes { - if n.Status != "running" || !n.NodeStatus.NodeHealth { //node unhealth status - result.NotReadyNode++ - } - } - api.ReturnSuccess(r, w, result) -} - -func outSuccess(w http.ResponseWriter) { - s := `{"ok":true}` - w.WriteHeader(200) - fmt.Fprint(w, s) -} - -//GetServicesHealthy get service healthy -func GetServicesHealthy(w http.ResponseWriter, r *http.Request) { - healthMap, err := nodeService.GetServicesHealthy() - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, healthMap) -} - -//GetNodeResource - -func GetNodeResource(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - hostNode, apierr := nodeService.GetNode(nodeUID) - if apierr != nil { - api.ReturnError(r, w, 500, apierr.Error()) - return - } - node, err := kubecli.GetNodeByName(hostNode.ID) - if err != nil { - api.ReturnError(r, w, 500, err.Error()) - return - } - var capCPU int64 - var capMem int64 - - capCPU = node.Status.Capacity.Cpu().Value() - capMem = node.Status.Capacity.Memory().Value() - - var cpuR int64 - var memR int64 - - pods, _ := kubecli.GetPodsByNodes(hostNode.ID) - for _, pod := range pods { - for _, c := range pod.Spec.Containers { - rc := c.Resources.Requests.Cpu().MilliValue() - rm := c.Resources.Requests.Memory().Value() - cpuR += rc - memR += rm - } - } - - podMemRequestMB := memR / 1024 / 1024 - result := &model.NodeResourceResponse{ - CapCPU: int(capCPU), - CapMem: int(capMem) / 1024 / 1024, - ReqCPU: float32(cpuR) / 1000, - ReqMem: int(podMemRequestMB), - } - - api.ReturnSuccess(r, w, result) -} diff --git a/node/api/controller/comman.go b/node/api/controller/comman.go index 9059a0d82..5db76aa5f 100644 --- a/node/api/controller/comman.go +++ b/node/api/controller/comman.go @@ -21,37 +21,16 @@ package controller import ( "net/http" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/config" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/core/service" - "github.com/goodrain/rainbond/node/kubecache" - "github.com/goodrain/rainbond/node/masterserver" + "k8s.io/client-go/kubernetes" ) -var datacenterConfig *config.DataCenterConfig -var prometheusService *service.PrometheusService -var appService *service.AppService -var nodeService *service.NodeService var discoverService *service.DiscoverAction -var kubecli kubecache.KubeClient //Init 初始化 -func Init(c *option.Conf, ms *masterserver.MasterServer, kube kubecache.KubeClient) { - if ms != nil { - prometheusService = service.CreatePrometheusService(c) - datacenterConfig = config.GetDataCenterConfig() - nodeService = service.CreateNodeService(c, ms.Cluster, kube) - } - appService = service.CreateAppService(c) +func Init(c *option.Conf, kube *kubernetes.Clientset) { discoverService = service.CreateDiscoverActionManager(c, kube) - kubecli = kube -} - -//Exist 退出 -func Exist(i interface{}) { - if datacenterConfig != nil { - datacenterConfig.Stop() - } } //Ping Ping diff --git a/node/api/controller/discoverController.go b/node/api/controller/discoverController.go index fe5515dc1..51557a69a 100644 --- a/node/api/controller/discoverController.go +++ b/node/api/controller/discoverController.go @@ -25,60 +25,14 @@ import ( "github.com/go-chi/chi" httputil "github.com/goodrain/rainbond/util/http" - "github.com/sirupsen/logrus" ) -//ServiceDiscover service discover service -func ServiceDiscover(w http.ResponseWriter, r *http.Request) { - serviceInfo := chi.URLParam(r, "service_name") - sds, err := discoverService.DiscoverService(serviceInfo) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnNoFomart(r, w, 200, sds) -} - -//ListenerDiscover ListenerDiscover -func ListenerDiscover(w http.ResponseWriter, r *http.Request) { - tenantService := chi.URLParam(r, "tenant_service") - serviceNodes := chi.URLParam(r, "service_nodes") - lds, err := discoverService.DiscoverListeners(tenantService, serviceNodes) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnNoFomart(r, w, 200, lds) -} - -//ClusterDiscover ClusterDiscover -func ClusterDiscover(w http.ResponseWriter, r *http.Request) { - tenantService := chi.URLParam(r, "tenant_service") - serviceNodes := chi.URLParam(r, "service_nodes") - cds, err := discoverService.DiscoverClusters(tenantService, serviceNodes) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnNoFomart(r, w, 200, cds) -} - -//RoutesDiscover RoutesDiscover -//no impl -func RoutesDiscover(w http.ResponseWriter, r *http.Request) { - namespace := chi.URLParam(r, "tenant_id") - serviceNodes := chi.URLParam(r, "service_nodes") - routeConfig := chi.URLParam(r, "route_config") - logrus.Debugf("route_config is %s, namespace %s, serviceNodes %s", routeConfig, namespace, serviceNodes) - w.WriteHeader(200) -} - //PluginResourcesConfig discover plugin config func PluginResourcesConfig(w http.ResponseWriter, r *http.Request) { namespace := chi.URLParam(r, "tenant_id") serviceAlias := chi.URLParam(r, "service_alias") pluginID := chi.URLParam(r, "plugin_id") - ss, err := discoverService.GetPluginConfigs(namespace, serviceAlias, pluginID) + ss, err := discoverService.GetPluginConfigs(r.Context(), namespace, serviceAlias, pluginID) if err != nil { util.CreateAPIHandleError(500, err).Handle(r, w) return diff --git a/node/api/controller/node_controller.go b/node/api/controller/node_controller.go deleted file mode 100644 index 2e7a1fce0..000000000 --- a/node/api/controller/node_controller.go +++ /dev/null @@ -1,576 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "encoding/json" - "errors" - "fmt" - "io/ioutil" - "net/http" - "strconv" - "strings" - - "github.com/go-chi/chi" - "github.com/goodrain/rainbond/node/api/model" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/utils" - httputil "github.com/goodrain/rainbond/util/http" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/common/version" - "github.com/sirupsen/logrus" -) - -func init() { - prometheus.MustRegister(version.NewCollector("node_exporter")) -} - -//InstallNode install a node -func InstallNode(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - node, err := nodeService.GetNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - if err := nodeService.InstallNode(node); err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, node) -} - -//AddNode add a node -func AddNode(w http.ResponseWriter, r *http.Request) { - isInstall := r.FormValue("is_install") - var node client.APIHostNode - if ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &node, nil); !ok { - return - } - rnode, err := nodeService.AddNode(&node) - if err != nil { - err.Handle(r, w) - return - } - if isInstall == "true" || node.AutoInstall { - if err := nodeService.InstallNode(rnode); err != nil { - err.Handle(r, w) - return - } - } - httputil.ReturnSuccess(r, w, rnode) -} - -//GetNodes 获取全部节点 -func GetNodes(w http.ResponseWriter, r *http.Request) { - searchNodeList := make([]client.HostNode, 0) - searchKey := r.FormValue("search_key") - nodes, err := nodeService.GetAllNode() - if err != nil { - err.Handle(r, w) - return - } - for _, node := range nodes { - var nodevalue = *node - //list value need simplify - nodevalue.NodeStatus.Conditions = nil - nodevalue.NodeStatus.KubeNode = nil - if searchKey != "" { - if strings.Contains(node.HostName, searchKey) || strings.Contains(node.InternalIP, searchKey) || strings.Contains(node.ExternalIP, searchKey) { - searchNodeList = append(searchNodeList, nodevalue) - } - } else { - searchNodeList = append(searchNodeList, nodevalue) - } - } - httputil.ReturnSuccess(r, w, searchNodeList) -} - -//GetNode 获取一个节点详情 -func GetNode(w http.ResponseWriter, r *http.Request) { - nodeID := chi.URLParam(r, "node_id") - node, err := nodeService.GetNode(nodeID) - if err != nil { - err.Handle(r, w) - return - } - node.DeleteCondition("OutOfDisk", "MemoryPressure", "DiskPressure", "PIDPressure") - httputil.ReturnSuccess(r, w, node) -} - -func getKubeletMessage(v *client.HostNode) string { - - for _, condiction := range v.NodeStatus.Conditions { - if condiction.Type == "kubelet" { - return condiction.Message - } - } - return "" -} - -//GetRuleNodes 获取分角色节点 -func GetRuleNodes(w http.ResponseWriter, r *http.Request) { - rule := chi.URLParam(r, "rule") - allowRule := map[string]struct{}{ - "compute": struct{}{}, - "manage": struct{}{}, - "storage": struct{}{}, - "gateway": struct{}{}, - } - if _, ok := allowRule[rule]; !ok { - httputil.ReturnError(r, w, 400, rule+" rule is not define") - return - } - nodes, err := nodeService.GetAllNode() - if err != nil { - err.Handle(r, w) - return - } - var masternodes []*client.HostNode - for _, node := range nodes { - if node.Role.HasRule(rule) { - masternodes = append(masternodes, node) - } - } - httputil.ReturnSuccess(r, w, masternodes) -} - -//Resource - -func Resource(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - if len(nodeUID) == 0 { - err := utils.APIHandleError{ - Code: 404, - Err: fmt.Errorf("can't find node by node_id %s", nodeUID), - } - err.Handle(r, w) - return - } - res, err := nodeService.GetNodeResource(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, res) -} - -//CheckNode - -func CheckNode(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - if len(nodeUID) == 0 { - err := utils.APIHandleError{ - Code: 404, - Err: fmt.Errorf("can't find node by node_id %s", nodeUID), - } - err.Handle(r, w) - return - } - final, err := nodeService.CheckNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - - httputil.ReturnSuccess(r, w, &final) -} -func dealSeq(tasks []*model.ExecedTask) { - var firsts []*model.ExecedTask - var keymap map[string]*model.ExecedTask - for _, v := range tasks { - keymap[v.ID] = v - if len(v.Depends) == 0 { - v.Seq = 0 - firsts = append(firsts, v) - } - } - for _, v := range firsts { - dealLoopSeq(v, keymap) - } -} -func dealLoopSeq(task *model.ExecedTask, keymap map[string]*model.ExecedTask) { - for _, next := range task.Next { - keymap[next].Seq = task.Seq + 1 - dealLoopSeq(keymap[next], keymap) - } -} - -//DeleteRainbondNode 节点删除 -func DeleteRainbondNode(w http.ResponseWriter, r *http.Request) { - nodeID := chi.URLParam(r, "node_id") - err := nodeService.DeleteNode(nodeID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, "delete success") -} - -//Cordon 不可调度 -func Cordon(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - if err := nodeService.CordonNode(nodeUID, true); err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, nil) -} - -//UnCordon 可调度 -func UnCordon(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - if err := nodeService.CordonNode(nodeUID, false); err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, nil) -} - -//PutLabel 更新节点标签 -func PutLabel(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - var label = make(map[string]string) - in, error := ioutil.ReadAll(r.Body) - if error != nil { - logrus.Errorf("error read from request ,details %s", error.Error()) - return - } - error = json.Unmarshal(in, &label) - if error != nil { - logrus.Errorf("error unmarshal labels ,details %s", error.Error()) - return - } - labels, err := nodeService.PutNodeLabel(nodeUID, label) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, labels) -} - -//DeleteLabel delete node label -func DeleteLabel(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - var label = make(map[string]string) - in, error := ioutil.ReadAll(r.Body) - if error != nil { - logrus.Errorf("error read from request ,details %s", error.Error()) - return - } - error = json.Unmarshal(in, &label) - if error != nil { - logrus.Errorf("error unmarshal labels ,details %s", error.Error()) - return - } - labels, err := nodeService.DeleteNodeLabel(nodeUID, label) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, labels) -} - -//GetLabel get node label -func GetLabel(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - labels, err := nodeService.GetNodeLabels(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, labels) -} - -//ListNodeCondition list node condition -func ListNodeCondition(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - node, err := nodeService.GetNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, node.NodeStatus.Conditions) -} - -//DeleteNodeCondition delete node condition -func DeleteNodeCondition(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - conditionType := strings.TrimSpace(chi.URLParam(r, "condition")) - node, err := nodeService.GetNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - for _, condition := range node.NodeStatus.Conditions { - if string(condition.Type) == conditionType { - node, err := nodeService.DeleteNodeCondition(nodeUID, condition.Type) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, node.NodeStatus.Conditions) - return - } - } - httputil.ReturnError(r, w, 404, "condition not exist") -} - -//DownNode 节点下线,计算节点操作 -func DownNode(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - n, err := nodeService.GetNode(nodeUID) - if err != nil { - err := utils.APIHandleError{ - Code: 402, - Err: errors.New(fmt.Sprint("Can not get node by nodeID")), - } - err.Handle(r, w) - return - } - if n.Role.HasRule("manage") { - nodes, _ := nodeService.GetAllNode() - if nodes != nil && len(nodes) > 0 { - count := 0 - for _, node := range nodes { - if node.Role.HasRule("manage") { - count++ - } - } - if count < 2 { - err := utils.APIHandleError{ - Code: 403, - Err: errors.New(fmt.Sprint("manage node less two, can not down it.")), - } - err.Handle(r, w) - return - } - } - } - logrus.Info("Node down by node api controller: ", nodeUID) - node, err := nodeService.DownNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, node) -} - -//UpNode 节点上线,计算节点操作 -func UpNode(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - logrus.Info("Node up by node api controller: ", nodeUID) - node, err := nodeService.UpNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, node) -} - -//Instances get node service instances -func Instances(w http.ResponseWriter, r *http.Request) { - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - node, err := nodeService.GetNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - ps, error := kubecli.GetPodsByNodes(nodeUID) - if error != nil { - httputil.ReturnError(r, w, 404, error.Error()) - return - } - - pods := []*model.Pods{} - var cpuR int64 - var cpuL int64 - var memR int64 - var memL int64 - capCPU := node.AvailableCPU - capMEM := node.AvailableMemory - k8snode, _ := kubecli.GetNode(nodeUID) - if k8snode != nil { - capCPU = k8snode.Status.Allocatable.Cpu().Value() - capMEM = k8snode.Status.Allocatable.Memory().Value() - } - for _, v := range ps { - pod := &model.Pods{} - pod.Namespace = v.Namespace - serviceID := v.Labels["name"] - if serviceID == "" { - continue - } - pod.Name = v.Name - pod.Id = serviceID - - ConditionsStatuss := v.Status.Conditions - for _, val := range ConditionsStatuss { - if val.Type == "Ready" { - pod.Status = string(val.Status) - } - } - - //lc := v.Spec.Containers[0].Resources.Limits.Cpu().MilliValue() - lc := v.Spec.Containers - for _, v := range lc { - cpuL += v.Resources.Limits.Cpu().MilliValue() - } - - //lm := v.Spec.Containers[0].Resources.Limits.Memory().Value() - lm := v.Spec.Containers - for _, v := range lm { - memL += v.Resources.Limits.Memory().Value() - } - - //rc := v.Spec.Containers[0].Resources.Requests.Cpu().MilliValue() - rc := v.Spec.Containers - for _, v := range rc { - cpuR += v.Resources.Requests.Cpu().MilliValue() - } - - //rm := v.Spec.Containers[0].Resources.Requests.Memory().Value() - rm := v.Spec.Containers - for _, v := range rm { - memR += v.Resources.Requests.Memory().Value() - } - - pod.CPURequests = strconv.FormatFloat(float64(cpuR)/float64(1000), 'f', 2, 64) - - pod.CPURequestsR = strconv.FormatFloat(float64(cpuR/10)/float64(capCPU), 'f', 1, 64) - - pod.CPULimits = strconv.FormatFloat(float64(cpuL)/float64(1000), 'f', 2, 64) - pod.CPULimitsR = strconv.FormatFloat(float64(cpuL/10)/float64(capCPU), 'f', 1, 64) - - pod.MemoryRequests = strconv.Itoa(int(memR)) - pod.MemoryRequestsR = strconv.FormatFloat(float64(memR*100)/float64(capMEM), 'f', 1, 64) - pod.TenantName = v.Labels["tenant_name"] - pod.MemoryLimits = strconv.Itoa(int(memL)) - pod.MemoryLimitsR = strconv.FormatFloat(float64(memL*100)/float64(capMEM), 'f', 1, 64) - - pods = append(pods, pod) - } - httputil.ReturnSuccess(r, w, pods) -} - -//临时存在 -func outJSON(w http.ResponseWriter, data interface{}) { - outJSONWithCode(w, http.StatusOK, data) -} -func outRespSuccess(w http.ResponseWriter, bean interface{}, data []interface{}) { - outRespDetails(w, 200, "success", "成功", bean, data) - //m:=model.ResponseBody{} - //m.Code=200 - //m.Msg="success" - //m.MsgCN="成功" - //m.Body.List=data -} -func outRespDetails(w http.ResponseWriter, code int, msg, msgcn string, bean interface{}, data []interface{}) { - w.Header().Set("Content-Type", "application/json") - m := model.ResponseBody{} - m.Code = code - m.Msg = msg - m.MsgCN = msgcn - m.Body.List = data - m.Body.Bean = bean - - s := "" - b, err := json.Marshal(m) - - if err != nil { - s = `{"error":"json.Marshal error"}` - w.WriteHeader(http.StatusInternalServerError) - } else { - s = string(b) - w.WriteHeader(code) - } - fmt.Fprint(w, s) -} -func outJSONWithCode(w http.ResponseWriter, httpCode int, data interface{}) { - w.Header().Set("Content-Type", "application/json") - s := "" - b, err := json.Marshal(data) - fmt.Println(string(b)) - if err != nil { - s = `{"error":"json.Marshal error"}` - w.WriteHeader(http.StatusInternalServerError) - } else { - s = string(b) - w.WriteHeader(httpCode) - } - fmt.Fprint(w, s) -} - -//GetAllNodeHealth get all node health -func GetAllNodeHealth(w http.ResponseWriter, r *http.Request) { - nodes, err := nodeService.GetAllNode() - if err != nil { - err.Handle(r, w) - return - } - StatusMap := make(map[string][]map[string]string, 30) - roleList := make([]map[string]string, 0, 10) - for _, n := range nodes { - for _, v := range n.NodeStatus.Conditions { - status, ok := StatusMap[string(v.Type)] - if !ok { - StatusMap[string(v.Type)] = []map[string]string{ - map[string]string{ - "type": string(v.Type), - "status": string(v.Status), - "message": string(v.Message), - "hostname": n.HostName, - }, - } - } else { - list := status - list = append(list, map[string]string{ - "type": string(v.Type), - "status": string(v.Status), - "message": string(v.Message), - "hostname": n.HostName, - }, - ) - StatusMap[string(v.Type)] = list - } - } - roleList = append(roleList, map[string]string{"role": n.Role.String(), "status": n.NodeStatus.Status}) - } - StatusMap["Role"] = roleList - httputil.ReturnSuccess(r, w, StatusMap) -} - -//UpdateNodeStatus update node status -//`{"status":"installing"}` -func UpdateNodeStatus(w http.ResponseWriter, r *http.Request) { - var req = make(map[string]string) - if err := json.NewDecoder(r.Body).Decode(&req); err != nil { - httputil.ReturnError(r, w, 400, err.Error()) - return - } - nodeUID := strings.TrimSpace(chi.URLParam(r, "node_id")) - if err := nodeService.UpdateNodeStatus(nodeUID, req["status"]); err != nil { - err.Handle(r, w) - return - } - node, err := nodeService.GetNode(nodeUID) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, node) -} diff --git a/node/api/manager.go b/node/api/manager.go index d91d33fdf..607ccfda6 100644 --- a/node/api/manager.go +++ b/node/api/manager.go @@ -20,25 +20,16 @@ package api import ( "context" - "fmt" "net/http" - "strconv" - "strings" - client "github.com/coreos/etcd/clientv3" "github.com/go-chi/chi" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/discover" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/api/controller" "github.com/goodrain/rainbond/node/api/router" - "github.com/goodrain/rainbond/node/kubecache" - "github.com/goodrain/rainbond/node/masterserver" - nodeclient "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/statsd" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/sirupsen/logrus" + "k8s.io/client-go/kubernetes" // pprof _ "net/http/pprof" @@ -46,38 +37,22 @@ import ( //Manager api manager type Manager struct { - ctx context.Context - cancel context.CancelFunc - conf option.Conf - router *chi.Mux - node *nodeclient.HostNode - lID client.LeaseID // lease id - ms *masterserver.MasterServer - keepalive *discover.KeepAlive - exporter *statsd.Exporter - etcdClientArgs *etcdutil.ClientArgs + ctx context.Context + cancel context.CancelFunc + conf option.Conf + router *chi.Mux } //NewManager api manager -func NewManager(c option.Conf, node *nodeclient.HostNode, ms *masterserver.MasterServer, kubecli kubecache.KubeClient) *Manager { - r := router.Routers(c.RunMode) +func NewManager(c option.Conf, kubecli *kubernetes.Clientset) *Manager { + r := router.Routers() ctx, cancel := context.WithCancel(context.Background()) - controller.Init(&c, ms, kubecli) - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: c.EtcdEndpoints, - CaFile: c.EtcdCaFile, - CertFile: c.EtcdCertFile, - KeyFile: c.EtcdKeyFile, - DialTimeout: c.EtcdDialTimeout, - } + controller.Init(&c, kubecli) m := &Manager{ - ctx: ctx, - cancel: cancel, - conf: c, - router: r, - node: node, - ms: ms, - etcdClientArgs: etcdClientArgs, + ctx: ctx, + cancel: cancel, + conf: c, + router: r, } // set node cluster monitor route m.router.Get("/cluster/metrics", m.HandleClusterScrape) @@ -99,26 +74,6 @@ func (m *Manager) Start(errChan chan error) error { errChan <- err } }() - if m.conf.RunMode == "master" { - portinfo := strings.Split(m.conf.APIAddr, ":") - var port int - if len(portinfo) != 2 { - port = 6100 - } else { - var err error - port, err = strconv.Atoi(portinfo[1]) - if err != nil { - return fmt.Errorf("get the api port info error.%s", err.Error()) - } - } - keepalive, err := discover.CreateKeepAlive(m.etcdClientArgs, "acp_node", m.conf.PodIP, m.conf.PodIP, port) - if err != nil { - return err - } - if err := keepalive.Start(); err != nil { - return err - } - } return nil } @@ -126,9 +81,6 @@ func (m *Manager) Start(errChan chan error) error { func (m *Manager) Stop() error { logrus.Info("api server is stoping.") m.cancel() - if m.keepalive != nil { - m.keepalive.Stop() - } return nil } diff --git a/node/api/model/README.md b/node/api/model/README.md deleted file mode 100644 index 86457dca8..000000000 --- a/node/api/model/README.md +++ /dev/null @@ -1,90 +0,0 @@ -Package cron implements a cron spec parser and job runner. -Usage -Callers may register Funcs to be invoked on a given schedule. Cron will run -them in their own goroutines. - c := cron.New() - c.AddFunc("0 30 * * * *", func() { fmt.Println("Every hour on the half hour") }) - c.AddFunc("@hourly", func() { fmt.Println("Every hour") }) - c.AddFunc("@every 1h30m", func() { fmt.Println("Every hour thirty") }) - c.Start() - .. - // Funcs are invoked in their own goroutine, asynchronously. - ... - // Funcs may also be added to a running Cron - c.AddFunc("@daily", func() { fmt.Println("Every day") }) - .. - // Inspect the cron job entries' next and previous run times. - inspect(c.Entries()) - .. - c.Stop() // Stop the scheduler (does not stop any jobs already running). -CRON Expression Format -A cron expression represents a set of times, using 6 space-separated fields. - Field name | Mandatory? | Allowed values | Allowed special characters - ---------- | ---------- | -------------- | -------------------------- - Seconds | Yes | 0-59 | * / , - - Minutes | Yes | 0-59 | * / , - - Hours | Yes | 0-23 | * / , - - Day of month | Yes | 1-31 | * / , - ? - Month | Yes | 1-12 or JAN-DEC | * / , - - Day of week | Yes | 0-6 or SUN-SAT | * / , - ? -Note: Month and Day-of-week field values are case insensitive. "SUN", "Sun", -and "sun" are equally accepted. -Special Characters -Asterisk ( * ) -The asterisk indicates that the cron expression will match for all values of the -field; e.g., using an asterisk in the 5th field (month) would indicate every -month. -Slash ( / ) -Slashes are used to describe increments of ranges. For example 3-59/15 in the -1st field (minutes) would indicate the 3rd minute of the hour and every 15 -minutes thereafter. The form "*\/..." is equivalent to the form "first-last/...", -that is, an increment over the largest possible range of the field. The form -"N/..." is accepted as meaning "N-MAX/...", that is, starting at N, use the -increment until the end of that specific range. It does not wrap around. -Comma ( , ) -Commas are used to separate items of a list. For example, using "MON,WED,FRI" in -the 5th field (day of week) would mean Mondays, Wednesdays and Fridays. -Hyphen ( - ) -Hyphens are used to define ranges. For example, 9-17 would indicate every -hour between 9am and 5pm inclusive. -Question mark ( ? ) -Question mark may be used instead of '*' for leaving either day-of-month or -day-of-week blank. -Predefined schedules -You may use one of several pre-defined schedules in place of a cron expression. - Entry | Description | Equivalent To - ----- | ----------- | ------------- - @yearly (or @annually) | Run once a year, midnight, Jan. 1st | 0 0 0 1 1 * - @monthly | Run once a month, midnight, first of month | 0 0 0 1 * * - @weekly | Run once a week, midnight on Sunday | 0 0 0 * * 0 - @daily (or @midnight) | Run once a day, midnight | 0 0 0 * * * - @hourly | Run once an hour, beginning of hour | 0 0 * * * * -Intervals -You may also schedule a job to execute at fixed intervals, starting at the time it's added -or cron is run. This is supported by formatting the cron spec like this: - @every -where "duration" is a string accepted by time.ParseDuration -(http://golang.org/pkg/time/#ParseDuration). -For example, "@every 1h30m10s" would indicate a schedule that activates immediately, -and then every 1 hour, 30 minutes, 10 seconds. -Note: The interval does not take the job runtime into account. For example, -if a job takes 3 minutes to run, and it is scheduled to run every 5 minutes, -it will have only 2 minutes of idle time between each run. -Time zones -All interpretation and scheduling is done in the machine's local time zone (as -provided by the Go time package (http://www.golang.org/pkg/time). -Be aware that jobs scheduled during daylight-savings leap-ahead transitions will -not be run! -Thread safety -Since the Cron service runs concurrently with the calling code, some amount of -care must be taken to ensure proper synchronization. -All cron methods are designed to be correctly synchronized as long as the caller -ensures that invocations have a clear happens-before ordering between them. -Implementation -Cron entries are stored in an array, sorted by their next activation time. Cron -sleeps until the next job is due to be run. -Upon waking: - - it runs each entry that is active on that second - - it calculates the next run times for the jobs that were run - - it re-sorts the array of entries by next activation time. - - it goes to sleep until the soonest job. \ No newline at end of file diff --git a/node/api/model/model.go b/node/api/model/model.go deleted file mode 100644 index cb7e84b80..000000000 --- a/node/api/model/model.go +++ /dev/null @@ -1,532 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package model - -import ( - //"github.com/sirupsen/logrus" - "fmt" - "io/ioutil" - "net/http" - url2 "net/url" - "strings" - - "github.com/coreos/etcd/mvcc/mvccpb" - "github.com/goodrain/rainbond/node/utils" - "github.com/pquerna/ffjson/ffjson" - v1 "k8s.io/api/core/v1" //"github.com/sirupsen/logrus" -) - -//Resource 资源 -type Resource struct { - CPU int `json:"cpu"` - MemR int `json:"mem"` -} - -// NodePodResource - -type NodePodResource struct { - AllocatedResources `json:"allocatedresources"` - Resource `json:"allocatable"` -} - -// AllocatedResources - -type AllocatedResources struct { - CPURequests int64 - CPULimits int64 - MemoryRequests int64 - MemoryLimits int64 - MemoryRequestsR string - MemoryLimitsR string - CPURequestsR string - CPULimitsR string -} - -// InitStatus - -type InitStatus struct { - Status int `json:"status"` - StatusCN string `json:"cn"` - HostID string `json:"uuid"` -} - -// InstallStatus - -type InstallStatus struct { - Status int `json:"status"` - StatusCN string `json:"cn"` - Tasks []*ExecedTask `json:"tasks"` -} - -// ExecedTask - -type ExecedTask struct { - ID string `json:"id"` - Seq int `json:"seq"` - Desc string `json:"desc"` - Status string `json:"status"` - CompleteStatus string `json:"complete_status"` - ErrorMsg string `json:"err_msg"` - Depends []string `json:"dep"` - Next []string `json:"next"` -} - -// Prome - -type Prome struct { - Status string `json:"status"` - Data PromeData `json:"data"` -} - -// PromeData - -type PromeData struct { - ResultType string `json:"resultType"` - Result []*PromeResultCore `json:"result"` -} - -// PromeResultCore - -type PromeResultCore struct { - Metric map[string]string `json:"metric"` - Value []interface{} `json:"value"` - Values []interface{} `json:"values"` -} - -// Expr swagger:parameters createToken -type Expr struct { - Body struct { - // expr - // in: body - // required: true - Expr string `json:"expr" validate:"expr|required"` - } -} - -// LabelsResp - -type LabelsResp struct { - SysLabels map[string]string `json:"sys_labels"` - CustomLabels map[string]string `json:"custom_labels"` -} - -// PrometheusInterface - -type PrometheusInterface interface { - Query(query string) *Prome - QueryRange(query string, start, end, step string) *Prome -} - -// PrometheusAPI - -type PrometheusAPI struct { - API string -} - -//Query Get -func (s *PrometheusAPI) Query(query string) (*Prome, *utils.APIHandleError) { - resp, code, err := DoRequest(s.API, query, "query", "GET", nil) - if err != nil { - return nil, utils.CreateAPIHandleError(400, err) - } - if code == 422 { - return nil, utils.CreateAPIHandleError(422, fmt.Errorf("unprocessable entity,expression %s can't be executed", query)) - } - if code == 400 { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("bad request,error to request query %s", query)) - } - if code == 503 { - return nil, utils.CreateAPIHandleError(503, fmt.Errorf("service unavailable")) - } - var prome Prome - err = ffjson.Unmarshal(resp, &prome) - if err != nil { - return nil, utils.CreateAPIHandleError(500, err) - } - return &prome, nil -} - -//QueryRange Get -func (s *PrometheusAPI) QueryRange(query string, start, end, step string) (*Prome, *utils.APIHandleError) { - //logrus.Infof("prometheus api is %s",s.API) - uri := fmt.Sprintf("%v&start=%v&end=%v&step=%v", query, start, end, step) - resp, code, err := DoRequest(s.API, uri, "query_range", "GET", nil) - if err != nil { - return nil, utils.CreateAPIHandleError(400, err) - } - if code == 422 { - return nil, utils.CreateAPIHandleError(422, fmt.Errorf("unprocessable entity,expression %s can't be executed", query)) - } - if code == 400 { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("bad request,error to request query %s", query)) - } - if code == 503 { - return nil, utils.CreateAPIHandleError(503, fmt.Errorf("service unavailable")) - } - var prome Prome - err = ffjson.Unmarshal(resp, &prome) - if err != nil { - return nil, utils.CreateAPIHandleError(500, err) - } - return &prome, nil -} - -// DoRequest - -func DoRequest(baseAPI, query, queryType, method string, body []byte) ([]byte, int, error) { - api := baseAPI + "/api/v1/" + queryType + "?" - query = "query=" + query - query = strings.Replace(query, "+", "%2B", -1) - val, err := url2.ParseQuery(query) - if err != nil { - return nil, 0, err - } - encoded := val.Encode() - //logrus.Infof("uri is %s",api+encoded) - request, err := http.NewRequest(method, api+encoded, nil) - if err != nil { - return nil, 0, err - } - resp, err := http.DefaultClient.Do(request) - if err != nil { - return nil, 0, err - } - - data, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, 0, err - } - defer resp.Body.Close() - return data, resp.StatusCode, nil -} - -//ClusterResource 资源 -type ClusterResource struct { - AllNode int `json:"all_node"` - NotReadyNode int `json:"notready_node"` - ComputeNode int `json:"compute_node"` - Tenant int `json:"tenant"` - CapCPU int `json:"cap_cpu"` //可分配CPU总额 - CapMem int `json:"cap_mem"` //可分配Mem总额 - HealthCapCPU int `json:"health_cap_cpu"` //健康可分配CPU - HealthCapMem int `json:"health_cap_mem"` //健康可分配Mem - UnhealthCapCPU int `json:"unhealth_cap_cpu"` //不健康可分配CPU - UnhealthCapMem int `json:"unhealth_cap_mem"` //不健康可分配Mem - ReqCPU float32 `json:"req_cpu"` //已使用CPU总额 - ReqMem int `json:"req_mem"` //已使用Mem总额 - HealthReqCPU float32 `json:"health_req_cpu"` //健康已使用CPU - HealthReqMem int `json:"health_req_mem"` //健康已使用Mem - UnhealthReqCPU float32 `json:"unhealth_req_cpu"` //不健康已使用CPU - UnhealthReqMem int `json:"unhealth_req_mem"` //不健康已使用Mem - CapDisk uint64 `json:"cap_disk"` - ReqDisk uint64 `json:"req_disk"` - MaxAllocatableMemoryNodeResource *NodeResource `json:"max_allocatable_memory_node_resource"` -} - -//NodeResourceResponse 资源 -type NodeResourceResponse struct { - CapCPU int `json:"cap_cpu"` - CapMem int `json:"cap_mem"` - ReqCPU float32 `json:"req_cpu"` - ReqMem int `json:"req_mem"` -} - -// FirstConfig - -type FirstConfig struct { - StorageMode string `json:"storage_mode"` - StorageHost string `json:"storage_host,omitempty"` - StorageEndPoint string `json:"storage_endpoint,omitempty"` - - NetworkMode string `json:"network_mode"` - ZKHosts string `json:"zk_host,omitempty"` - CassandraIP string `json:"cassandra_ip,omitempty"` - K8SAPIAddr string `json:"k8s_apiserver,omitempty"` - MasterIP string `json:"master_ip,omitempty"` - DNS string `json:"dns,omitempty"` - ZMQSub string `json:"zmq_sub,omitempty"` - ZMQTo string `json:"zmq_to,omitempty"` - EtcdIP string `json:"etcd_ip,omitempty"` -} - -// Config - -type Config struct { - Cn string `json:"cn_name"` - Name string `json:"name"` - Value string `json:"value"` -} - -//ConfigUnit 一个配置单元 -type ConfigUnit struct { - //配置名称 例如:network - Name string `json:"name" validate:"name|required"` - CNName string `json:"cn_name" validate:"cn_name"` - //类型 例如:midonet - Value interface{} `json:"value" validate:"value|required"` - ValueType string `json:"value_type"` - //可选类型 类型名称和需要的配置项 - OptionalValue []string `json:"optional_value,omitempty"` - DependConfig map[string][]ConfigUnit `json:"depend_config,omitempty"` - //是否用户可配置 - IsConfigurable bool `json:"is_configurable"` -} - -func (c ConfigUnit) String() string { - res, _ := ffjson.Marshal(&c) - return string(res) -} - -//GlobalConfig 全局配置 -type GlobalConfig struct { - Configs map[string]*ConfigUnit `json:"configs"` -} - -//String String -func (g *GlobalConfig) String() string { - res, _ := ffjson.Marshal(g) - return string(res) -} - -//Add 添加配置 -func (g *GlobalConfig) Add(c ConfigUnit) { - //具有依赖配置 - if c.DependConfig != nil || len(c.DependConfig) > 0 { - if c.ValueType == "string" || c.ValueType == "" { - if value, ok := c.Value.(string); ok { - for _, dc := range c.DependConfig[value] { - g.Add(dc) - } - } - } - } - g.Configs[c.Name] = &c -} - -//Get 获取配置 -func (g *GlobalConfig) Get(name string) *ConfigUnit { - return g.Configs[name] -} - -//Delete 删除配置 -func (g *GlobalConfig) Delete(Name string) { - if _, ok := g.Configs[Name]; ok { - delete(g.Configs, Name) - } -} - -//Bytes Bytes -func (g GlobalConfig) Bytes() []byte { - res, _ := ffjson.Marshal(&g) - return res -} - -//CreateDefaultGlobalConfig 生成默认配置 -func CreateDefaultGlobalConfig() *GlobalConfig { - gconfig := &GlobalConfig{ - Configs: make(map[string]*ConfigUnit), - } - gconfig.Add(ConfigUnit{ - Name: "NETWORK_MODE", - CNName: "集群网络模式", - Value: "calico", - ValueType: "string", - DependConfig: map[string][]ConfigUnit{ - "calico": []ConfigUnit{ConfigUnit{Name: "ETCD_ADDRS", CNName: "ETCD地址", ValueType: "array"}}, - "midonet": []ConfigUnit{ - ConfigUnit{Name: "CASSANDRA_ADDRS", CNName: "CASSANDRA地址", ValueType: "array"}, - ConfigUnit{Name: "ZOOKEEPER_ADDRS", CNName: "ZOOKEEPER地址", ValueType: "array"}, - ConfigUnit{Name: "LB_CIDR", CNName: "负载均衡所在网段", ValueType: "string"}, - }}, - IsConfigurable: true, - }) - gconfig.Add(ConfigUnit{ - Name: "STORAGE_MODE", - Value: "nfs", - CNName: "默认共享存储模式", - DependConfig: map[string][]ConfigUnit{ - "nfs": []ConfigUnit{ - ConfigUnit{Name: "NFS_SERVERS", CNName: "NFS服务端地址列表", ValueType: "array"}, - ConfigUnit{Name: "NFS_ENDPOINT", CNName: "NFS挂载端点", ValueType: "string"}, - }, - "clusterfs": []ConfigUnit{}, - }, - IsConfigurable: true, - }) - gconfig.Add(ConfigUnit{ - Name: "DB_MODE", - Value: "mysql", - CNName: "管理节点数据库类型", - OptionalValue: []string{"mysql", "cockroachdb"}, - DependConfig: map[string][]ConfigUnit{ - "mysql": []ConfigUnit{ - ConfigUnit{Name: "MYSQL_HOST", CNName: "Mysql数据库地址", ValueType: "string", Value: "127.0.0.1"}, - ConfigUnit{Name: "MYSQL_PASS", CNName: "Mysql数据库密码", ValueType: "string", Value: ""}, - ConfigUnit{Name: "MYSQL_USER", CNName: "Mysql数据库用户名", ValueType: "string", Value: ""}, - }, - "cockroachdb": []ConfigUnit{ - ConfigUnit{Name: "COCKROACH_HOST", CNName: "Mysql数据库地址", ValueType: "array"}, - ConfigUnit{Name: "COCKROACH_PASS", CNName: "Mysql数据库密码", ValueType: "string"}, - ConfigUnit{Name: "COCKROACH_USER", CNName: "Mysql数据库用户名", ValueType: "string"}, - }, - }, - IsConfigurable: true, - }) - gconfig.Add(ConfigUnit{ - Name: "LB_MODE", - Value: "nginx", - ValueType: "string", - CNName: "边缘负载均衡", - OptionalValue: []string{"nginx", "zeus"}, - IsConfigurable: true, - }) - gconfig.Add(ConfigUnit{Name: "DOMAIN", CNName: "应用域名", ValueType: "string"}) - gconfig.Add(ConfigUnit{Name: "INSTALL_NODE", CNName: "安装节点", ValueType: "array"}) - gconfig.Add(ConfigUnit{ - Name: "INSTALL_MODE", - Value: "online", - ValueType: "string", - CNName: "安装模式", - OptionalValue: []string{"online", "offine"}, - IsConfigurable: true, - }) - gconfig.Add(ConfigUnit{ - Name: "DNS_SERVER", - Value: []string{}, - CNName: "集群DNS服务", - ValueType: "array", - }) - gconfig.Add(ConfigUnit{ - Name: "KUBE_API", - Value: []string{}, - ValueType: "array", - CNName: "KubernetesAPI服务", - }) - gconfig.Add(ConfigUnit{ - Name: "MANAGE_NODE_ADDRESS", - Value: []string{}, - ValueType: "array", - CNName: "管理节点", - }) - return gconfig -} - -//CreateGlobalConfig 生成配置 -func CreateGlobalConfig(kvs []*mvccpb.KeyValue) (*GlobalConfig, error) { - dgc := &GlobalConfig{ - Configs: make(map[string]*ConfigUnit), - } - for _, kv := range kvs { - var cn ConfigUnit - if err := ffjson.Unmarshal(kv.Value, &cn); err == nil { - dgc.Add(cn) - } - } - return dgc, nil -} - -// LoginResult - -type LoginResult struct { - HostPort string `json:"hostport"` - LoginType bool `json:"type"` - Result string `json:"result"` -} - -// Login - -type Login struct { - HostPort string `json:"hostport"` - LoginType bool `json:"type"` - HostType string `json:"hosttype"` - RootPwd string `json:"pwd,omitempty"` -} - -// Body - -type Body struct { - List interface{} `json:"list"` - Bean interface{} `json:"bean,omitempty"` -} - -// ResponseBody - -type ResponseBody struct { - Code int `json:"code"` - Msg string `json:"msg"` - MsgCN string `json:"msgcn"` - Body Body `json:"body,omitempty"` -} - -// Pods - -type Pods struct { - Namespace string `json:"namespace"` - Id string `json:"id"` - Name string `json:"name"` - TenantName string `json:"tenant_name"` - CPURequests string `json:"cpurequest"` - CPURequestsR string `json:"cpurequestr"` - CPULimits string `json:"cpulimits"` - CPULimitsR string `json:"cpulimitsr"` - MemoryRequests string `json:"memoryrequests"` - MemoryRequestsR string `json:"memoryrequestsr"` - MemoryLimits string `json:"memorylimits"` - MemoryLimitsR string `json:"memorylimitsr"` - Status string `json:"status"` -} - -//NodeDetails NodeDetails -type NodeDetails struct { - Name string `json:"name"` - Role []string `json:"role"` - Status string `json:"status"` - Labels map[string]string `json:"labels"` - Annotations map[string]string `json:"annotations"` - CreationTimestamp string `json:"creationtimestamp"` - Conditions []v1.NodeCondition `json:"conditions"` - Addresses map[string]string `json:"addresses"` - Capacity map[string]string `json:"capacity"` - Allocatable map[string]string `json:"allocatable"` - SystemInfo v1.NodeSystemInfo `json:"systeminfo"` - NonterminatedPods []*Pods `json:"nonterminatedpods"` - AllocatedResources map[string]string `json:"allocatedresources"` - Events map[string][]string `json:"events"` -} - -// AlertingRulesConfig - -type AlertingRulesConfig struct { - Groups []*AlertingNameConfig `yaml:"groups" json:"groups"` -} - -// AlertingNameConfig - -type AlertingNameConfig struct { - Name string `yaml:"name" json:"name"` - Rules []*RulesConfig `yaml:"rules" json:"rules"` -} - -// RulesConfig - -type RulesConfig struct { - Alert string `yaml:"alert" json:"alert"` - Expr string `yaml:"expr" json:"expr"` - For string `yaml:"for" json:"for"` - Labels map[string]string `yaml:"labels" json:"labels"` - Annotations map[string]string `yaml:"annotations" json:"annotations"` -} - -//NotificationEvent NotificationEvent -type NotificationEvent struct { - //Kind could be service, tenant, cluster, node - Kind string `json:"Kind"` - //KindID could be service_id,tenant_id,cluster_id,node_id - KindID string `json:"KindID"` - Hash string `json:"Hash"` - //Type could be Normal UnNormal Notification - Type string `json:"Type"` - Message string `json:"Message"` - Reason string `json:"Reason"` - Count int `json:"Count"` - LastTime string `json:"LastTime"` - FirstTime string `json:"FirstTime"` - IsHandle bool `json:"IsHandle"` - HandleMessage string `json:"HandleMessage"` - ServiceName string `json:"ServiceName"` - TenantName string `json:"TenantName"` -} diff --git a/node/api/model/resource.go b/node/api/model/resource.go deleted file mode 100644 index e034c3da4..000000000 --- a/node/api/model/resource.go +++ /dev/null @@ -1,73 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2019 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package model - -import ( - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" -) - -// NodeResource is a collection of compute resource. -type NodeResource struct { - MilliCPU int64 `json:"milli_cpu"` - Memory int64 `json:"memory"` - NvidiaGPU int64 `json:"nvidia_gpu"` - EphemeralStorage int64 `json:"ephemeral_storage"` - // We store allowedPodNumber (which is Node.Status.Allocatable.Pods().Value()) - // explicitly as int, to avoid conversions and improve performance. - AllowedPodNumber int `json:"allowed_pod_number"` -} - -// NewResource creates a Resource from ResourceList -func NewResource(rl v1.ResourceList) *NodeResource { - r := &NodeResource{} - r.Add(rl) - return r -} - -// Add adds ResourceList into Resource. -func (r *NodeResource) Add(rl v1.ResourceList) { - if r == nil { - return - } - - for rName, rQuant := range rl { - switch rName { - case v1.ResourceCPU: - r.MilliCPU += rQuant.MilliValue() - case v1.ResourceMemory: - r.Memory += rQuant.Value() - case v1.ResourcePods: - r.AllowedPodNumber += int(rQuant.Value()) - case v1.ResourceEphemeralStorage: - r.EphemeralStorage += rQuant.Value() - } - } -} - -// ResourceList returns a resource list of this resource. -func (r *NodeResource) ResourceList() v1.ResourceList { - result := v1.ResourceList{ - v1.ResourceCPU: *resource.NewMilliQuantity(r.MilliCPU, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(r.Memory, resource.BinarySI), - v1.ResourcePods: *resource.NewQuantity(int64(r.AllowedPodNumber), resource.BinarySI), - v1.ResourceEphemeralStorage: *resource.NewQuantity(r.EphemeralStorage, resource.BinarySI), - } - return result -} diff --git a/node/api/model/task.go b/node/api/model/task.go deleted file mode 100644 index acbf61369..000000000 --- a/node/api/model/task.go +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package model - -import ( - "time" - - "github.com/pquerna/ffjson/ffjson" -) - -//Shell 执行脚本配置 -type Shell struct { - Cmd []string `json:"cmd"` -} - -//TaskTemp 任务模版 -type TaskTemp struct { - Name string `json:"name" validate:"name|required"` - ID string `json:"id" validate:"id|uuid"` - Shell Shell `json:"shell"` - Envs map[string]string `json:"envs,omitempty"` - Input string `json:"input,omitempty"` - Args []string `json:"args,omitempty"` - Depends []DependStrategy `json:"depends,omitempty"` - Timeout int `json:"timeout" validate:"timeout|required|numeric"` - CreateTime time.Time `json:"create_time"` - Labels map[string]string `json:"labels,omitempty"` -} - -//DependStrategy 依赖策略 -type DependStrategy struct { - DependTaskID string `json:"depend_task_id"` - DetermineStrategy string `json:"strategy"` -} - -//AtLeastOnceStrategy 至少已执行一次 -var AtLeastOnceStrategy = "AtLeastOnce" - -//SameNodeStrategy 相同节点已执行 -var SameNodeStrategy = "SameNode" - -func (t TaskTemp) String() string { - res, _ := ffjson.Marshal(&t) - return string(res) -} - -//Task 任务 -type Task struct { - Name string `json:"name" validate:"name|required"` - ID string `json:"id" validate:"id|uuid"` - TempID string `json:"temp_id,omitempty" validate:"temp_id|uuid"` - Temp *TaskTemp `json:"temp,omitempty"` - GroupID string `json:"group_id,omitempty"` - //执行的节点 - Nodes []string `json:"nodes"` - //执行时间定义 - //例如每30分钟执行一次:@every 30m - Timer string `json:"timer"` - TimeOut int64 `json:"time_out"` - // 执行任务失败重试次数 - // 默认为 0,不重试 - Retry int `json:"retry"` - // 执行任务失败重试时间间隔 - // 单位秒,如果不大于 0 则马上重试 - Interval int `json:"interval"` - //ExecCount 执行次数 - ExecCount int `json:"exec_count"` - //每个执行节点执行状态 - Status map[string]TaskStatus `json:"status,omitempty"` - Scheduler Scheduler `json:"scheduler"` - CreateTime time.Time `json:"create_time"` - StartTime time.Time `json:"start_time"` - CompleteTime time.Time `json:"complete_time"` - ResultPath string `json:"result_path"` - EventID string `json:"event_id"` - RunMode string `json:"run_mode"` - OutPut []*TaskOutPut `json:"out_put"` -} - -func (t Task) String() string { - res, _ := ffjson.Marshal(&t) - return string(res) -} - -//Decode Decode -func (t *Task) Decode(data []byte) error { - return ffjson.Unmarshal(data, t) -} - -//UpdataOutPut 更新状态 -func (t *Task) UpdataOutPut(output TaskOutPut) { - updateIndex := -1 - for i, oldOut := range t.OutPut { - if oldOut.NodeID == output.NodeID { - updateIndex = i - break - } - } - if updateIndex != -1 { - t.OutPut[updateIndex] = &output - return - } - t.OutPut = append(t.OutPut, &output) -} - -//CanBeDelete 能否被删除 -func (t Task) CanBeDelete() bool { - if t.Status == nil || len(t.Status) == 0 { - return true - } - for _, v := range t.Status { - if v.Status != "create" { - return false - } - } - return true -} - -//Scheduler 调度状态 -type Scheduler struct { - Mode string `json:"mode"` //立即调度(Intime),触发调度(Passive) - Status map[string]SchedulerStatus `json:"status"` -} - -//SchedulerStatus 调度状态 -type SchedulerStatus struct { - Status string `json:"status"` - Message string `json:"message"` - SchedulerTime time.Time `json:"scheduler_time"` //调度时间 - SchedulerMaster string `json:"scheduler_master"` //调度的管理节点 -} - -//TaskOutPut 任务输出 -type TaskOutPut struct { - NodeID string `json:"node_id"` - JobID string `json:"job_id"` - Global map[string]string `json:"global"` - Inner map[string]string `json:"inner"` - //返回数据类型,检测结果类(check) 执行安装类 (install) 普通类 (common) - Type string `json:"type"` - Status []TaskOutPutStatus `json:"status"` - ExecStatus string `json:"exec_status"` - Body string `json:"body"` -} - -//ParseTaskOutPut json parse -func ParseTaskOutPut(body string) (t TaskOutPut, err error) { - t.Body = body - err = ffjson.Unmarshal([]byte(body), &t) - return -} - -//TaskOutPutStatus 输出数据 -type TaskOutPutStatus struct { - Name string `json:"name"` - //节点属性 - ConditionType string `json:"condition_type"` - //节点属性值 - ConditionStatus string `json:"condition_status"` - NextTask []string `json:"next_tasks,omitempty"` - NextGroups []string `json:"next_groups,omitempty"` -} - -//TaskStatus 任务状态 -type TaskStatus struct { - JobID string `json:"job_id"` - Status string `json:"status"` //执行状态,create init exec complete timeout - StartTime time.Time `json:"start_time"` - EndTime time.Time `json:"end_time"` - TakeTime int `json:"take_time"` - CompleStatus string `json:"comple_status"` - //脚本退出码 - ShellCode int `json:"shell_code"` - Message string `json:"message,omitempty"` -} - -//TaskGroup 任务组 -type TaskGroup struct { - Name string `json:"name" validate:"name|required"` - ID string `json:"id" validate:"id|uuid"` - Tasks []*Task `json:"tasks"` - CreateTime time.Time `json:"create_time"` - Status *TaskGroupStatus `json:"status"` -} - -func (t TaskGroup) String() string { - res, _ := ffjson.Marshal(&t) - return string(res) -} - -//CanBeDelete 是否能被删除 -func (t TaskGroup) CanBeDelete() bool { - if t.Status == nil || len(t.Status.TaskStatus) == 0 { - return true - } - for _, v := range t.Status.TaskStatus { - if v.Status != "create" { - return false - } - } - return true -} - -//TaskGroupStatus 任务组状态 -type TaskGroupStatus struct { - TaskStatus map[string]TaskStatus `json:"task_status"` - InitTime time.Time `json:"init_time"` - StartTime time.Time `json:"start_time"` - EndTime time.Time `json:"end_time"` - Status string `json:"status"` //create init exec complete timeout -} diff --git a/node/api/router/discover_router.go b/node/api/router/discover_router.go index 3438181a3..494d0883f 100644 --- a/node/api/router/discover_router.go +++ b/node/api/router/discover_router.go @@ -23,55 +23,14 @@ import ( "github.com/goodrain/rainbond/node/api/controller" ) -//DisconverRoutes envoy discover api -// v1 api will abandoned in 5.2 +//DisconverRoutes common plugin discover plugin config func DisconverRoutes() chi.Router { r := chi.NewRouter() r.Get("/ping", controller.Ping) - r.Mount("/listeners", ListenersRoutes()) - r.Mount("/clusters", ClustersRoutes()) - r.Mount("/registration", RegistrationRoutes()) - r.Mount("/routes", RoutesRouters()) r.Mount("/resources", SourcesRoutes()) return r } -//ListenersRoutes listeners routes lds -//GET /v1/listeners/(string: service_cluster)/(string: service_node) -func ListenersRoutes() chi.Router { - r := chi.NewRouter() - r.Get("/ping", controller.Ping) - r.Get("/{tenant_service}/{service_nodes}", controller.ListenerDiscover) - return r -} - -//ClustersRoutes cds -//GET /v1/clusters/(string: service_cluster)/(string: service_node) -func ClustersRoutes() chi.Router { - r := chi.NewRouter() - r.Get("/ping", controller.Ping) - r.Get("/{tenant_service}/{service_nodes}", controller.ClusterDiscover) - return r -} - -//RegistrationRoutes sds -//GET /v1/registration/(string: service_name) -func RegistrationRoutes() chi.Router { - r := chi.NewRouter() - r.Get("/ping", controller.Ping) - r.Get("/{service_name}", controller.ServiceDiscover) - return r -} - -//RoutesRouters rds -//GET /v1/routes/(string: route_config_name)/(string: service_cluster)/(string: service_node) -func RoutesRouters() chi.Router { - r := chi.NewRouter() - r.Get("/ping", controller.Ping) - r.Get("/{route_config}/{tenant_service}/{service_nodes}", controller.RoutesDiscover) - return r -} - //SourcesRoutes SourcesRoutes //GET /v1/resources/(string: tenant_id)/(string: service_alias)/(string: plugin_id) func SourcesRoutes() chi.Router { diff --git a/node/api/router/router.go b/node/api/router/router.go index ec0cb8514..1c2ad2a30 100644 --- a/node/api/router/router.go +++ b/node/api/router/router.go @@ -31,7 +31,7 @@ import ( ) //Routers 路由 -func Routers(mode string) *chi.Mux { +func Routers() *chi.Mux { r := chi.NewRouter() r.Use(middleware.RequestID) //每个请求的上下文中注册一个id //Sets a http.Request's RemoteAddr to either X-Forwarded-For or X-Real-IP @@ -47,54 +47,10 @@ func Routers(mode string) *chi.Mux { r.Mount("/v1", DisconverRoutes()) r.Route("/v2", func(r chi.Router) { r.Get("/ping", controller.Ping) - r.Route("/apps", func(r chi.Router) { - r.Get("/{app_name}/register", controller.APPRegister) - r.Get("/{app_name}/discover", controller.APPDiscover) - r.Get("/", controller.APPList) - }) r.Route("/localvolumes", func(r chi.Router) { r.Post("/create", controller.CreateLocalVolume) r.Delete("/", controller.DeleteLocalVolume) }) - //以下只有管理节点具有的API - if mode == "master" { - r.Route("/configs", func(r chi.Router) { - r.Get("/datacenter", controller.GetDatacenterConfig) - r.Put("/datacenter", controller.PutDatacenterConfig) - }) - r.Route("/cluster", func(r chi.Router) { - r.Get("/", controller.ClusterInfo) - r.Get("/service-health", controller.GetServicesHealthy) - }) - r.Route("/nodes", func(r chi.Router) { - // abandoned - r.Get("/fullres", controller.ClusterInfo) - r.Get("/{node_id}/node_resource", controller.GetNodeResource) - r.Get("/resources", controller.Resources) - r.Get("/capres", controller.CapRes) - r.Get("/", controller.GetNodes) - r.Get("/all_node_health", controller.GetAllNodeHealth) - r.Get("/rule/{rule}", controller.GetRuleNodes) - r.Get("/{node_id}", controller.GetNode) - r.Put("/{node_id}/status", controller.UpdateNodeStatus) - r.Put("/{node_id}/unschedulable", controller.Cordon) - r.Put("/{node_id}/reschedulable", controller.UnCordon) - r.Post("/{node_id}/labels", controller.PutLabel) - r.Get("/{node_id}/labels", controller.GetLabel) - r.Delete("/{node_id}/labels", controller.DeleteLabel) - r.Post("/{node_id}/down", controller.DownNode) - r.Post("/{node_id}/up", controller.UpNode) - r.Get("/{node_id}/instance", controller.Instances) - r.Get("/{node_id}/check", controller.CheckNode) - r.Get("/{node_id}/resource", controller.Resource) - r.Get("/{node_id}/conditions", controller.ListNodeCondition) - r.Delete("/{node_id}/conditions/{condition}", controller.DeleteNodeCondition) - // about node install - r.Post("/{node_id}/install", controller.InstallNode) //install node - r.Post("/", controller.AddNode) //add node - r.Delete("/{node_id}", controller.DeleteRainbondNode) //delete node - }) - } }) return r } diff --git a/node/core/config/datacenter.go b/node/core/config/datacenter.go deleted file mode 100644 index fa073afbe..000000000 --- a/node/core/config/datacenter.go +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package config - -import ( - "context" - "fmt" - - "github.com/coreos/etcd/mvcc/mvccpb" - "github.com/pquerna/ffjson/ffjson" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/api/model" - "github.com/goodrain/rainbond/node/core/store" - "github.com/goodrain/rainbond/util" - - client "github.com/coreos/etcd/clientv3" - "github.com/sirupsen/logrus" -) - -//DataCenterConfig 数据中心配置 -type DataCenterConfig struct { - config *model.GlobalConfig - options *option.Conf - ctx context.Context - cancel context.CancelFunc - //group config 不持久化 - groupConfigs map[string]*GroupContext -} - -var dataCenterConfig *DataCenterConfig - -//GetDataCenterConfig 获取 -func GetDataCenterConfig() *DataCenterConfig { - if dataCenterConfig == nil { - return CreateDataCenterConfig() - } - return dataCenterConfig -} - -//CreateDataCenterConfig 创建 -func CreateDataCenterConfig() *DataCenterConfig { - ctx, cancel := context.WithCancel(context.Background()) - dataCenterConfig = &DataCenterConfig{ - options: option.Config, - ctx: ctx, - cancel: cancel, - config: &model.GlobalConfig{ - Configs: make(map[string]*model.ConfigUnit), - }, - groupConfigs: make(map[string]*GroupContext), - } - res, err := store.DefalutClient.Get(dataCenterConfig.options.ConfigStoragePath+"/global", client.WithPrefix()) - if err != nil { - logrus.Error("load datacenter config error.", err.Error()) - } - if res != nil { - if len(res.Kvs) < 1 { - dgc := &model.GlobalConfig{ - Configs: make(map[string]*model.ConfigUnit), - } - dataCenterConfig.config = dgc - } else { - for _, kv := range res.Kvs { - dataCenterConfig.PutConfigKV(kv) - } - } - } - return dataCenterConfig -} - -//Start 启动,监听配置变化 -func (d *DataCenterConfig) Start() { - go util.Exec(d.ctx, func() error { - ctx, cancel := context.WithCancel(d.ctx) - defer cancel() - logrus.Info("datacenter config listener start") - ch := store.DefalutClient.WatchByCtx(ctx, d.options.ConfigStoragePath+"/global", client.WithPrefix()) - for event := range ch { - for _, e := range event.Events { - switch { - case e.IsCreate(), e.IsModify(): - d.PutConfigKV(e.Kv) - case e.Type == client.EventTypeDelete: - d.DeleteConfig(util.GetIDFromKey(string(e.Kv.Key))) - } - } - } - return nil - }, 1) -} - -//Stop 停止监听 -func (d *DataCenterConfig) Stop() { - d.cancel() - logrus.Info("datacenter config listener stop") -} - -//GetDataCenterConfig 获取配置 -func (d *DataCenterConfig) GetDataCenterConfig() (*model.GlobalConfig, error) { - return d.config, nil -} - -//PutDataCenterConfig 更改配置 -func (d *DataCenterConfig) PutDataCenterConfig(c *model.GlobalConfig) (err error) { - if c == nil { - return - } - for k, v := range c.Configs { - d.config.Add(*v) - _, err = store.DefalutClient.Put(d.options.ConfigStoragePath+"/global/"+k, v.String()) - } - return err -} - -//GetConfig 获取全局配置 -func (d *DataCenterConfig) GetConfig(name string) *model.ConfigUnit { - return d.config.Get(name) -} - -//CacheConfig 更新配置缓存 -func (d *DataCenterConfig) CacheConfig(c *model.ConfigUnit) error { - if c.Name == "" { - return fmt.Errorf("config name can not be empty") - } - logrus.Debugf("add config %v", c) - //将值类型由[]interface{} 转 []string - if c.ValueType == "array" { - switch c.Value.(type) { - case []interface{}: - var data []string - for _, v := range c.Value.([]interface{}) { - data = append(data, v.(string)) - } - c.Value = data - } - oldC := d.config.Get(c.Name) - if oldC != nil { - - switch oldC.Value.(type) { - case string: - value := append(c.Value.([]string), oldC.Value.(string)) - util.Deweight(&value) - c.Value = value - case []string: - value := append(c.Value.([]string), oldC.Value.([]string)...) - util.Deweight(&value) - c.Value = value - default: - } - } - } - d.config.Add(*c) - return nil -} - -//PutConfig 增加or更新配置 -func (d *DataCenterConfig) PutConfig(c *model.ConfigUnit) error { - if c.Name == "" { - return fmt.Errorf("config name can not be empty") - } - logrus.Debugf("add config %v", c) - //将值类型由[]interface{} 转 []string - if c.ValueType == "array" { - switch c.Value.(type) { - case []interface{}: - var data []string - for _, v := range c.Value.([]interface{}) { - data = append(data, v.(string)) - } - c.Value = data - } - oldC := d.config.Get(c.Name) - if oldC != nil { - - switch oldC.Value.(type) { - case string: - value := append(c.Value.([]string), oldC.Value.(string)) - util.Deweight(&value) - c.Value = value - case []string: - value := append(c.Value.([]string), oldC.Value.([]string)...) - util.Deweight(&value) - c.Value = value - default: - } - } - } - d.config.Add(*c) - //持久化 - _, err := store.DefalutClient.Put(d.options.ConfigStoragePath+"/global/"+c.Name, c.String()) - if err != nil { - logrus.Error("put datacenter config to etcd error.", err.Error()) - return err - } - return nil -} - -//PutConfigKV 更新 -func (d *DataCenterConfig) PutConfigKV(kv *mvccpb.KeyValue) { - var cn model.ConfigUnit - if err := ffjson.Unmarshal(kv.Value, &cn); err == nil { - d.CacheConfig(&cn) - } else { - logrus.Errorf("parse config error,%s", err.Error()) - } -} - -//DeleteConfig 删除配置 -func (d *DataCenterConfig) DeleteConfig(name string) { - d.config.Delete(name) -} - -//GetGroupConfig get group config -func (d *DataCenterConfig) GetGroupConfig(groupID string) *GroupContext { - if c, ok := d.groupConfigs[groupID]; ok { - return c - } - c := NewGroupContext(groupID) - d.groupConfigs[groupID] = c - return c -} diff --git a/node/core/config/taskconfig.go b/node/core/config/taskconfig.go deleted file mode 100644 index b59b8a01f..000000000 --- a/node/core/config/taskconfig.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package config - -import ( - "context" - "fmt" - "regexp" - "strconv" - "strings" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/store" - "github.com/sirupsen/logrus" -) - -//GroupContext 组任务会话 -type GroupContext struct { - ctx context.Context - groupID string -} - -//NewGroupContext 创建组配置会话 -func NewGroupContext(groupID string) *GroupContext { - return &GroupContext{ - ctx: context.Background(), - groupID: groupID, - } -} - -//Add 添加配置项 -func (g *GroupContext) Add(k, v interface{}) { - g.ctx = context.WithValue(g.ctx, k, v) - store.DefalutClient.Put(fmt.Sprintf("%s/group/%s/%s", option.Config.ConfigStoragePath, g.groupID, k), v.(string)) -} - -//Get get -func (g *GroupContext) Get(k interface{}) interface{} { - if v := g.ctx.Value(k); v != nil { - return v - } - res, _ := store.DefalutClient.Get(fmt.Sprintf("%s/group/%s/%s", option.Config.ConfigStoragePath, g.groupID, k)) - if res.Count > 0 { - return string(res.Kvs[0].Value) - } - return "" -} - -//GetString get -func (g *GroupContext) GetString(k interface{}) string { - if v := g.ctx.Value(k); v != nil { - return v.(string) - } - res, _ := store.DefalutClient.Get(fmt.Sprintf("%s/group/%s/%s", option.Config.ConfigStoragePath, g.groupID, k)) - if res.Count > 0 { - return string(res.Kvs[0].Value) - } - return "" -} - -var reg = regexp.MustCompile(`(?U)\$\{.*\}`) - -//GetConfigKey 获取配置key -func GetConfigKey(rk string) string { - if len(rk) < 4 { - return "" - } - left := strings.Index(rk, "{") - right := strings.Index(rk, "}") - return rk[left+1 : right] -} - -//ResettingArray 根据实际配置解析数组字符串 -func ResettingArray(groupCtx *GroupContext, source []string) ([]string, error) { - sourcecopy := make([]string, len(source)) - // 使用copy - for i, s := range source { - sourcecopy[i] = s - } - for i, s := range sourcecopy { - resultKey := reg.FindAllString(s, -1) - for _, rk := range resultKey { - key := strings.ToUpper(GetConfigKey(rk)) - // if len(key) < 1 { - // return nil, fmt.Errorf("%s Parameter configuration error.please make sure `${XXX}`", s) - // } - value := GetConfig(groupCtx, key) - sourcecopy[i] = strings.Replace(s, rk, value, -1) - } - } - return sourcecopy, nil -} - -//GetConfig 获取配置信息 -func GetConfig(groupCtx *GroupContext, key string) string { - if groupCtx != nil { - value := groupCtx.Get(key) - if value != nil { - switch value.(type) { - case string: - if value.(string) != "" { - return value.(string) - } - case int: - if value.(int) != 0 { - return strconv.Itoa(value.(int)) - } - case []string: - if value.([]string) != nil { - result := strings.Join(value.([]string), ",") - if strings.HasSuffix(result, ",") { - return result - } - return result + "," - } - case []interface{}: - if value.([]interface{}) != nil && len(value.([]interface{})) > 0 { - result := "" - for _, v := range value.([]interface{}) { - switch v.(type) { - case string: - result += v.(string) + "," - case int: - result += strconv.Itoa(v.(int)) + "," - } - } - return result - } - } - } - } - if dataCenterConfig == nil { - return "" - } - cn := dataCenterConfig.GetConfig(key) - if cn != nil && cn.Value != nil { - if cn.ValueType == "string" || cn.ValueType == "" { - return cn.Value.(string) - } - if cn.ValueType == "array" { - switch cn.Value.(type) { - case []string: - return strings.Join(cn.Value.([]string), ",") - case []interface{}: - vas := cn.Value.([]interface{}) - result := "" - for _, va := range vas { - switch va.(type) { - case string: - result += va.(string) + "," - case int: - result += strconv.Itoa(va.(int)) + "," - } - } - return result - } - } - if cn.ValueType == "int" { - return strconv.Itoa(cn.Value.(int)) - } - } - logrus.Warnf("can not find config for key %s", key) - return "" -} - -//ResettingString 根据实际配置解析字符串 -func ResettingString(groupCtx *GroupContext, source string) (string, error) { - resultKey := reg.FindAllString(source, -1) - for _, rk := range resultKey { - key := strings.ToUpper(GetConfigKey(rk)) - // if len(key) < 1 { - // return nil, fmt.Errorf("%s Parameter configuration error.please make sure `${XXX}`", s) - // } - value := GetConfig(groupCtx, key) - source = strings.Replace(source, rk, value, -1) - } - return source, nil -} - -//ResettingMap 根据实际配置解析Map字符串 -func ResettingMap(groupCtx *GroupContext, source map[string]string) (map[string]string, error) { - sourcecopy := make(map[string]string, len(source)) - for k, v := range source { - sourcecopy[k] = v - } - for k, s := range sourcecopy { - resultKey := reg.FindAllString(s, -1) - for _, rk := range resultKey { - key := strings.ToUpper(GetConfigKey(rk)) - // if len(key) < 1 { - // return nil, fmt.Errorf("%s Parameter configuration error.please make sure `${XXX}`", s) - // } - value := GetConfig(groupCtx, key) - sourcecopy[k] = strings.Replace(s, rk, value, -1) - } - } - return sourcecopy, nil -} diff --git a/node/core/config/taskconfig_test.go b/node/core/config/taskconfig_test.go deleted file mode 100644 index 3eaf14169..000000000 --- a/node/core/config/taskconfig_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package config - -import "testing" -import "fmt" - -func TestResettingArray(t *testing.T) { - c := CreateDataCenterConfig() - c.Start() - defer c.Stop() - groupCtx := NewGroupContext("") - groupCtx.Add("SADAS", "Test") - result, err := ResettingArray(groupCtx, []string{"Sdd${sadas}asd", "${MYSQL_HOST}", "12_${MYSQL_PASS}_sd"}) - if err != nil { - t.Fatal(err) - } - t.Log(result) -} - -func TestResettingString(t *testing.T) { - c := CreateDataCenterConfig() - c.Start() - defer c.Stop() - groupCtx := NewGroupContext("") - groupCtx.Add("SADAS", "Test") - result, err := ResettingString(nil, "${MYSQL_HOST}Sdd${sadas}asd") - if err != nil { - t.Fatal(err) - } - t.Log(result) -} - -func TestGroupConfig(t *testing.T) { - groupCtx := NewGroupContext("") - v := groupCtx.Get("API") - fmt.Println("asdasd:", v) -} diff --git a/node/core/service/app_service.go b/node/core/service/app_service.go deleted file mode 100644 index 557b2589a..000000000 --- a/node/core/service/app_service.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package service - -import ( - "fmt" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/node/core/store" - "strconv" - "strings" - - "github.com/coreos/etcd/clientv3" - "github.com/sirupsen/logrus" -) - -//AppService app service -type AppService struct { - Prefix string - c *option.Conf -} - -//CreateAppService create -func CreateAppService(c *option.Conf) *AppService { - return &AppService{ - c: c, - Prefix: "/traefik", - } -} - -//FindAppEndpoints 获取app endpoint -func (a *AppService) FindAppEndpoints(appName string) []*config.Endpoint { - var ends = make(map[string]*config.Endpoint) - res, err := store.DefalutClient.Get(fmt.Sprintf("%s/backends/%s/servers", a.Prefix, appName), clientv3.WithPrefix()) - if err != nil { - logrus.Errorf("list all servers of %s error.%s", appName, err.Error()) - return nil - } - if res.Count == 0 { - return nil - } - for _, kv := range res.Kvs { - if strings.HasSuffix(string(kv.Key), "/url") { //获取服务地址 - kstep := strings.Split(string(kv.Key), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-2] - serverURL := string(kv.Value) - if en, ok := ends[serverName]; ok { - en.URL = serverURL - } else { - ends[serverName] = &config.Endpoint{Name: serverName, URL: serverURL} - } - } - } - if strings.HasSuffix(string(kv.Key), "/weight") { //获取服务权重 - kstep := strings.Split(string(kv.Key), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-2] - serverWeight := string(kv.Value) - if en, ok := ends[serverName]; ok { - var err error - en.Weight, err = strconv.Atoi(serverWeight) - if err != nil { - logrus.Error("get server weight error.", err.Error()) - } - } else { - weight, err := strconv.Atoi(serverWeight) - if err != nil { - logrus.Error("get server weight error.", err.Error()) - } - ends[serverName] = &config.Endpoint{Name: serverName, Weight: weight} - } - } - } - } - result := []*config.Endpoint{} - for _, v := range ends { - result = append(result, v) - } - return result -} diff --git a/node/core/service/discover_server.go b/node/core/service/discover_server.go index cef9b8c96..eaf1ee100 100644 --- a/node/core/service/discover_server.go +++ b/node/core/service/discover_server.go @@ -19,409 +19,45 @@ package service import ( + "context" "fmt" - "reflect" - "strconv" "strings" api_model "github.com/goodrain/rainbond/api/model" - "github.com/goodrain/rainbond/api/util" - "github.com/goodrain/rainbond/cmd/node/option" - envoyv1 "github.com/goodrain/rainbond/node/core/envoy/v1" - "github.com/goodrain/rainbond/node/core/store" - "github.com/goodrain/rainbond/node/kubecache" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/pquerna/ffjson/ffjson" "github.com/sirupsen/logrus" - "k8s.io/apimachinery/pkg/labels" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" ) //DiscoverAction DiscoverAction type DiscoverAction struct { conf *option.Conf - etcdCli *store.Client - kubecli kubecache.KubeClient + kubecli *kubernetes.Clientset } //CreateDiscoverActionManager CreateDiscoverActionManager -func CreateDiscoverActionManager(conf *option.Conf, kubecli kubecache.KubeClient) *DiscoverAction { +func CreateDiscoverActionManager(conf *option.Conf, kubecli *kubernetes.Clientset) *DiscoverAction { return &DiscoverAction{ conf: conf, - etcdCli: store.DefalutClient, kubecli: kubecli, } } -//DiscoverService sds -func (d *DiscoverAction) DiscoverService(serviceInfo string) (*envoyv1.SDSHost, *util.APIHandleError) { - mm := strings.Split(serviceInfo, "_") - if len(mm) < 4 { - return nil, util.CreateAPIHandleError(400, fmt.Errorf("service_name is not in good format")) - } - namespace := mm[0] - serviceAlias := mm[1] - destServiceAlias := mm[2] - //dPort := mm[3] - - labelname := fmt.Sprintf("name=%sService", destServiceAlias) - selector, err := labels.Parse(labelname) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - endpoints, err := d.kubecli.GetEndpoints(namespace, selector) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - services, err := d.kubecli.GetServices(namespace, selector) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - if len(endpoints) == 0 { - if destServiceAlias == serviceAlias { - labelname := fmt.Sprintf("name=%sServiceOUT", destServiceAlias) - selector, err := labels.Parse(labelname) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - endpoints, err = d.kubecli.GetEndpoints(namespace, selector) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - if len(endpoints) == 0 { - return nil, util.CreateAPIHandleError(400, fmt.Errorf("outer have no endpoints")) - } - services, err = d.kubecli.GetServices(namespace, selector) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - } else { - return nil, util.CreateAPIHandleError(400, fmt.Errorf("inner have no endpoints")) - } - } - var sdsL []*envoyv1.DiscoverHost - for key, item := range endpoints { - if len(item.Subsets) < 1 { - continue - } - addressList := item.Subsets[0].Addresses - if len(addressList) == 0 { - addressList = item.Subsets[0].NotReadyAddresses - } - toport := int(services[key].Spec.Ports[0].Port) - if serviceAlias == destServiceAlias { - if originPort, ok := services[key].Labels["origin_port"]; ok { - origin, err := strconv.Atoi(originPort) - if err != nil { - return nil, util.CreateAPIHandleError(500, fmt.Errorf("have no origin_port")) - } - toport = origin - } - } - for _, ip := range addressList { - sdsP := &envoyv1.DiscoverHost{ - Address: ip.IP, - Port: toport, - } - sdsL = append(sdsL, sdsP) - } - } - sds := &envoyv1.SDSHost{ - Hosts: sdsL, - } - return sds, nil -} - -//DiscoverClusters cds discover -//create cluster by get depend app endpoints from plugin config -func (d *DiscoverAction) DiscoverClusters( - tenantService, - serviceCluster string) (*envoyv1.CDSCluter, *util.APIHandleError) { - nn := strings.Split(tenantService, "_") - if len(nn) != 3 { - return nil, util.CreateAPIHandleError(400, fmt.Errorf("namesapces and service_alias not in good format")) - } - namespace := nn[0] - pluginID := nn[1] - serviceAlias := nn[2] - var cds = &envoyv1.CDSCluter{} - resources, err := d.GetPluginConfigs(namespace, serviceAlias, pluginID) - if err != nil { - if strings.Contains(err.Error(), "is not exist") { - return cds, nil - } - logrus.Warnf("in lds get env %s error: %v", namespace+serviceAlias+pluginID, err) - return nil, util.CreateAPIHandleError(500, fmt.Errorf( - "get env %s error: %v", namespace+serviceAlias+pluginID, err)) - } - if resources == nil { - return cds, nil - } - if resources.BaseServices != nil && len(resources.BaseServices) > 0 { - clusters, err := d.upstreamClusters(serviceAlias, namespace, resources.BaseServices) - if err != nil { - return nil, err - } - cds.Clusters.Append(clusters) - } - if resources.BasePorts != nil && len(resources.BasePorts) > 0 { - clusters, err := d.downstreamClusters(serviceAlias, namespace, resources.BasePorts) - if err != nil { - return nil, err - } - cds.Clusters.Append(clusters) - } - return cds, nil -} - -//upstreamClusters handle upstream app cluster -// handle kubernetes inner service -func (d *DiscoverAction) upstreamClusters(serviceAlias, namespace string, dependsServices []*api_model.BaseService) (cdsClusters envoyv1.Clusters, err *util.APIHandleError) { - var portMap = make(map[int32]int) - for i := range dependsServices { - destService := dependsServices[i] - destServiceAlias := destService.DependServiceAlias - labelname := fmt.Sprintf("name=%sService", destServiceAlias) - selector, err := labels.Parse(labelname) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - services, err := d.kubecli.GetServices(namespace, selector) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - if len(services) == 0 { - continue - } - for _, service := range services { - inner, ok := service.Labels["service_type"] - port := service.Spec.Ports[0] - if !ok || inner != "inner" { - continue - } - pcds := &envoyv1.Cluster{ - Name: fmt.Sprintf("%s_%s_%s_%v", namespace, serviceAlias, destServiceAlias, port.Port), - Type: "sds", - ConnectTimeoutMs: 250, - LbType: "round_robin", - ServiceName: fmt.Sprintf("%s_%s_%s_%v", namespace, serviceAlias, destServiceAlias, port.Port), - OutlierDetection: envoyv1.CreatOutlierDetection(destService.Options), - CircuitBreaker: envoyv1.CreateCircuitBreaker(destService.Options), - } - cdsClusters = append(cdsClusters, pcds) - //create cluster base unique port - if count, ok := portMap[port.Port]; ok && count == 1 { - pcds := &envoyv1.Cluster{ - Name: fmt.Sprintf("%s_%s_%v", namespace, serviceAlias, port.Port), - Type: "sds", - ConnectTimeoutMs: 250, - LbType: "round_robin", - ServiceName: fmt.Sprintf("%s_%s_%s_%v", namespace, serviceAlias, destServiceAlias, port.Port), - OutlierDetection: envoyv1.CreatOutlierDetection(destService.Options), - CircuitBreaker: envoyv1.CreateCircuitBreaker(destService.Options), - } - cdsClusters = append(cdsClusters, pcds) - portMap[port.Port] = 2 - } else { - portMap[port.Port] = 1 - } - continue - } - } - return -} - -//downstreamClusters handle app self cluster -//only local port -func (d *DiscoverAction) downstreamClusters(serviceAlias, namespace string, ports []*api_model.BasePort) (cdsClusters envoyv1.Clusters, err *util.APIHandleError) { - for i := range ports { - port := ports[i] - localhost := fmt.Sprintf("tcp://127.0.0.1:%d", port.Port) - pcds := &envoyv1.Cluster{ - Name: fmt.Sprintf("%s_%s_%v", namespace, serviceAlias, port.Port), - Type: "static", - ConnectTimeoutMs: 250, - LbType: "round_robin", - Hosts: []envoyv1.Host{envoyv1.Host{URL: localhost}}, - CircuitBreaker: envoyv1.CreateCircuitBreaker(port.Options), - } - cdsClusters = append(cdsClusters, pcds) - continue - } - return -} - -// DiscoverListeners lds -// create listens by get depend app endpoints from plugin config -func (d *DiscoverAction) DiscoverListeners( - tenantService, serviceCluster string) (*envoyv1.LDSListener, *util.APIHandleError) { - nn := strings.Split(tenantService, "_") - if len(nn) != 3 { - return nil, util.CreateAPIHandleError(400, - fmt.Errorf("namesapces and service_alias not in good format")) - } - namespace := nn[0] - pluginID := nn[1] - serviceAlias := nn[2] - lds := &envoyv1.LDSListener{} - resources, defaultMesh, err := d.GetPluginConfigAndType(namespace, serviceAlias, pluginID) - if err != nil { - if strings.Contains(err.Error(), "is not exist") { - return lds, nil - } - logrus.Warnf("in lds get env %s error: %v", namespace+serviceAlias+pluginID, err) - return nil, util.CreateAPIHandleError(500, fmt.Errorf( - "get env %s error: %v", namespace+serviceAlias+pluginID, err)) - } - if resources == nil { - return lds, nil - } - if resources.BaseServices != nil && len(resources.BaseServices) > 0 { - listeners, err := d.upstreamListener(serviceAlias, namespace, resources.BaseServices, !defaultMesh) - if err != nil { - return nil, err - } - lds.Listeners.Append(listeners) - } - if resources.BasePorts != nil && len(resources.BasePorts) > 0 { - listeners, err := d.downstreamListener(serviceAlias, namespace, resources.BasePorts) - if err != nil { - return nil, err - } - lds.Listeners.Append(listeners) - } - - return lds, nil -} - -//upstreamListener handle upstream app listener -// handle kubernetes inner service -func (d *DiscoverAction) upstreamListener(serviceAlias, namespace string, dependsServices []*api_model.BaseService, createHTTPListen bool) (envoyv1.Listeners, *util.APIHandleError) { - var vhL []*envoyv1.VirtualHost - var ldsL envoyv1.Listeners - var portMap = make(map[int32]int, 0) - for i := range dependsServices { - destService := dependsServices[i] - destServiceAlias := destService.DependServiceAlias - labelname := fmt.Sprintf("name=%sService", destServiceAlias) - selector, err := labels.Parse(labelname) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - services, err := d.kubecli.GetServices(namespace, selector) - if err != nil { - return nil, util.CreateAPIHandleError(500, err) - } - if len(services) == 0 { - logrus.Debugf("inner endpoints items length is 0, continue") - continue - } - for _, service := range services { - inner, ok := service.Labels["service_type"] - if !ok || inner != "inner" { - continue - } - port := service.Spec.Ports[0].Port - clusterName := fmt.Sprintf("%s_%s_%s_%d", namespace, serviceAlias, destServiceAlias, port) - // Unique by listen port - if _, ok := portMap[port]; !ok { - listenerName := fmt.Sprintf("%s_%s_%d", namespace, serviceAlias, port) - plds := envoyv1.CreateTCPCommonListener(listenerName, clusterName, fmt.Sprintf("tcp://127.0.0.1:%d", port)) - ldsL = append(ldsL, plds) - portMap[port] = len(ldsL) - 1 - } - portProtocol, ok := service.Labels["port_protocol"] - if !ok { - portProtocol = destService.Protocol - } - if portProtocol != "" { - //TODO: support more protocol - switch portProtocol { - case "http", "https": - options := destService.Options - var prs envoyv1.HTTPRoute - prs.TimeoutMS = 0 - prs.Prefix = envoyv1.GetOptionValues(envoyv1.KeyPrefix, options).(string) - wcn := &envoyv1.WeightedClusterEntry{ - Name: clusterName, - Weight: envoyv1.GetOptionValues(envoyv1.KeyWeight, options).(int), - } - prs.WeightedClusters = &envoyv1.WeightedCluster{ - Clusters: []*envoyv1.WeightedClusterEntry{wcn}, - } - prs.Headers = envoyv1.GetOptionValues(envoyv1.KeyHeaders, options).([]envoyv1.Header) - pvh := &envoyv1.VirtualHost{ - Name: fmt.Sprintf("%s_%s_%s_%d", namespace, serviceAlias, destServiceAlias, port), - Domains: envoyv1.GetOptionValues(envoyv1.KeyDomains, options).([]string), - Routes: []*envoyv1.HTTPRoute{&prs}, - } - vhL = append(vhL, pvh) - continue - default: - continue - } - } - } - } - // create common http listener - if len(vhL) != 0 && createHTTPListen { - newVHL := envoyv1.UniqVirtualHost(vhL) - for i, lds := range ldsL { - if lds.Address == "tcp://127.0.0.1:80" { - ldsL = append(ldsL[:i], ldsL[i+1:]...) - break - } - } - plds := envoyv1.CreateHTTPCommonListener(fmt.Sprintf("%s_%s_http_80", namespace, serviceAlias), newVHL...) - ldsL = append(ldsL, plds) - } - return ldsL, nil -} - -//downstreamListener handle app self port listener -func (d *DiscoverAction) downstreamListener(serviceAlias, namespace string, ports []*api_model.BasePort) (envoyv1.Listeners, *util.APIHandleError) { - var ldsL envoyv1.Listeners - var portMap = make(map[int32]int, 0) - for i := range ports { - p := ports[i] - port := int32(p.Port) - clusterName := fmt.Sprintf("%s_%s_%d", namespace, serviceAlias, port) - if _, ok := portMap[port]; !ok { - plds := envoyv1.CreateTCPCommonListener(clusterName, clusterName, fmt.Sprintf("tcp://0.0.0.0:%d", p.ListenPort)) - ldsL = append(ldsL, plds) - portMap[port] = 1 - } - } - return ldsL, nil -} - -//Duplicate Duplicate -func Duplicate(a interface{}) (ret []interface{}) { - va := reflect.ValueOf(a) - for i := 0; i < va.Len(); i++ { - if i > 0 && reflect.DeepEqual(va.Index(i-1).Interface(), va.Index(i).Interface()) { - continue - } - ret = append(ret, va.Index(i).Interface()) - } - return ret -} - //GetPluginConfigs get plugin configs //if not exist return error -func (d *DiscoverAction) GetPluginConfigs(namespace, sourceAlias, pluginID string) (*api_model.ResourceSpec, error) { +func (d *DiscoverAction) GetPluginConfigs(ctx context.Context, namespace, sourceAlias, pluginID string) (*api_model.ResourceSpec, error) { labelname := fmt.Sprintf("plugin_id=%s,service_alias=%s", pluginID, sourceAlias) - selector, err := labels.Parse(labelname) - if err != nil { - return nil, err - } - configs, err := d.kubecli.GetConfig(namespace, selector) + configs, err := d.kubecli.CoreV1().ConfigMaps(namespace).List(ctx, v1.ListOptions{LabelSelector: labelname}) if err != nil { return nil, fmt.Errorf("get plugin config failure %s", err.Error()) } - if len(configs) == 0 { + if len(configs.Items) == 0 { return nil, nil } var rs api_model.ResourceSpec - if err := ffjson.Unmarshal([]byte(configs[0].Data["plugin-config"]), &rs); err != nil { + if err := ffjson.Unmarshal([]byte(configs.Items[0].Data["plugin-config"]), &rs); err != nil { logrus.Errorf("unmashal etcd v error, %v", err) return nil, err } @@ -430,23 +66,19 @@ func (d *DiscoverAction) GetPluginConfigs(namespace, sourceAlias, pluginID strin //GetPluginConfigAndType get plugin configs and plugin type (default mesh or custom mesh) //if not exist return error -func (d *DiscoverAction) GetPluginConfigAndType(namespace, sourceAlias, pluginID string) (*api_model.ResourceSpec, bool, error) { +func (d *DiscoverAction) GetPluginConfigAndType(ctx context.Context, namespace, sourceAlias, pluginID string) (*api_model.ResourceSpec, bool, error) { labelname := fmt.Sprintf("plugin_id=%s,service_alias=%s", pluginID, sourceAlias) - selector, err := labels.Parse(labelname) - if err != nil { - return nil, false, err - } - configs, err := d.kubecli.GetConfig(namespace, selector) + configs, err := d.kubecli.CoreV1().ConfigMaps(namespace).List(ctx, v1.ListOptions{LabelSelector: labelname}) if err != nil { return nil, false, fmt.Errorf("get plugin config failure %s", err.Error()) } - if len(configs) == 0 { + if len(configs.Items) == 0 { return nil, false, nil } var rs api_model.ResourceSpec - if err := ffjson.Unmarshal([]byte(configs[0].Data["plugin-config"]), &rs); err != nil { + if err := ffjson.Unmarshal([]byte(configs.Items[0].Data["plugin-config"]), &rs); err != nil { logrus.Errorf("unmashal etcd v error, %v", err) - return nil, strings.Contains(configs[0].Name, "def-mesh"), err + return nil, strings.Contains(configs.Items[0].Name, "def-mesh"), err } - return &rs, strings.Contains(configs[0].Name, "def-mesh"), nil + return &rs, strings.Contains(configs.Items[0].Name, "def-mesh"), nil } diff --git a/node/core/service/node_service.go b/node/core/service/node_service.go deleted file mode 100644 index 5acb34158..000000000 --- a/node/core/service/node_service.go +++ /dev/null @@ -1,466 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package service - -import ( - "errors" - "fmt" - "os" - "sort" - "strconv" - "time" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/event" - "github.com/goodrain/rainbond/node/api/model" - "github.com/goodrain/rainbond/node/kubecache" - "github.com/goodrain/rainbond/node/masterserver/node" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/utils" - "github.com/goodrain/rainbond/util" - ansibleUtil "github.com/goodrain/rainbond/util/ansible" - etcdutil "github.com/goodrain/rainbond/util/etcd" - licutil "github.com/goodrain/rainbond/util/license" - "github.com/sirupsen/logrus" - "github.com/twinj/uuid" -) - -//NodeService node service -type NodeService struct { - c *option.Conf - nodecluster *node.Cluster - kubecli kubecache.KubeClient -} - -//CreateNodeService create -func CreateNodeService(c *option.Conf, nodecluster *node.Cluster, kubecli kubecache.KubeClient) *NodeService { - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: c.EtcdEndpoints, - CaFile: c.EtcdCaFile, - CertFile: c.EtcdCertFile, - KeyFile: c.EtcdKeyFile, - DialTimeout: c.EtcdDialTimeout, - } - if err := event.NewManager(event.EventConfig{ - EventLogServers: c.EventLogServer, - DiscoverArgs: etcdClientArgs, - }); err != nil { - logrus.Errorf("create event manager faliure") - } - return &NodeService{ - c: c, - nodecluster: nodecluster, - kubecli: kubecli, - } -} - -//AddNode add node -func (n *NodeService) AddNode(node *client.APIHostNode) (*client.HostNode, *utils.APIHandleError) { - if n.nodecluster == nil { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("this node can not support this api")) - } - - nodes, err := n.GetAllNode() - if err != nil { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("error listing all nodes: %v", err)) - } - if !licutil.VerifyNodes(n.c.LicPath, n.c.LicSoPath, len(nodes)) { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("invalid license")) - } - - if err := node.Role.Validation(); err != nil { - return nil, utils.CreateAPIHandleError(400, err) - } - if node.ID == "" { - node.ID = uuid.NewV4().String() - } - if node.InternalIP == "" { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("node internal ip can not be empty")) - } - if node.RootPass != "" && node.Privatekey != "" { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("options private-key and root-pass are conflicting")) - } - existNode := n.nodecluster.GetAllNode() - for _, en := range existNode { - if node.InternalIP == en.InternalIP { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("node internal ip %s is exist", node.InternalIP)) - } - } - rbnode := node.Clone() - rbnode.CreateTime = time.Now() - n.nodecluster.UpdateNode(rbnode) - return rbnode, nil -} - -//InstallNode install node -func (n *NodeService) InstallNode(node *client.HostNode) *utils.APIHandleError { - node.Status = client.Installing - node.NodeStatus.Status = client.Installing - node.Labels["event_id"] = util.NewUUID() - n.nodecluster.UpdateNode(node) - go n.AsynchronousInstall(node, node.Labels["event_id"]) - return nil -} - -// check install scripts exists or not, if more than one master node has install scripts, choose one master node do it -func (n *NodeService) beforeInstall() (flag bool, err error) { - // ansible file must exists - // if ok, _ := util.FileExists("/opt/rainbond/rainbond-ansible/scripts/node.sh"); !ok { - // // TODO 通过etcd创建任务? - // return false, nil - // } - - // TODO 存在任务则加锁(etcd全局锁),让自己能够执行,加锁失败则不让执行 - - return true, nil -} - -// write ansible hosts file -func (n *NodeService) writeHostsFile() error { - hosts, err := n.GetAllNode() - if err != nil { - return err.Err - } - // use the value of environment if it is empty use default value - hostsFilePath := os.Getenv("HOSTS_FILE_PATH") - if hostsFilePath == "" { - hostsFilePath = "/opt/rainbond/rainbond-ansible/inventory/hosts" - } - installConfPath := os.Getenv("INSTALL_CONF_PATH") - if installConfPath == "" { - installConfPath = "/opt/rainbond/rainbond-ansible/scripts/installer/global.sh" - } - erro := ansibleUtil.WriteHostsFile(hostsFilePath, installConfPath, hosts) - if erro != nil { - return err - } - return nil -} - -//UpdateNodeStatus update node status -func (n *NodeService) UpdateNodeStatus(nodeID, status string) *utils.APIHandleError { - node := n.nodecluster.GetNode(nodeID) - if node == nil { - return utils.CreateAPIHandleError(400, errors.New("node can not be found")) - } - if status != client.Installing && status != client.InstallFailed && status != client.InstallSuccess { - return utils.CreateAPIHandleError(400, fmt.Errorf("node can not set status is %s", status)) - } - node.Status = status - node.NodeStatus.Status = status - n.nodecluster.UpdateNode(node) - return nil -} - -//AsynchronousInstall AsynchronousInstall -func (n *NodeService) AsynchronousInstall(node *client.HostNode, eventID string) { - // write ansible hosts file - err := n.writeHostsFile() - if err != nil { - logrus.Error("write hosts file error ", err.Error()) - return - } - // start add node script - logrus.Infof("Begin install node %s", node.ID) - // write log to event log - logger := event.GetManager().GetLogger(eventID) - option := ansibleUtil.NodeInstallOption{ - HostRole: node.Role.String(), - HostName: node.HostName, - InternalIP: node.InternalIP, - RootPass: node.RootPass, - KeyPath: node.KeyPath, - NodeID: node.ID, - Stdin: nil, - Stdout: logger.GetWriter("node-install", "info"), - Stderr: logger.GetWriter("node-install", "err"), - } - - err = ansibleUtil.RunNodeInstallCmd(option) - if err != nil { - logrus.Error("Error executing shell script : ", err) - node.Status = client.InstallFailed - node.NodeStatus.Status = client.InstallFailed - n.nodecluster.UpdateNode(node) - return - } - node.Status = client.InstallSuccess - node.NodeStatus.Status = client.InstallSuccess - n.nodecluster.UpdateNode(node) - logrus.Infof("Install node %s successful", node.ID) -} - -//DeleteNode delete node -//only node status is offline and node can be deleted -func (n *NodeService) DeleteNode(nodeID string) *utils.APIHandleError { - node := n.nodecluster.GetNode(nodeID) - if node == nil { - return utils.CreateAPIHandleError(404, fmt.Errorf("node is not found")) - } - if node.Status == "running" { - return utils.CreateAPIHandleError(401, fmt.Errorf("node is running, you must closed node process in node %s", nodeID)) - } - n.nodecluster.RemoveNode(node.ID) - _, err := node.DeleteNode() - if err != nil { - return utils.CreateAPIHandleErrorFromDBError("delete node", err) - } - return nil -} - -//GetNode get node info -func (n *NodeService) GetNode(nodeID string) (*client.HostNode, *utils.APIHandleError) { - node := n.nodecluster.GetNode(nodeID) - if node == nil { - return nil, utils.CreateAPIHandleError(404, fmt.Errorf("node no found")) - } - return node, nil -} - -//GetAllNode get all node -func (n *NodeService) GetAllNode() ([]*client.HostNode, *utils.APIHandleError) { - if n.nodecluster == nil { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("this node can not support this api")) - } - nodes := n.nodecluster.GetAllNode() - sort.Sort(client.NodeList(nodes)) - return nodes, nil -} - -//GetServicesHealthy get service health -func (n *NodeService) GetServicesHealthy() (map[string][]map[string]string, *utils.APIHandleError) { - if n.nodecluster == nil { - return nil, utils.CreateAPIHandleError(400, fmt.Errorf("this node can not support this api")) - } - StatusMap := make(map[string][]map[string]string, 30) - nodes := n.nodecluster.GetAllNode() - for _, n := range nodes { - for _, v := range n.NodeStatus.Conditions { - status, ok := StatusMap[string(v.Type)] - if !ok { - StatusMap[string(v.Type)] = []map[string]string{map[string]string{"type": string(v.Type), "status": string(v.Status), "message": string(v.Message), "hostname": n.HostName}} - } else { - list := status - list = append(list, map[string]string{"type": string(v.Type), "status": string(v.Status), "message": string(v.Message), "hostname": n.HostName}) - StatusMap[string(v.Type)] = list - } - - } - } - return StatusMap, nil -} - -//CordonNode set node is unscheduler -func (n *NodeService) CordonNode(nodeID string, unschedulable bool) *utils.APIHandleError { - hostNode, apierr := n.GetNode(nodeID) - if apierr != nil { - return apierr - } - if !hostNode.Role.HasRule(client.ComputeNode) { - return utils.CreateAPIHandleError(400, fmt.Errorf("this node can not support this api")) - } - k8snode := hostNode.NodeStatus.KubeNode - hostNode.Unschedulable = unschedulable - //update k8s node unshcedulable status - if k8snode != nil { - node, err := n.kubecli.CordonOrUnCordon(hostNode.ID, unschedulable) - if err != nil { - return utils.CreateAPIHandleError(500, fmt.Errorf("set node schedulable info error,%s", err.Error())) - } - hostNode.UpdateK8sNodeStatus(*node) - } - n.nodecluster.UpdateNode(hostNode) - return nil -} - -// GetNodeLabels returns node labels, including system labels and custom labels -func (n *NodeService) GetNodeLabels(nodeID string) (*model.LabelsResp, *utils.APIHandleError) { - node, err := n.GetNode(nodeID) - if err != nil { - return nil, err - } - labels := &model.LabelsResp{ - SysLabels: node.Labels, - CustomLabels: node.CustomLabels, - } - return labels, nil -} - -//PutNodeLabel update node label -func (n *NodeService) PutNodeLabel(nodeID string, labels map[string]string) (map[string]string, *utils.APIHandleError) { - hostNode, apierr := n.GetNode(nodeID) - if apierr != nil { - return nil, apierr - } - // api can only upate or create custom labels - if hostNode.CustomLabels == nil { - hostNode.CustomLabels = make(map[string]string) - } - for k, v := range labels { - hostNode.CustomLabels[k] = v - } - if hostNode.Role.HasRule(client.ComputeNode) && hostNode.NodeStatus.KubeNode != nil { - labels := hostNode.MergeLabels() - node, err := n.kubecli.UpdateLabels(nodeID, labels) - if err != nil { - return nil, utils.CreateAPIHandleError(500, fmt.Errorf("update k8s node labels error,%s", err.Error())) - } - hostNode.UpdateK8sNodeStatus(*node) - } - n.nodecluster.UpdateNode(hostNode) - return hostNode.CustomLabels, nil -} - -//DeleteNodeLabel delete node label -func (n *NodeService) DeleteNodeLabel(nodeID string, labels map[string]string) (map[string]string, *utils.APIHandleError) { - hostNode, apierr := n.GetNode(nodeID) - if apierr != nil { - return nil, apierr - } - - newLabels := make(map[string]string) - for k, v := range hostNode.CustomLabels { - if _, ok := labels[k]; !ok { - newLabels[k] = v - } - } - hostNode.CustomLabels = newLabels - if hostNode.Role.HasRule(client.ComputeNode) && hostNode.NodeStatus.KubeNode != nil { - labels := hostNode.MergeLabels() - node, err := n.kubecli.UpdateLabels(nodeID, labels) - if err != nil { - return nil, utils.CreateAPIHandleError(500, fmt.Errorf("update k8s node labels error,%s", err.Error())) - } - hostNode.UpdateK8sNodeStatus(*node) - } - n.nodecluster.UpdateNode(hostNode) - return hostNode.CustomLabels, nil -} - -//DownNode down node -func (n *NodeService) DownNode(nodeID string) (*client.HostNode, *utils.APIHandleError) { - hostNode, apierr := n.GetNode(nodeID) - if apierr != nil { - return nil, apierr - } - // add the node from k8s if type is compute - if hostNode.Role.HasRule(client.ComputeNode) && hostNode.NodeStatus.KubeNode != nil { - err := n.kubecli.DownK8sNode(hostNode.ID) - if err != nil { - logrus.Error("Failed to down node: ", err) - return nil, utils.CreateAPIHandleError(500, fmt.Errorf("k8s node down error,%s", err.Error())) - } - } - hostNode.Status = client.Offline - hostNode.NodeStatus.Status = client.Offline - n.nodecluster.UpdateNode(hostNode) - return hostNode, nil -} - -//UpNode up node -func (n *NodeService) UpNode(nodeID string) (*client.HostNode, *utils.APIHandleError) { - hostNode, apierr := n.GetNode(nodeID) - if apierr != nil { - return nil, apierr - } - hostNode.Unschedulable = false - // add the node to k8s if type is compute - if hostNode.Role.HasRule(client.ComputeNode) { - if k8snode, _ := n.kubecli.GetNode(hostNode.ID); k8snode == nil { - node, err := n.kubecli.UpK8sNode(hostNode) - if err != nil { - return nil, utils.CreateAPIHandleError(500, fmt.Errorf("k8s node up error,%s", err.Error())) - } - hostNode.UpdateK8sNodeStatus(*node) - } - } - hostNode.Status = client.Running - hostNode.NodeStatus.Status = client.Running - n.nodecluster.UpdateNode(hostNode) - return hostNode, nil -} - -//GetNodeResource get node resource -func (n *NodeService) GetNodeResource(nodeUID string) (*model.NodePodResource, *utils.APIHandleError) { - node, err := n.GetNode(nodeUID) - if err != nil { - return nil, err - } - if !node.Role.HasRule("compute") { - return nil, utils.CreateAPIHandleError(401, fmt.Errorf("node is not compute node")) - } - ps, error := n.kubecli.GetPodsByNodes(nodeUID) - if error != nil { - return nil, utils.CreateAPIHandleError(404, err) - } - var cpuTotal = node.AvailableCPU - var memTotal = node.AvailableMemory - var cpuLimit int64 - var cpuRequest int64 - var memLimit int64 - var memRequest int64 - for _, v := range ps { - for _, v := range v.Spec.Containers { - lc := v.Resources.Limits.Cpu().MilliValue() - cpuLimit += lc - } - for _, v := range v.Spec.Containers { - lm := v.Resources.Limits.Memory().Value() - memLimit += lm - } - for _, v := range v.Spec.Containers { - rc := v.Resources.Requests.Cpu().MilliValue() - cpuRequest += rc - } - for _, v := range v.Spec.Containers { - rm := v.Resources.Requests.Memory().Value() - memRequest += rm - } - } - var res model.NodePodResource - res.CPULimits = cpuLimit - //logrus.Infof("node %s cpu limit is %v",cpuLimit) - res.CPURequests = cpuRequest - res.CPU = int(cpuTotal) - res.MemR = int(memTotal / 1024 / 1024) - res.CPULimitsR = strconv.FormatFloat(float64(res.CPULimits*100)/float64(res.CPU*1000), 'f', 2, 64) - res.CPURequestsR = strconv.FormatFloat(float64(res.CPURequests*100)/float64(res.CPU*1000), 'f', 2, 64) - res.MemoryLimits = memLimit / 1024 / 1024 - res.MemoryLimitsR = strconv.FormatFloat(float64(res.MemoryLimits*100)/float64(res.MemR), 'f', 2, 64) - res.MemoryRequests = memRequest / 1024 / 1024 - res.MemoryRequestsR = strconv.FormatFloat(float64(res.MemoryRequests*100)/float64(res.MemR), 'f', 2, 64) - return &res, nil -} - -//CheckNode check node install status -func (n *NodeService) CheckNode(nodeUID string) (*model.InstallStatus, *utils.APIHandleError) { - - return nil, nil -} - -//DeleteNodeCondition delete node condition -func (n *NodeService) DeleteNodeCondition(nodeUID string, condition client.NodeConditionType) (*client.HostNode, *utils.APIHandleError) { - node, err := n.GetNode(nodeUID) - if err != nil { - return nil, err - } - node.DeleteCondition(condition) - n.nodecluster.UpdateNode(node) - return node, nil -} diff --git a/node/core/service/prometheus_service.go b/node/core/service/prometheus_service.go deleted file mode 100644 index 89faacfb2..000000000 --- a/node/core/service/prometheus_service.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package service - -import ( - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/api/model" - "github.com/goodrain/rainbond/node/utils" -) - -//PrometheusService prometheus service -type PrometheusService struct { - prometheusAPI *model.PrometheusAPI - conf *option.Conf -} - -var prometheusService *PrometheusService - -//CreatePrometheusService create prometheus service -func CreatePrometheusService(c *option.Conf) *PrometheusService { - if prometheusService == nil { - prometheusService = &PrometheusService{ - prometheusAPI: &model.PrometheusAPI{API: c.PrometheusAPI}, - conf: c, - } - } - return prometheusService -} - -//Exec exec prometheus query -func (ts *PrometheusService) Exec(expr string) (*model.Prome, *utils.APIHandleError) { - resp, err := ts.prometheusAPI.Query(expr) - if err != nil { - return nil, err - } - return resp, nil -} - -//ExecRange exec prometheus query range -func (ts *PrometheusService) ExecRange(expr, start, end, step string) (*model.Prome, *utils.APIHandleError) { - resp, err := ts.prometheusAPI.QueryRange(expr, start, end, step) - if err != nil { - return nil, err - } - return resp, nil -} diff --git a/node/core/serviceReg.go b/node/core/serviceReg.go deleted file mode 100644 index 66d05f079..000000000 --- a/node/core/serviceReg.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package core - -import ( - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/store" - "sync" - - "github.com/sirupsen/logrus" -) - -type etcdRegistrar struct { - //projects map[string]CallbackUpdate - lock sync.Mutex - client *store.Client - prefix string -} - -//GetRegistrar GetRegistrar -func GetRegistrar() *etcdRegistrar { - return &etcdRegistrar{ - prefix: option.Config.Service, - client: store.DefalutClient, - } -} -func (r *etcdRegistrar) RegService(serviceName, hostname, url string) error { - r.lock.Lock() - _, err := r.client.Put(r.getPath(serviceName, hostname), url) - if err != nil { - logrus.Infof("reg service %s to path %s failed,details %s", serviceName, r.getPath(serviceName, hostname), err.Error()) - return err - } - r.lock.Unlock() - return nil -} -func (r *etcdRegistrar) RemoveService(serviceName, hostname string) error { - r.lock.Lock() - _, err := r.client.Delete(r.getPath(serviceName, hostname)) - if err != nil { - logrus.Infof("del service %s from path %s failed,details %s", serviceName, r.getPath(serviceName, hostname), err.Error()) - return err - } - r.lock.Unlock() - return nil -} -func (r *etcdRegistrar) getPath(serviceName, hostName string) string { - return r.prefix + serviceName + "/servers/" + hostName + "/url" -} diff --git a/node/core/store/client.go b/node/core/store/client.go deleted file mode 100644 index b5ed3ba0a..000000000 --- a/node/core/store/client.go +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package store - -import ( - "errors" - "strings" - "time" - - client "github.com/coreos/etcd/clientv3" - - conf "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/utils" - - "context" - - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" -) - -var ( - //DefalutClient etcd client - DefalutClient *Client -) - -//Client etcd client -type Client struct { - *client.Client - reqTimeout time.Duration -} - -//NewClient 创建client -func NewClient(ctx context.Context, cfg *conf.Conf, etcdClientArgs *etcdutil.ClientArgs) (err error) { - cli, err := etcdutil.NewClient(ctx, etcdClientArgs) - if err != nil { - return - } - if cfg.ReqTimeout < 3 { - cfg.ReqTimeout = 3 - } - c := &Client{ - Client: cli, - reqTimeout: time.Duration(cfg.ReqTimeout) * time.Second, - } - logrus.Infof("init etcd client, endpoint is:%v", cfg.EtcdEndpoints) - DefalutClient = c - return -} - -//ErrKeyExists key exist error -var ErrKeyExists = errors.New("key already exists") - -// Post attempts to create the given key, only succeeding if the key did -// not yet exist. -func (c *Client) Post(key, val string, opts ...client.OpOption) (*client.PutResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - cmp := client.Compare(client.Version(key), "=", 0) - req := client.OpPut(key, val, opts...) - txnresp, err := c.Client.Txn(ctx).If(cmp).Then(req).Commit() - if err != nil { - return nil, err - } - if !txnresp.Succeeded { - return nil, ErrKeyExists - } - return txnresp.OpResponse().Put(), nil -} - -//Put etcd v3 Put -func (c *Client) Put(key, val string, opts ...client.OpOption) (*client.PutResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.Put(ctx, key, val, opts...) -} - -//NewRunnable NewRunnable -func (c *Client) NewRunnable(key, val string, opts ...client.OpOption) (*client.PutResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.Put(ctx, key, val, opts...) -} - -//DelRunnable DelRunnable -func (c *Client) DelRunnable(key string, opts ...client.OpOption) (*client.DeleteResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.Delete(ctx, key, opts...) -} - -//PutWithModRev PutWithModRev -func (c *Client) PutWithModRev(key, val string, rev int64) (*client.PutResponse, error) { - if rev == 0 { - return c.Put(key, val) - } - - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - tresp, err := DefalutClient.Txn(ctx). - If(client.Compare(client.ModRevision(key), "=", rev)). - Then(client.OpPut(key, val)). - Commit() - cancel() - if err != nil { - return nil, err - } - - if !tresp.Succeeded { - return nil, utils.ErrValueMayChanged - } - - resp := client.PutResponse(*tresp.Responses[0].GetResponsePut()) - return &resp, nil -} - -//IsRunnable IsRunnable -func (c *Client) IsRunnable(key string, opts ...client.OpOption) bool { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - resp, err := c.Client.Get(ctx, key, opts...) - if err != nil { - logrus.Infof("get key %s from etcd failed ,details %s", key, err.Error()) - return false - } - if resp.Count <= 0 { - logrus.Infof("get nothing from etcd by key %s", key) - return false - } - return true -} - -//Get get -func (c *Client) Get(key string, opts ...client.OpOption) (*client.GetResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.Get(ctx, key, opts...) -} - -//Delete delete v3 etcd -func (c *Client) Delete(key string, opts ...client.OpOption) (*client.DeleteResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.Delete(ctx, key, opts...) -} - -//Watch etcd v3 watch -func (c *Client) Watch(key string, opts ...client.OpOption) client.WatchChan { - return c.Client.Watch(context.Background(), key, opts...) -} - -//WatchByCtx watch by ctx -func (c *Client) WatchByCtx(ctx context.Context, key string, opts ...client.OpOption) client.WatchChan { - return c.Client.Watch(ctx, key, opts...) -} - -//KeepAliveOnce etcd v3 KeepAliveOnce -func (c *Client) KeepAliveOnce(id client.LeaseID) (*client.LeaseKeepAliveResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.KeepAliveOnce(ctx, id) -} - -//GetLock GetLock -func (c *Client) GetLock(key string, id client.LeaseID) (bool, error) { - key = conf.Config.LockPath + key - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - resp, err := DefalutClient.Txn(ctx). - If(client.Compare(client.CreateRevision(key), "=", 0)). - Then(client.OpPut(key, "", client.WithLease(id))). - Commit() - cancel() - - if err != nil { - return false, err - } - - return resp.Succeeded, nil -} - -//DelLock DelLock -func (c *Client) DelLock(key string) error { - _, err := c.Delete(conf.Config.LockPath + key) - return err -} - -//Grant etcd v3 Grant -func (c *Client) Grant(ttl int64) (*client.LeaseGrantResponse, error) { - ctx, cancel := context.WithTimeout(context.Background(), c.reqTimeout) - defer cancel() - return c.Client.Grant(ctx, ttl) -} - -//IsValidAsKeyPath IsValidAsKeyPath -func IsValidAsKeyPath(s string) bool { - return strings.IndexByte(s, '/') == -1 -} diff --git a/node/core/worker/manager.go b/node/core/worker/manager.go deleted file mode 100644 index 097cf644b..000000000 --- a/node/core/worker/manager.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package worker - -import ( - "github.com/goodrain/rainbond/node/api/model" - "sync" - - "golang.org/x/net/context" -) - -//Worker 工作器 -type Worker interface { - Start() - Stop() error - Result() -} - -//Manager 工作器管理 -type Manager struct { - workers map[string]Worker - lock sync.Mutex - ctx context.Context - cancel context.CancelFunc - closed chan struct{} -} - -//NewManager 新建Manager -func NewManager() *Manager { - ctx, cancel := context.WithCancel(context.Background()) - m := Manager{ - ctx: ctx, - cancel: cancel, - } - return &m -} - -//Start 启动 -func (m *Manager) Start() error { - return nil -} - -//Stop 关闭 -func (m *Manager) Stop() error { - return nil -} - -//AddWorker 添加worker -func (m *Manager) AddWorker(worker Worker) error { - return nil -} - -//RemoveWorker 移除worker -func (m *Manager) RemoveWorker(worker Worker) error { - return nil -} - -//NewTaskWorker 创建worker -func (m *Manager) NewTaskWorker(task *model.Task) Worker { - return &taskWorker{task} -} - -//NewTaskGroupWorker 创建worker -func (m *Manager) NewTaskGroupWorker(taskgroup *model.TaskGroup) Worker { - return &taskGroupWorker{taskgroup} -} diff --git a/node/core/worker/taskgroupworker.go b/node/core/worker/taskgroupworker.go deleted file mode 100644 index 422b6b836..000000000 --- a/node/core/worker/taskgroupworker.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package worker - -import "github.com/goodrain/rainbond/node/api/model" - -type taskGroupWorker struct { - taskGroup *model.TaskGroup -} - -func (t *taskGroupWorker) Start() { - -} - -func (t *taskGroupWorker) Stop() error { - return nil -} - -func (t *taskGroupWorker) Result() { - -} diff --git a/node/core/worker/taskworker.go b/node/core/worker/taskworker.go deleted file mode 100644 index b2db5a350..000000000 --- a/node/core/worker/taskworker.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package worker - -import "github.com/goodrain/rainbond/node/api/model" - -type taskWorker struct { - task *model.Task -} - -func (t *taskWorker) Start() { - -} - -func (t *taskWorker) Stop() error { - return nil -} - -func (t *taskWorker) Result() { - -} diff --git a/node/initiate/host.go b/node/initiate/host.go index 006522e39..7c5da1704 100644 --- a/node/initiate/host.go +++ b/node/initiate/host.go @@ -24,7 +24,7 @@ import ( "context" "errors" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" discover "github.com/goodrain/rainbond/discover.v2" "github.com/goodrain/rainbond/discover/config" "github.com/goodrain/rainbond/util" diff --git a/node/kubecache/kube_cache.go b/node/kubecache/kube_cache.go deleted file mode 100644 index 9b4c39874..000000000 --- a/node/kubecache/kube_cache.go +++ /dev/null @@ -1,501 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package kubecache - -import ( - "context" - "fmt" - "math" - "strings" - "time" - - "github.com/eapache/channels" - "k8s.io/apimachinery/pkg/labels" - - "github.com/pquerna/ffjson/ffjson" - - conf "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/nodem/client" - - "github.com/sirupsen/logrus" - v1 "k8s.io/api/core/v1" - "k8s.io/api/policy/v1beta1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes" -) - -// EventType - -type EventType string - -const ( - //EvictionKind EvictionKind - EvictionKind = "Eviction" - //EvictionSubresource EvictionSubresource - EvictionSubresource = "pods/eviction" - // CreateEvent event associated with new objects in an informer - CreateEvent EventType = "CREATE" - // UpdateEvent event associated with an object update in an informer - UpdateEvent EventType = "UPDATE" - // DeleteEvent event associated when an object is removed from an informer - DeleteEvent EventType = "DELETE" -) - -// Event holds the context of an event. -type Event struct { - Type EventType - Obj interface{} -} - -type l map[string]string - -func (l l) contains(k, v string) bool { - if l == nil { - return false - } - if val, ok := l[k]; !ok || val != v { - return false - } - return true -} - -//KubeClient KubeClient -type KubeClient interface { - UpK8sNode(*client.HostNode) (*v1.Node, error) - DownK8sNode(nodename string) error - GetAllPods() (pods []*v1.Pod, err error) - GetPods(namespace string) (pods []*v1.Pod, err error) - GetPodsBySelector(namespace string, selector labels.Selector) (pods []*v1.Pod, err error) - GetNodeByName(nodename string) (*v1.Node, error) - GetNodes() ([]*v1.Node, error) - GetNode(nodeName string) (*v1.Node, error) - CordonOrUnCordon(nodeName string, drain bool) (*v1.Node, error) - UpdateLabels(nodeName string, labels map[string]string) (*v1.Node, error) - DeleteOrEvictPodsSimple(nodeName string) error - GetPodsByNodes(nodeName string) (pods []v1.Pod, err error) - GetEndpoints(namespace string, selector labels.Selector) ([]*v1.Endpoints, error) - GetServices(namespace string, selector labels.Selector) ([]*v1.Service, error) - GetConfig(namespace string, selector labels.Selector) ([]*v1.ConfigMap, error) - Stop() -} - -//NewKubeClient NewKubeClient -func NewKubeClient(cfg *conf.Conf, clientset kubernetes.Interface) (KubeClient, error) { - stop := make(chan struct{}) - sharedInformers := informers.NewSharedInformerFactoryWithOptions(clientset, cfg.MinResyncPeriod) - - sharedInformers.Core().V1().Endpoints().Informer() - sharedInformers.Core().V1().Services().Informer() - sharedInformers.Core().V1().ConfigMaps().Informer() - sharedInformers.Core().V1().Nodes().Informer() - sharedInformers.Core().V1().Pods().Informer() - sharedInformers.Start(stop) - return &kubeClient{ - kubeclient: clientset, - stop: stop, - sharedInformers: sharedInformers, - }, nil -} - -type kubeClient struct { - kubeclient kubernetes.Interface - sharedInformers informers.SharedInformerFactory - stop chan struct{} - updateCh *channels.RingChannel -} - -func (k *kubeClient) Stop() { - if k.stop != nil { - close(k.stop) - } -} - -//GetNodeByName get node -func (k *kubeClient) GetNodeByName(nodename string) (*v1.Node, error) { - return k.sharedInformers.Core().V1().Nodes().Lister().Get(nodename) -} - -//CordonOrUnCordon node scheduler -// drain:true can't scheduler ,false can scheduler -func (k *kubeClient) CordonOrUnCordon(nodeName string, drain bool) (*v1.Node, error) { - data := fmt.Sprintf(`{"spec":{"unschedulable":%t}}`, drain) - node, err := k.kubeclient.CoreV1().Nodes().Patch(context.Background(), nodeName, types.StrategicMergePatchType, []byte(data), metav1.PatchOptions{}) - if err != nil { - return node, err - } - return node, nil -} - -//UpdateLabels update lables -func (k *kubeClient) UpdateLabels(nodeName string, labels map[string]string) (*v1.Node, error) { - labelStr, err := ffjson.Marshal(labels) - if err != nil { - return nil, err - } - data := fmt.Sprintf(`{"metadata":{"labels":%s}}`, string(labelStr)) - node, err := k.kubeclient.CoreV1().Nodes().Patch(context.Background(), nodeName, types.StrategicMergePatchType, []byte(data), metav1.PatchOptions{}) - if err != nil { - return node, err - } - return node, nil -} - -//DeleteOrEvictPodsSimple Evict the Pod from a node -func (k *kubeClient) DeleteOrEvictPodsSimple(nodeName string) error { - pods, err := k.GetPodsByNodes(nodeName) - if err != nil { - logrus.Infof("get pods of node %s failed ", nodeName) - return err - } - policyGroupVersion, err := k.SupportEviction() - if err != nil { - return err - } - if policyGroupVersion == "" { - return fmt.Errorf("the server can not support eviction subresource") - } - for _, v := range pods { - k.evictPod(v, policyGroupVersion) - } - return nil -} -func (k *kubeClient) GetPodsByNodes(nodeName string) (pods []v1.Pod, err error) { - podList, err := k.kubeclient.CoreV1().Pods(metav1.NamespaceAll).List(context.Background(), metav1.ListOptions{ - FieldSelector: fields.SelectorFromSet(fields.Set{"spec.nodeName": nodeName}).String()}) - if err != nil { - return pods, err - } - for _, pod := range podList.Items { - pods = append(pods, pod) - } - return pods, nil -} - -//evictPod 驱离POD -func (k *kubeClient) evictPod(pod v1.Pod, policyGroupVersion string) error { - deleteOptions := &metav1.DeleteOptions{} - eviction := &v1beta1.Eviction{ - TypeMeta: metav1.TypeMeta{ - APIVersion: policyGroupVersion, - Kind: EvictionKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: pod.Name, - Namespace: pod.Namespace, - }, - DeleteOptions: deleteOptions, - } - // Remember to change change the URL manipulation func when Evction's version change - return k.kubeclient.PolicyV1beta1().Evictions(eviction.Namespace).Evict(context.Background(), eviction) -} - -// deleteOrEvictPods deletes or evicts the pods on the api server -func (k *kubeClient) deleteOrEvictPods(pods []v1.Pod) error { - if len(pods) == 0 { - return nil - } - policyGroupVersion, err := k.SupportEviction() - if err != nil { - return err - } - getPodFn := func(namespace, name string) (*v1.Pod, error) { - return k.kubeclient.CoreV1().Pods(namespace).Get(context.Background(), name, metav1.GetOptions{}) - } - - return k.evictPods(pods, policyGroupVersion, getPodFn) -} - -func (k *kubeClient) deletePods(pods []v1.Pod, getPodFn func(namespace, name string) (*v1.Pod, error)) error { - // 0 timeout means infinite, we use MaxInt64 to represent it. - var globalTimeout time.Duration - if conf.Config.ReqTimeout == 0 { - globalTimeout = time.Duration(math.MaxInt64) - } else { - globalTimeout = 1 - } - for _, pod := range pods { - err := k.deletePod(pod) - if err != nil && !apierrors.IsNotFound(err) { - return err - } - } - _, err := waitForDelete(pods, time.Second*1, globalTimeout, false, getPodFn) - return err -} -func waitForDelete(pods []v1.Pod, interval, timeout time.Duration, usingEviction bool, getPodFn func(string, string) (*v1.Pod, error)) ([]v1.Pod, error) { - var verbStr string - if usingEviction { - verbStr = "evicted" - } else { - verbStr = "deleted" - } - err := wait.PollImmediate(interval, timeout, func() (bool, error) { - pendingPods := []v1.Pod{} - for i, pod := range pods { - p, err := getPodFn(pod.Namespace, pod.Name) - if apierrors.IsNotFound(err) || (p != nil && p.ObjectMeta.UID != pod.ObjectMeta.UID) { - fmt.Println(verbStr) - //cmdutil.PrintSuccess(o.mapper, false, o.Out, "pod", pod.Name, false, verbStr)//todo - continue - } else if err != nil { - return false, err - } else { - pendingPods = append(pendingPods, pods[i]) - } - } - pods = pendingPods - if len(pendingPods) > 0 { - return false, nil - } - return true, nil - }) - return pods, err -} -func (k *kubeClient) deletePod(pod v1.Pod) error { - deleteOptions := metav1.DeleteOptions{} - //if GracePeriodSeconds >= 0 { - //if 1 >= 0 { - // //gracePeriodSeconds := int64(GracePeriodSeconds) - // gracePeriodSeconds := int64(1) - // deleteOptions.GracePeriodSeconds = &gracePeriodSeconds - //} - gracePeriodSeconds := int64(1) - deleteOptions.GracePeriodSeconds = &gracePeriodSeconds - return k.kubeclient.CoreV1().Pods(pod.Namespace).Delete(context.Background(), pod.Name, deleteOptions) -} - -func (k *kubeClient) evictPods(pods []v1.Pod, policyGroupVersion string, getPodFn func(namespace, name string) (*v1.Pod, error)) error { - doneCh := make(chan bool, len(pods)) - errCh := make(chan error, 1) - - for _, pod := range pods { - go func(pod v1.Pod, doneCh chan bool, errCh chan error) { - var err error - for { - err = k.evictPod(pod, policyGroupVersion) - if err == nil { - break - } else if apierrors.IsNotFound(err) { - doneCh <- true - return - } else if apierrors.IsTooManyRequests(err) { - time.Sleep(5 * time.Second) - } else { - errCh <- fmt.Errorf("error when evicting pod %q: %v", pod.Name, err) - return - } - } - podArray := []v1.Pod{pod} - _, err = waitForDelete(podArray, time.Second*1, time.Duration(math.MaxInt64), true, getPodFn) - if err == nil { - doneCh <- true - } else { - errCh <- fmt.Errorf("error when waiting for pod %q terminating: %v", pod.Name, err) - } - }(pod, doneCh, errCh) - } - - doneCount := 0 - // 0 timeout means infinite, we use MaxInt64 to represent it. - var globalTimeout time.Duration - globalTimeout = time.Duration(math.MaxInt64) - //if conf.Config.ReqTimeout == 0 { - // //if Timeout == 0 { - // globalTimeout = time.Duration(math.MaxInt64) - //} else { - // //globalTimeout = Timeout - // globalTimeout = 1000 - //} - for { - select { - case err := <-errCh: - return err - case <-doneCh: - doneCount++ - if doneCount == len(pods) { - return nil - } - case <-time.After(globalTimeout): - return fmt.Errorf("Drain did not complete within %v", globalTimeout) - } - } -} - -// SupportEviction uses Discovery API to find out if the server support eviction subresource -// If support, it will return its groupVersion; Otherwise, it will return "" -func (k *kubeClient) SupportEviction() (string, error) { - discoveryClient := k.kubeclient.Discovery() - groupList, err := discoveryClient.ServerGroups() - if err != nil { - return "", err - } - foundPolicyGroup := false - var policyGroupVersion string - for _, group := range groupList.Groups { - if group.Name == "policy" { - foundPolicyGroup = true - policyGroupVersion = group.PreferredVersion.GroupVersion - break - } - } - if !foundPolicyGroup { - return "", nil - } - resourceList, err := discoveryClient.ServerResourcesForGroupVersion("v1") - if err != nil { - return "", err - } - for _, resource := range resourceList.APIResources { - if resource.Name == EvictionSubresource && resource.Kind == EvictionKind { - return policyGroupVersion, nil - } - } - return "", nil -} - -//GetAllPods get all pods -func (k *kubeClient) GetAllPods() (pods []*v1.Pod, err error) { - podList, err := k.sharedInformers.Core().V1().Pods().Lister().List(labels.Everything()) - if err != nil { - return pods, err - } - return podList, nil -} - -//GetAllPods get all pods -func (k *kubeClient) GetPods(namespace string) (pods []*v1.Pod, err error) { - podList, err := k.sharedInformers.Core().V1().Pods().Lister().Pods(namespace).List(labels.Everything()) - if err != nil { - return pods, err - } - return podList, nil -} - -//DeleteNode k8s节点下线 -func (k *kubeClient) DownK8sNode(nodename string) error { - _, err := k.GetNodeByName(nodename) - if err != nil { - logrus.Infof("get k8s node %s failed ", nodename) - return err - } - //节点禁止调度 - _, err = k.CordonOrUnCordon(nodename, true) - if err != nil { - logrus.Infof("cordon node %s failed ", nodename) - return err - } - //节点pod驱离 - err = k.DeleteOrEvictPodsSimple(nodename) - if err != nil { - logrus.Infof("delete or evict pods of node %s failed ", nodename) - return err - } - //删除节点 - err = k.deleteNodeWithoutPods(nodename) - if err != nil { - logrus.Infof("delete node with given name failed %s failed ", nodename) - return err - } - return nil -} - -func (k *kubeClient) deleteNodeWithoutPods(name string) error { - opt := metav1.DeleteOptions{} - err := k.kubeclient.CoreV1().Nodes().Delete(context.Background(), name, opt) - if err != nil { - return err - } - return nil -} - -//UpK8sNode create k8s node by rainbond node info -func (k *kubeClient) UpK8sNode(rainbondNode *client.HostNode) (*v1.Node, error) { - capacity := make(v1.ResourceList) - capacity[v1.ResourceCPU] = *resource.NewQuantity(rainbondNode.AvailableCPU, resource.BinarySI) - capacity[v1.ResourceMemory] = *resource.NewQuantity(rainbondNode.AvailableMemory, resource.BinarySI) - lbs := rainbondNode.MergeLabels() - node := &v1.Node{ - ObjectMeta: metav1.ObjectMeta{ - Name: strings.ToLower(rainbondNode.ID), - Labels: lbs, - }, - Spec: v1.NodeSpec{ - Unschedulable: rainbondNode.Unschedulable, - PodCIDR: rainbondNode.PodCIDR, - }, - Status: v1.NodeStatus{ - Capacity: capacity, - Allocatable: capacity, - Addresses: []v1.NodeAddress{ - v1.NodeAddress{Type: v1.NodeHostName, Address: rainbondNode.HostName}, - v1.NodeAddress{Type: v1.NodeInternalIP, Address: rainbondNode.InternalIP}, - v1.NodeAddress{Type: v1.NodeExternalIP, Address: rainbondNode.ExternalIP}, - }, - }, - } - //set rainbond creator lable - node.Labels["creator"] = "Rainbond" - savedNode, err := k.kubeclient.CoreV1().Nodes().Create(context.Background(), node, metav1.CreateOptions{}) - if err != nil { - return nil, err - } - logrus.Info("creating new node success , details: %v ", savedNode) - return node, nil -} - -func (k *kubeClient) GetPodsBySelector(namespace string, selector labels.Selector) ([]*v1.Pod, error) { - return k.sharedInformers.Core().V1().Pods().Lister().Pods(namespace).List(selector) -} - -func (k *kubeClient) GetEndpoints(namespace string, selector labels.Selector) ([]*v1.Endpoints, error) { - return k.sharedInformers.Core().V1().Endpoints().Lister().Endpoints(namespace).List(selector) -} -func (k *kubeClient) GetServices(namespace string, selector labels.Selector) ([]*v1.Service, error) { - return k.sharedInformers.Core().V1().Services().Lister().Services(namespace).List(selector) -} - -func (k *kubeClient) GetNodes() ([]*v1.Node, error) { - nodes, err := k.sharedInformers.Core().V1().Nodes().Lister().List(labels.Everything()) - if err != nil { - return nil, err - } - if len(nodes) == 0 { - list, err := k.kubeclient.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{}) - if err != nil { - return nil, err - } - for idx := range list.Items { - node := list.Items[idx] - nodes = append(nodes, &node) - } - } - return nodes, nil -} - -func (k *kubeClient) GetNode(nodeName string) (*v1.Node, error) { - return k.sharedInformers.Core().V1().Nodes().Lister().Get(nodeName) -} -func (k *kubeClient) GetConfig(namespace string, selector labels.Selector) ([]*v1.ConfigMap, error) { - return k.sharedInformers.Core().V1().ConfigMaps().Lister().ConfigMaps(namespace).List(selector) -} diff --git a/node/masterserver/README.md b/node/masterserver/README.md deleted file mode 100644 index f158d1602..000000000 --- a/node/masterserver/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# 主节点服务功能说明 -* 工作模型 - * 主节点可以有多个工作点,原则上云帮管理节点的实例工作为主节点模型。 - * 主节点的工作任务基于ETCD实现唯一性。例如处理一个任务的执行记录只由一个Master实例完成。 -* Job的创建 - * Task开始调度执行时创建Job对象,基于ETCD通知到执行节点进行执行。 -* 处理Job执行结果 - * 安装类任务结果处理,串接组安装任务,全局配置等。 - * 检测类任务结果处理,根据策略触发下次任务的执行,或者用户报警。 - * 处理组任务执行。 - diff --git a/node/masterserver/node/cluster.go b/node/masterserver/node/cluster.go deleted file mode 100644 index a5ae6e776..000000000 --- a/node/masterserver/node/cluster.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package node - -import ( - "context" - "sync" - "time" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/config" - "github.com/goodrain/rainbond/node/core/store" - "github.com/goodrain/rainbond/node/kubecache" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/util" - "github.com/goodrain/rainbond/util/watch" - "github.com/sirupsen/logrus" - "k8s.io/apimachinery/pkg/api/errors" -) - -//Cluster node controller -type Cluster struct { - ctx context.Context - cancel context.CancelFunc - nodes map[string]*client.HostNode - lock sync.Mutex - client *store.Client - kubecli kubecache.KubeClient - currentNode *client.HostNode - checkInstall chan *client.HostNode - datacenterConfig *config.DataCenterConfig -} - -//CreateCluster create node controller -func CreateCluster(kubecli kubecache.KubeClient, node *client.HostNode, datacenterConfig *config.DataCenterConfig) *Cluster { - ctx, cancel := context.WithCancel(context.Background()) - nc := Cluster{ - ctx: ctx, - cancel: cancel, - nodes: make(map[string]*client.HostNode, 5), - client: store.DefalutClient, - kubecli: kubecli, - currentNode: node, - checkInstall: make(chan *client.HostNode, 4), - datacenterConfig: datacenterConfig, - } - return &nc -} - -//Start 启动 -func (n *Cluster) Start(errchan chan error) error { - go n.loadAndWatchNodes(errchan) - // disable after 5.2.0 - // go n.installWorker(errchan) - go n.loopHandleNodeStatus(errchan) - return nil -} - -//Stop 停止 -func (n *Cluster) Stop(i interface{}) { - n.cancel() -} - -func (n *Cluster) installWorker(errchan chan error) { - for { - select { - case <-n.ctx.Done(): - return - case node := <-n.checkInstall: - n.installNode(node) - } - } -} - -//UpdateNode update node info -func (n *Cluster) UpdateNode(node *client.HostNode) { - n.nodes[node.ID] = node - saveNode := *node - saveNode.NodeStatus.KubeNode = nil - _, err := n.client.Put(option.Config.NodePath+"/"+node.ID, saveNode.String()) - if err != nil { - logrus.Errorf("update node config failure %s", err.Error()) - } -} - -//GetNode get rainbond node info -func (n *Cluster) GetNode(id string) *client.HostNode { - n.lock.Lock() - defer n.lock.Unlock() - if node, ok := n.nodes[id]; ok { - return node - } - return nil -} -func (n *Cluster) getKubeNodeCount() int { - kubeNodes, _ := n.kubecli.GetNodes() - return len(kubeNodes) -} -func (n *Cluster) loopHandleNodeStatus(errchan chan error) { - if err := util.Exec(n.ctx, func() error { - n.lock.Lock() - defer n.lock.Unlock() - for key, node := range n.nodes { - if time.Since(node.NodeStatus.NodeUpdateTime) > time.Minute*1 { - n.handleNodeStatus(n.nodes[key]) - } - } - return nil - }, time.Second*10); err != nil { - errchan <- err - } -} - -//handleNodeStatus Master integrates node status and kube node status -func (n *Cluster) handleNodeStatus(v *client.HostNode) { - if v.Status == client.NotInstalled || v.Status == client.Installing || v.Status == client.InstallFailed { - if v.NodeStatus.Status != "running" { - return - } - } - if time.Since(v.NodeStatus.NodeUpdateTime) > time.Minute*1 { - v.Status = client.Unknown - v.NodeStatus.Status = client.Unknown - v.GetAndUpdateCondition(client.NodeUp, client.ConditionFalse, "", "Node lost connection, state unknown") - //node lost connection, advice offline action - //v.NodeStatus.AdviceAction = append(v.NodeStatus.AdviceAction, "offline") - } else { - v.GetAndUpdateCondition(client.NodeUp, client.ConditionTrue, "", "") - v.NodeStatus.CurrentScheduleStatus = !v.Unschedulable - if v.Role.HasRule("compute") { - k8sNode, err := n.kubecli.GetNode(v.ID) - if err != nil && !errors.IsNotFound(err) { - logrus.Errorf("get kube node %s failure %s", v.ID, err.Error()) - } - // Update k8s node status to node status - if k8sNode != nil { - v.UpdataK8sCondition(k8sNode.Status.Conditions) - // 添加capacity属性,对应相关属性 - v.AvailableCPU = k8sNode.Status.Allocatable.Cpu().Value() - v.AvailableMemory = k8sNode.Status.Allocatable.Memory().Value() - v.NodeStatus.KubeNode = k8sNode - v.NodeStatus.KubeUpdateTime = time.Now() - v.NodeStatus.CurrentScheduleStatus = !k8sNode.Spec.Unschedulable - v.NodeStatus.NodeInfo.ContainerRuntimeVersion = k8sNode.Status.NodeInfo.ContainerRuntimeVersion - } - } - if (v.Role.HasRule("manage") || v.Role.HasRule("gateway")) && !v.Role.HasRule("compute") { //manage install_success == runnint - v.AvailableCPU = v.NodeStatus.NodeInfo.NumCPU - v.AvailableMemory = int64(v.NodeStatus.NodeInfo.MemorySize) - } - //handle status - v.Status = v.NodeStatus.Status - if v.Role.HasRule("compute") && v.NodeStatus.KubeNode == nil { - v.Status = "offline" - } - } - //node ready condition update - v.UpdateReadyStatus() - for i, con := range v.NodeStatus.Conditions { - if con.Type == client.NodeReady { - v.NodeStatus.NodeHealth = v.NodeStatus.Conditions[i].Status == client.ConditionTrue - } - if time.Since(con.LastHeartbeatTime) > time.Minute*1 { - // do not update time - v.NodeStatus.Conditions[i].Reason = "Condition not updated in more than 1 minute" - v.NodeStatus.Conditions[i].Message = "Condition not updated in more than 1 minute" - v.NodeStatus.Conditions[i].Status = client.ConditionUnknown - } - } - if v.NodeStatus.AdviceAction != nil { - for _, action := range v.NodeStatus.AdviceAction { - if action == "unscheduler" { - if v.NodeStatus.KubeNode != nil && !v.NodeStatus.KubeNode.Spec.Unschedulable { - if n.getKubeNodeCount() > 1 { - logrus.Infof("node %s is advice set unscheduler,will do this action", v.ID) - _, err := n.kubecli.CordonOrUnCordon(v.ID, true) - if err != nil { - logrus.Errorf("auto set node is unscheduler failure.") - } - } else { - logrus.Warningf("node %s is advice set unscheduler,but only have one node,can not do it", v.ID) - } - } - } - if action == "scheduler" && !v.Unschedulable { - //if node status is not scheduler - // disable from 5.2.0 - // if v.NodeStatus.KubeNode != nil && v.NodeStatus.KubeNode.Spec.Unschedulable { - // logrus.Infof("node %s is advice set scheduler,will do this action", v.ID) - // _, err := n.kubecli.CordonOrUnCordon(v.ID, false) - // if err != nil { - // logrus.Errorf("auto set node is scheduler failure.") - // } - // } - } - if action == "offline" { - logrus.Warningf("node %s is advice set offline", v.ID) - // k8s will offline node itself. - // remove the endpoints associated with the node from etcd - // disable from 5.2.0 - // v.DelEndpoints() - } - } - } - //TODO:The latest data is stored back on the etcd, but you should avoid an endless loop -} - -func (n *Cluster) loadAndWatchNodes(errChan chan error) { - watcher := watch.New(n.client.Client, "") - nodewatchChan, err := watcher.WatchList(n.ctx, option.Config.NodePath, "") - if err != nil { - errChan <- err - } - defer nodewatchChan.Stop() - for ev := range nodewatchChan.ResultChan() { - switch ev.Type { - case watch.Added, watch.Modified: - node := new(client.HostNode) - if err := node.Decode(ev.GetValue()); err != nil { - logrus.Errorf("decode node info error :%s", err) - continue - } - n.handleNodeStatus(node) - n.CacheNode(node) - case watch.Deleted: - node := new(client.HostNode) - if err := node.Decode(ev.GetPreValue()); err != nil { - logrus.Errorf("decode node info error :%s", err) - continue - } - n.RemoveNode(node.ID) - case watch.Error: - errChan <- ev.Error - } - } -} - -//installNode install node -//Call the ansible installation script -func (n *Cluster) installNode(node *client.HostNode) { - //TODO: -} - -//GetAllNode get all node info from local cache -func (n *Cluster) GetAllNode() (nodes []*client.HostNode) { - n.lock.Lock() - defer n.lock.Unlock() - for _, v := range n.nodes { - nodes = append(nodes, v) - } - return -} - -//CacheNode add node to local cache -func (n *Cluster) CacheNode(node *client.HostNode) { - n.lock.Lock() - defer n.lock.Unlock() - logrus.Debugf("add or update a rainbon node id:%s hostname:%s ip:%s", node.ID, node.HostName, node.InternalIP) - n.nodes[node.ID] = node -} - -//RemoveNode remove node from local cache -func (n *Cluster) RemoveNode(nodeID string) { - n.lock.Lock() - defer n.lock.Unlock() - if _, ok := n.nodes[nodeID]; ok { - delete(n.nodes, nodeID) - } -} - -//GetLabelsNode return node ids that matching labels -func (n *Cluster) GetLabelsNode(labels map[string]string) []string { - var nodes []string - for _, node := range n.nodes { - if checkLabels(node, labels) { - nodes = append(nodes, node.ID) - } - } - return nodes -} - -func checkLabels(node *client.HostNode, labels map[string]string) bool { - existLabels := node.MergeLabels() - for k, v := range labels { - if nodev := existLabels[k]; nodev != v { - return false - } - } - return true -} diff --git a/node/masterserver/node/cluster_test.go b/node/masterserver/node/cluster_test.go deleted file mode 100644 index 7d323c1dd..000000000 --- a/node/masterserver/node/cluster_test.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package node - -import ( - "context" - "testing" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/clientcmd" -) - -func TestCluster_handleNodeStatus(t *testing.T) { - config, err := clientcmd.BuildConfigFromFlags("", "/Users/fanyangyang/Documents/company/goodrain/remote/192.168.2.200/admin.kubeconfig") - if err != nil { - return - } - cli, err := kubernetes.NewForConfig(config) - if err != nil { - t.Fatal(err) - } - - node, err := cli.CoreV1().Nodes().Get(context.Background(), "192.168.2.200", metav1.GetOptions{}) - if err != nil { - t.Fatal(err) - } - t.Logf("node is :%+v", node) - t.Logf("cpu:%v", node.Status.Allocatable.Cpu().Value()) - t.Logf("mem: %v", node.Status.Allocatable.Memory().Value()) -} diff --git a/node/masterserver/server.go b/node/masterserver/server.go deleted file mode 100644 index aa8b39f84..000000000 --- a/node/masterserver/server.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package masterserver - -import ( - "context" - - "github.com/sirupsen/logrus" - - "github.com/goodrain/rainbond/node/kubecache" - "github.com/goodrain/rainbond/node/nodem/client" - - "github.com/goodrain/rainbond/node/core/config" - "github.com/goodrain/rainbond/node/core/store" - "github.com/goodrain/rainbond/node/masterserver/node" -) - -//MasterServer 主节点服务 -type MasterServer struct { - *store.Client - *client.HostNode - Cluster *node.Cluster - ctx context.Context - cancel context.CancelFunc - datacenterConfig *config.DataCenterConfig -} - -//NewMasterServer 创建master节点 -func NewMasterServer(modelnode *client.HostNode, kubecli kubecache.KubeClient) (*MasterServer, error) { - datacenterConfig := config.GetDataCenterConfig() - ctx, cancel := context.WithCancel(context.Background()) - nodecluster := node.CreateCluster(kubecli, modelnode, datacenterConfig) - ms := &MasterServer{ - Client: store.DefalutClient, - HostNode: modelnode, - Cluster: nodecluster, - ctx: ctx, - cancel: cancel, - datacenterConfig: datacenterConfig, - } - return ms, nil -} - -//Start master node start -func (m *MasterServer) Start(errchan chan error) error { - m.datacenterConfig.Start() - if err := m.Cluster.Start(errchan); err != nil { - logrus.Error("node cluster start error,", err.Error()) - return err - } - return nil -} - -//Stop 停止 -func (m *MasterServer) Stop(i interface{}) { - if m.Cluster != nil { - m.Cluster.Stop(i) - } - m.cancel() -} diff --git a/node/monitormessage/udpserver.go b/node/monitormessage/udpserver.go index fd0617542..726e805d5 100644 --- a/node/monitormessage/udpserver.go +++ b/node/monitormessage/udpserver.go @@ -26,84 +26,36 @@ import ( "strings" "time" - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/sirupsen/logrus" - - "github.com/prometheus/common/log" ) //UDPServer udp server type UDPServer struct { - ctx context.Context - ListenerHost string - ListenerPort int - eventServerEndpoint []string - client net.Conn - etcdClientArgs *etcdutil.ClientArgs + ctx context.Context + ListenerHost string + ListenerPort int + client net.Conn + eventServerAddr string } //CreateUDPServer create udpserver -func CreateUDPServer(ctx context.Context, lisHost string, lisPort int, etcdClientArgs *etcdutil.ClientArgs) *UDPServer { +func CreateUDPServer(ctx context.Context, lisHost string, lisPort int) *UDPServer { return &UDPServer{ - ctx: ctx, - ListenerHost: lisHost, - ListenerPort: lisPort, - etcdClientArgs: etcdClientArgs, + ctx: ctx, + ListenerHost: lisHost, + ListenerPort: lisPort, + eventServerAddr: "rbd-eventlog.rbd-system:6166", } } //Start start func (u *UDPServer) Start() error { - dis, err := discover.GetDiscover(config.DiscoverConfig{Ctx: u.ctx, EtcdClientArgs: u.etcdClientArgs}) - if err != nil { - return err - } - dis.AddProject("event_log_event_udp", u) if err := u.server(); err != nil { return err } return nil } -//UpdateEndpoints update event server address -func (u *UDPServer) UpdateEndpoints(endpoints ...*config.Endpoint) { - var eventServerEndpoint []string - for _, e := range endpoints { - eventServerEndpoint = append(eventServerEndpoint, e.URL) - u.eventServerEndpoint = eventServerEndpoint - } - if len(u.eventServerEndpoint) > 0 { - for i := range u.eventServerEndpoint { - info := strings.Split(u.eventServerEndpoint[i], ":") - if len(info) == 2 { - dip := net.ParseIP(info[0]) - port, err := strconv.Atoi(info[1]) - if err != nil { - continue - } - srcAddr := &net.UDPAddr{IP: net.IPv4zero, Port: 0} - dstAddr := &net.UDPAddr{IP: dip, Port: port} - conn, err := net.DialUDP("udp", srcAddr, dstAddr) - if err != nil { - logrus.Error(err) - continue - } - logrus.Infof("Update event server address is %s", u.eventServerEndpoint[i]) - u.client = conn - break - } - } - - } -} - -//Error -func (u *UDPServer) Error(err error) { - -} - //Server 服务 func (u *UDPServer) server() error { listener, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.ParseIP(u.ListenerHost), Port: u.ListenerPort}) @@ -111,7 +63,7 @@ func (u *UDPServer) server() error { fmt.Println(err) return err } - log.Infof("UDP Server Listener: %s", listener.LocalAddr().String()) + logrus.Infof("UDP Server Listener: %s", listener.LocalAddr().String()) buf := make([]byte, 65535) go func() { defer listener.Close() @@ -129,6 +81,27 @@ func (u *UDPServer) server() error { } func (u *UDPServer) handlePacket(packet []byte) { + if u.client == nil { + domain := u.eventServerAddr + port := 6166 + if strings.Contains(domain, ":") { + infos := strings.Split(u.eventServerAddr, ":") + domain = infos[0] + port, _ = strconv.Atoi(infos[1]) + } + addr, err := net.ResolveIPAddr("ip", domain) + if err != nil { + logrus.Errorf("resolve event server domain %s failure %s", domain, err.Error()) + return + } + srcAddr := &net.UDPAddr{IP: net.IPv4zero, Port: 0} + dstAddr := &net.UDPAddr{IP: addr.IP, Port: port} + conn, err := net.DialUDP("udp", srcAddr, dstAddr) + if err != nil { + logrus.Error("connect event udp server failure %s", err.Error()) + } + u.client = conn + } lines := strings.Split(string(packet), "\n") for _, line := range lines { if line != "" && u.client != nil { diff --git a/node/nodem/client/cluster_client.go b/node/nodem/client/cluster_client.go deleted file mode 100644 index 6cc3c51bd..000000000 --- a/node/nodem/client/cluster_client.go +++ /dev/null @@ -1,247 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package client - -import ( - "context" - "encoding/json" - "fmt" - "net/url" - "path" - "strings" - "time" - - "github.com/goodrain/rainbond/util" - - "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/cmd" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/config" - "github.com/sirupsen/logrus" - "k8s.io/apimachinery/pkg/api/errors" -) - -// RainbondEndpointPrefix is the prefix of the key of the rainbond endpoints in etcd -const RainbondEndpointPrefix = "/rainbond/endpoint" - -//ClusterClient ClusterClient -type ClusterClient interface { - UpdateStatus(*HostNode, []NodeConditionType) error - DownNode(*HostNode) error - GetMasters() ([]*HostNode, error) - GetNode(nodeID string) (*HostNode, error) - RegistNode(node *HostNode) error - GetDataCenterConfig() (*config.DataCenterConfig, error) - GetOptions() *option.Conf - GetEndpoints(key string) []string - SetEndpoints(serviceName, hostIP string, value []string) - DelEndpoints(key string) -} - -//NewClusterClient new cluster client -func NewClusterClient(conf *option.Conf) ClusterClient { - return &etcdClusterClient{ - conf: conf, - } -} - -type etcdClusterClient struct { - conf *option.Conf - onlineLes clientv3.LeaseID -} - -func (e *etcdClusterClient) UpdateStatus(n *HostNode, deleteConditions []NodeConditionType) error { - existNode, err := e.GetNode(n.ID) - if err != nil { - return fmt.Errorf("get node %s failure where update node %s", n.ID, err.Error()) - } - //update node mode - existNode.Mode = n.Mode - //The startup parameters shall prevail - existNode.Role = n.Role - existNode.HostName = n.HostName - existNode.Status = n.Status - existNode.NodeStatus.NodeHealth = n.NodeStatus.NodeHealth - existNode.NodeStatus.NodeUpdateTime = time.Now() - existNode.NodeStatus.Version = cmd.GetVersion() - existNode.NodeStatus.AdviceAction = n.NodeStatus.AdviceAction - existNode.NodeStatus.Status = n.NodeStatus.Status - existNode.NodeStatus.NodeInfo = n.NodeStatus.NodeInfo - existNode.AvailableMemory = n.AvailableMemory - existNode.AvailableCPU = n.AvailableCPU - existNode.InternalIP = n.InternalIP - // only update system labels - newLabels := n.Labels - for k, v := range existNode.Labels { - if !strings.HasPrefix(k, "rainbond_node_rule_") { - newLabels[k] = v - } - } - existNode.Labels = newLabels - //update condition and delete old condition - existNode.UpdataCondition(n.NodeStatus.Conditions...) - for _, t := range deleteConditions { - existNode.DeleteCondition(t) - logrus.Infof("remove old condition %s", t) - } - return e.Update(existNode) -} - -func (e *etcdClusterClient) GetMasters() ([]*HostNode, error) { - return nil, nil -} - -func (e *etcdClusterClient) GetDataCenterConfig() (*config.DataCenterConfig, error) { - return nil, nil -} - -func (e *etcdClusterClient) GetOptions() *option.Conf { - return e.conf -} - -func (e *etcdClusterClient) GetEndpoints(key string) (result []string) { - key = path.Join(RainbondEndpointPrefix, key) - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - resp, err := e.conf.EtcdCli.Get(ctx, key, clientv3.WithPrefix()) - if err != nil || len(resp.Kvs) < 1 { - logrus.Errorf("Can not get endpoints of the key %s", key) - return - } - for _, kv := range resp.Kvs { - keyInfo := strings.Split(string(kv.Key), "/") - if !util.CheckIP(keyInfo[len(keyInfo)-1]) { - e.conf.EtcdCli.Delete(ctx, string(kv.Key)) - continue - } - var res []string - err = json.Unmarshal(kv.Value, &res) - if err != nil { - logrus.Errorf("Can unmarshal endpoints to array of the key %s", key) - return - } - //Return data check - for _, v := range res { - if checkURL(v) { - result = append(result, v) - } - } - } - logrus.Debugf("Get endpoints %s => %v", key, result) - return -} -func checkURL(source string) bool { - endpointURL, err := url.Parse(source) - if err != nil && strings.Contains(err.Error(), "first path segment in URL cannot contain colon") { - endpointURL, err = url.Parse(fmt.Sprintf("tcp://%s", source)) - } - if err != nil || endpointURL.Host == "" || endpointURL.Path != "" { - return false - } - return true -} - -//SetEndpoints service name and hostip must set -func (e *etcdClusterClient) SetEndpoints(serviceName, hostIP string, value []string) { - if serviceName == "" { - return - } - if !util.CheckIP(hostIP) { - return - } - for _, v := range value { - if !checkURL(v) { - logrus.Warningf("%s service host %s endpoint value %s invalid", serviceName, hostIP, v) - continue - } - } - key := fmt.Sprintf("%s/%s/%s", RainbondEndpointPrefix, serviceName, hostIP) - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - jsonStr, err := json.Marshal(value) - if err != nil { - logrus.Errorf("Can not marshal %s endpoints to json.", key) - return - } - _, err = e.conf.EtcdCli.Put(ctx, key, string(jsonStr)) - if err != nil { - logrus.Errorf("Failed to put endpoint for %s: %v", key, err) - } -} - -func (e *etcdClusterClient) DelEndpoints(key string) { - key = path.Join(RainbondEndpointPrefix, key) - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - _, err := e.conf.EtcdCli.Delete(ctx, key) - if err != nil { - logrus.Errorf("Failed to put endpoint for %s: %v", key, Error) - } - logrus.Infof("Delete endpoints: %s", key) -} - -//ErrorNotFound node not found. -var ErrorNotFound = fmt.Errorf("node not found") - -func (e *etcdClusterClient) GetNode(nodeID string) (*HostNode, error) { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - res, err := e.conf.EtcdCli.Get(ctx, fmt.Sprintf("%s/%s", e.conf.NodePath, nodeID)) - if err != nil { - if errors.IsNotFound(err) { - return nil, ErrorNotFound - } - return nil, err - } - if res.Count < 1 { - return nil, ErrorNotFound - } - return GetNodeFromKV(res.Kvs[0]), nil -} - -func (e *etcdClusterClient) RegistNode(node *HostNode) error { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*8) - defer cancel() - _, err := e.conf.EtcdCli.Put(ctx, fmt.Sprintf("%s/%s", e.conf.NodePath, node.ID), node.String()) - if err != nil { - return err - } - return nil -} - -//Update update node info -func (e *etcdClusterClient) Update(h *HostNode) error { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*3) - defer cancel() - saveNode := *h - saveNode.NodeStatus.KubeNode = nil - _, err := e.conf.EtcdCli.Put(ctx, e.conf.NodePath+"/"+saveNode.ID, h.String()) - return err -} - -//Down node set node status is offline -func (e *etcdClusterClient) DownNode(h *HostNode) error { - existNode, err := e.GetNode(h.ID) - if err != nil { - return fmt.Errorf("get node %s failure where update node", h.ID) - } - existNode.NodeStatus.Status = "offline" - existNode.NodeStatus.LastDownTime = time.Now() - return e.Update(existNode) -} diff --git a/node/nodem/client/cluster_client_test.go b/node/nodem/client/cluster_client_test.go deleted file mode 100644 index 778639fd7..000000000 --- a/node/nodem/client/cluster_client_test.go +++ /dev/null @@ -1,156 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package client - -import ( - "context" - "encoding/json" - "testing" - "time" - - "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/store" - "github.com/goodrain/rainbond/util" - "github.com/sirupsen/logrus" -) - -func TestEtcdClusterClient_GetEndpoints(t *testing.T) { - cli, err := clientv3.New(clientv3.Config{ - Endpoints: []string{"127.0.0.1:2379"}, - DialTimeout: time.Duration(5) * time.Second, - }) - if err != nil { - t.Fatal(err) - } - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - key := "/rainbond/endpoint/foobar" - defer cli.Delete(ctx, key, clientv3.WithPrefix()) - - type data struct { - hostID string - values []string - } - - testCase := []string{ - "192.168.8.229:8081", - "192.168.8.230:8081", - "192.168.8.231:6443", - } - datas := []data{ - { - hostID: util.NewUUID(), - values: []string{ - testCase[0], - }, - }, - { - hostID: util.NewUUID(), - values: []string{ - testCase[1], - }, - }, - { - hostID: util.NewUUID(), - values: []string{ - testCase[2], - }, - }, - } - for _, d := range datas { - s, err := json.Marshal(d.values) - if err != nil { - logrus.Errorf("Can not marshal %s endpoints to json.", "foobar") - return - } - _, err = cli.Put(ctx, key+"/"+d.hostID, string(s)) - if err != nil { - t.Fatal(err) - } - } - - c := etcdClusterClient{ - conf: &option.Conf{ - EtcdCli: cli, - }, - } - - edps := c.GetEndpoints("foobar") - for _, tc := range testCase { - flag := false - for _, edp := range edps { - if tc == edp { - flag = true - } - } - if !flag { - t.Fatalf("Can not find \"%s\" in %v", tc, edps) - } - } -} - -func TestSetEndpoints(t *testing.T) { - cli, err := clientv3.New(clientv3.Config{ - Endpoints: []string{"127.0.0.1:2379"}, - DialTimeout: time.Duration(5) * time.Second, - }) - if err != nil { - t.Fatal(err) - } - c := NewClusterClient(&option.Conf{EtcdCli: cli}) - c.SetEndpoints("etcd", "DSASD", []string{"http://:8080"}) - c.SetEndpoints("etcd", "192.168.1.1", []string{"http://:8080"}) - c.SetEndpoints("etcd", "192.168.1.1", []string{"http://192.168.1.1:8080"}) - c.SetEndpoints("node", "192.168.2.137", []string{"192.168.2.137:10252"}) - t.Logf("check: %v", checkURL("192.168.2.137:10252")) -} - -func TestGetEndpoints(t *testing.T) { - cli, err := clientv3.New(clientv3.Config{ - Endpoints: []string{"127.0.0.1:2379"}, - DialTimeout: time.Duration(5) * time.Second, - }) - if err != nil { - t.Fatal(err) - } - c := NewClusterClient(&option.Conf{EtcdCli: cli}) - t.Log(c.GetEndpoints("/etcd/")) -} -func TestEtcdClusterClient_ListEndpointKeys(t *testing.T) { - cfg := &option.Conf{ - EtcdEndpoints: []string{"192.168.3.3:2379"}, - EtcdDialTimeout: 5 * time.Second, - } - - if err := store.NewClient(context.Background(), cfg, nil); err != nil { - t.Fatalf("error create etcd client: %v", err) - } - - hostNode := HostNode{ - InternalIP: "192.168.2.76", - } - - keys, err := hostNode.listEndpointKeys() - if err != nil { - t.Errorf("unexperted error: %v", err) - } - t.Logf("keys: %#v", keys) -} diff --git a/node/nodem/client/node.go b/node/nodem/client/node.go deleted file mode 100644 index a8b27039b..000000000 --- a/node/nodem/client/node.go +++ /dev/null @@ -1,543 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package client - -import ( - "fmt" - "strings" - "time" - - client "github.com/coreos/etcd/clientv3" - "github.com/coreos/etcd/mvcc/mvccpb" - conf "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/core/store" - "github.com/goodrain/rainbond/util" - "github.com/pquerna/ffjson/ffjson" - "github.com/sirupsen/logrus" - v1 "k8s.io/api/core/v1" -) - -//LabelOS node label about os -var LabelOS = "beta.kubernetes.io/os" -var LabelGPU = "beta.rainbond.com/gpushare" - -//APIHostNode api host node -type APIHostNode struct { - ID string `json:"uuid" validate:"uuid"` - HostName string `json:"host_name" validate:"host_name"` - InternalIP string `json:"internal_ip" validate:"internal_ip|ip"` - ExternalIP string `json:"external_ip" validate:"external_ip|ip"` - RootPass string `json:"root_pass,omitempty"` - Privatekey string `json:"private_key,omitempty"` - Role HostRule `json:"role" validate:"role|required"` - PodCIDR string `json:"podCIDR"` - AutoInstall bool `json:"auto_install"` - Labels map[string]string `json:"labels"` -} - -//Clone Clone -func (a APIHostNode) Clone() *HostNode { - hn := &HostNode{ - ID: a.ID, - HostName: a.HostName, - InternalIP: a.InternalIP, - ExternalIP: a.ExternalIP, - RootPass: a.RootPass, - KeyPath: a.Privatekey, - Role: a.Role, - Labels: map[string]string{"rainbond_node_hostname": a.HostName}, - CustomLabels: map[string]string{}, - NodeStatus: NodeStatus{Status: "not_installed", Conditions: make([]NodeCondition, 0)}, - Status: "not_installed", - PodCIDR: a.PodCIDR, - //node default unscheduler - Unschedulable: true, - } - return hn -} - -//HostNode rainbond node entity -type HostNode struct { - ID string `json:"uuid"` - HostName string `json:"host_name"` - CreateTime time.Time `json:"create_time"` - InternalIP string `json:"internal_ip"` - ExternalIP string `json:"external_ip"` - RootPass string `json:"root_pass,omitempty"` - KeyPath string `json:"key_path,omitempty"` //管理节点key文件路径 - AvailableMemory int64 `json:"available_memory"` - AvailableCPU int64 `json:"available_cpu"` - Mode string `json:"mode"` - Role HostRule `json:"role"` //compute, manage, storage, gateway - Status string `json:"status"` - Labels map[string]string `json:"labels"` // system labels - CustomLabels map[string]string `json:"custom_labels"` // custom labels - Unschedulable bool `json:"unschedulable"` // 设置值 - PodCIDR string `json:"podCIDR"` - NodeStatus NodeStatus `json:"node_status"` -} - -//Resource 资源 -type Resource struct { - CPU int `json:"cpu"` - MemR int `json:"mem"` -} - -// NodePodResource - -type NodePodResource struct { - AllocatedResources `json:"allocatedresources"` - Resource `json:"allocatable"` -} - -// AllocatedResources - -type AllocatedResources struct { - CPURequests int64 - CPULimits int64 - MemoryRequests int64 - MemoryLimits int64 - MemoryRequestsR string - MemoryLimitsR string - CPURequestsR string - CPULimitsR string -} - -//NodeStatus node status -type NodeStatus struct { - //worker maintenance - Version string `json:"version"` - //worker maintenance example: unscheduler, offline - //Initiate a recommendation operation to the master based on the node state - AdviceAction []string `json:"advice_actions"` - //worker maintenance - Status string `json:"status"` //installed running offline unknown - //master maintenance - CurrentScheduleStatus bool `json:"current_scheduler"` - //master maintenance - NodeHealth bool `json:"node_health"` - //worker maintenance - NodeUpdateTime time.Time `json:"node_update_time"` - //master maintenance - KubeUpdateTime time.Time `json:"kube_update_time"` - //worker maintenance node progress down time - LastDownTime time.Time `json:"down_time"` - //worker and master maintenance - Conditions []NodeCondition `json:"conditions,omitempty"` - //master maintenance - KubeNode *v1.Node - //worker and master maintenance - NodeInfo NodeSystemInfo `json:"nodeInfo,omitempty" protobuf:"bytes,7,opt,name=nodeInfo"` -} - -//UpdateK8sNodeStatus update rainbond node status by k8s node -func (n *HostNode) UpdateK8sNodeStatus(k8sNode v1.Node) { - status := k8sNode.Status - n.UpdataK8sCondition(status.Conditions) - n.NodeStatus.NodeInfo = NodeSystemInfo{ - MachineID: status.NodeInfo.MachineID, - SystemUUID: status.NodeInfo.SystemUUID, - BootID: status.NodeInfo.BootID, - KernelVersion: status.NodeInfo.KernelVersion, - OSImage: status.NodeInfo.OSImage, - OperatingSystem: status.NodeInfo.OperatingSystem, - ContainerRuntimeVersion: status.NodeInfo.ContainerRuntimeVersion, - Architecture: status.NodeInfo.Architecture, - } -} - -// MergeLabels merges custom lables into labels. -func (n *HostNode) MergeLabels() map[string]string { - // TODO: Parallel - labels := make(map[string]string, len(n.Labels)+len(n.CustomLabels)) - // copy labels - for k, v := range n.Labels { - labels[k] = v - } - for k, v := range n.CustomLabels { - if _, ok := n.Labels[k]; !ok { - labels[k] = v - } - } - return labels -} - -// NodeSystemInfo is a set of ids/uuids to uniquely identify the node. -type NodeSystemInfo struct { - // MachineID reported by the node. For unique machine identification - // in the cluster this field is preferred. Learn more from man(5) - // machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html - MachineID string `json:"machineID"` - // SystemUUID reported by the node. For unique machine identification - // MachineID is preferred. This field is specific to Red Hat hosts - // https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html - SystemUUID string `json:"systemUUID"` - // Boot ID reported by the node. - BootID string `json:"bootID" protobuf:"bytes,3,opt,name=bootID"` - // Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64). - KernelVersion string `json:"kernelVersion" ` - // OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). - OSImage string `json:"osImage"` - // ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0). - ContainerRuntimeVersion string `json:"containerRuntimeVersion"` - // The Operating System reported by the node - OperatingSystem string `json:"operatingSystem"` - // The Architecture reported by the node - Architecture string `json:"architecture"` - - MemorySize uint64 `json:"memorySize"` - NumCPU int64 `json:"cpu_num"` -} - -const ( - //Running node running status - Running = "running" - //Offline node offline status - Offline = "offline" - //Unknown node unknown status - Unknown = "unknown" - //Error node error status - Error = "error" - //Init node init status - Init = "init" - //InstallSuccess node install success status - InstallSuccess = "install_success" - //InstallFailed node install failure status - InstallFailed = "install_failed" - //Installing node installing status - Installing = "installing" - //NotInstalled node not install status - NotInstalled = "not_installed" -) - -//Decode decode node info -func (n *HostNode) Decode(data []byte) error { - if err := ffjson.Unmarshal(data, n); err != nil { - logrus.Error("decode node info error:", err.Error()) - return err - } - return nil -} - -//NodeList node list -type NodeList []*HostNode - -func (list NodeList) Len() int { - return len(list) -} - -func (list NodeList) Less(i, j int) bool { - return list[i].InternalIP < list[j].InternalIP -} - -func (list NodeList) Swap(i, j int) { - var temp = list[i] - list[i] = list[j] - list[j] = temp -} - -//GetNodeFromKV 从etcd解析node信息 -func GetNodeFromKV(kv *mvccpb.KeyValue) *HostNode { - var node HostNode - if err := ffjson.Unmarshal(kv.Value, &node); err != nil { - logrus.Error("parse node info error:", err.Error()) - return nil - } - return &node -} - -//UpdataK8sCondition 更新k8s节点的状态到rainbond节点 -func (n *HostNode) UpdataK8sCondition(conditions []v1.NodeCondition) { - for _, con := range conditions { - var rbcon NodeCondition - if NodeConditionType(con.Type) == "Ready" { - rbcon = NodeCondition{ - Type: KubeNodeReady, - Status: ConditionStatus(con.Status), - LastHeartbeatTime: con.LastHeartbeatTime.Time, - LastTransitionTime: con.LastTransitionTime.Time, - Reason: con.Reason, - Message: con.Message, - } - } else { - if con.Status != v1.ConditionFalse { - rbcon = NodeCondition{ - Type: KubeNodeReady, - Status: ConditionFalse, - LastHeartbeatTime: con.LastHeartbeatTime.Time, - LastTransitionTime: con.LastTransitionTime.Time, - Reason: con.Reason, - Message: con.Message, - } - } - } - n.UpdataCondition(rbcon) - } -} - -//DeleteCondition DeleteCondition -func (n *HostNode) DeleteCondition(types ...NodeConditionType) { - for _, t := range types { - for i, c := range n.NodeStatus.Conditions { - if c.Type.Compare(t) { - n.NodeStatus.Conditions = append(n.NodeStatus.Conditions[:i], n.NodeStatus.Conditions[i+1:]...) - break - } - } - } -} - -// UpdateReadyStatus UpdateReadyStatus -func (n *HostNode) UpdateReadyStatus() { - var status = ConditionTrue - var Reason, Message string - for _, con := range n.NodeStatus.Conditions { - if con.Status != ConditionTrue && con.Type != "" && con.Type != NodeReady { - logrus.Debugf("because %s id false, will set node %s(%s) health is false", con.Type, n.ID, n.InternalIP) - status = ConditionFalse - Reason = con.Reason - Message = con.Message - break - } - } - n.GetAndUpdateCondition(NodeReady, status, Reason, Message) -} - -//GetCondition get condition -func (n *HostNode) GetCondition(ctype NodeConditionType) *NodeCondition { - for _, con := range n.NodeStatus.Conditions { - if con.Type.Compare(ctype) { - return &con - } - } - return nil -} - -// GetAndUpdateCondition get old condition and update it, if old condition is nil and then create it -func (n *HostNode) GetAndUpdateCondition(condType NodeConditionType, status ConditionStatus, reason, message string) { - oldCond := n.GetCondition(condType) - now := time.Now() - var lastTransitionTime time.Time - if oldCond == nil { - lastTransitionTime = now - } else { - if oldCond.Status != status { - lastTransitionTime = now - } else { - lastTransitionTime = oldCond.LastTransitionTime - } - } - cond := NodeCondition{ - Type: condType, - Status: status, - LastHeartbeatTime: now, - LastTransitionTime: lastTransitionTime, - Reason: reason, - Message: message, - } - n.UpdataCondition(cond) -} - -//UpdataCondition 更新状态 -func (n *HostNode) UpdataCondition(conditions ...NodeCondition) { - for _, newcon := range conditions { - if newcon.Type == "" { - continue - } - var update bool - if n.NodeStatus.Conditions != nil { - for i, con := range n.NodeStatus.Conditions { - if con.Type.Compare(newcon.Type) { - n.NodeStatus.Conditions[i] = newcon - update = true - break - } - } - } - if !update { - n.NodeStatus.Conditions = append(n.NodeStatus.Conditions, newcon) - } - } -} - -//HostRule 节点角色 -type HostRule []string - -//SupportNodeRule - -var SupportNodeRule = []string{ComputeNode, ManageNode, StorageNode, GatewayNode} - -//ComputeNode 计算节点 -var ComputeNode = "compute" - -//ManageNode 管理节点 -var ManageNode = "manage" - -//StorageNode 存储节点 -var StorageNode = "storage" - -//GatewayNode 边缘负载均衡节点 -var GatewayNode = "gateway" - -//HasRule 是否具有什么角色 -func (h HostRule) HasRule(rule string) bool { - for _, v := range h { - if v == rule { - return true - } - } - return false -} -func (h HostRule) String() string { - return strings.Join(h, ",") -} - -//Add add role -func (h *HostRule) Add(role ...string) { - for _, r := range role { - if !util.StringArrayContains(*h, r) { - *h = append(*h, r) - } - } -} - -//Validation host rule validation -func (h HostRule) Validation() error { - if len(h) == 0 { - return fmt.Errorf("node rule must be seted") - } - for _, role := range h { - if !util.StringArrayContains(SupportNodeRule, role) { - return fmt.Errorf("node role %s can not be supported", role) - } - } - return nil -} - -//NodeConditionType NodeConditionType -type NodeConditionType string - -// These are valid conditions of node. -const ( - // NodeReady means this node is working - NodeReady NodeConditionType = "Ready" - KubeNodeReady NodeConditionType = "KubeNodeReady" - NodeUp NodeConditionType = "NodeUp" - // InstallNotReady means the installation task was not completed in this node. - InstallNotReady NodeConditionType = "InstallNotReady" - OutOfDisk NodeConditionType = "OutOfDisk" - MemoryPressure NodeConditionType = "MemoryPressure" - DiskPressure NodeConditionType = "DiskPressure" - PIDPressure NodeConditionType = "PIDPressure" -) - -var masterCondition = []NodeConditionType{NodeReady, KubeNodeReady, NodeUp, InstallNotReady, OutOfDisk, MemoryPressure, DiskPressure, PIDPressure} - -//IsMasterCondition Whether it is a preset condition of the system -func IsMasterCondition(con NodeConditionType) bool { - for _, c := range masterCondition { - if c.Compare(con) { - return true - } - } - return false -} - -//Compare 比较 -func (nt NodeConditionType) Compare(ent NodeConditionType) bool { - return string(nt) == string(ent) -} - -//ConditionStatus ConditionStatus -type ConditionStatus string - -// These are valid condition statuses. "ConditionTrue" means a resource is in the condition. -// "ConditionFalse" means a resource is not in the condition. "ConditionUnknown" means kubernetes -// can't decide if a resource is in the condition or not. In the future, we could add other -// intermediate conditions, e.g. ConditionDegraded. -const ( - ConditionTrue ConditionStatus = "True" - ConditionFalse ConditionStatus = "False" - ConditionUnknown ConditionStatus = "Unknown" -) - -// NodeCondition contains condition information for a node. -type NodeCondition struct { - // Type of node condition. - Type NodeConditionType `json:"type" ` - // Status of the condition, one of True, False, Unknown. - Status ConditionStatus `json:"status" ` - // Last time we got an update on a given condition. - // +optional - LastHeartbeatTime time.Time `json:"lastHeartbeatTime,omitempty" ` - // Last time the condition transit from one status to another. - // +optional - LastTransitionTime time.Time `json:"lastTransitionTime,omitempty" ` - // (brief) reason for the condition's last transition. - // +optional - Reason string `json:"reason,omitempty"` - // Human readable message indicating details about last transition. - // +optional - Message string `json:"message,omitempty"` -} - -//String string -func (n *HostNode) String() string { - res, _ := ffjson.Marshal(n) - return string(res) -} - -//Update update node info -func (n *HostNode) Update() (*client.PutResponse, error) { - savenode := *n - savenode.NodeStatus.KubeNode = nil - return store.DefalutClient.Put(conf.Config.NodePath+"/"+n.ID, savenode.String()) -} - -//DeleteNode delete node -func (n *HostNode) DeleteNode() (*client.DeleteResponse, error) { - return store.DefalutClient.Delete(conf.Config.NodePath + "/" + n.ID) -} - -// DelEndpoints - -func (n *HostNode) DelEndpoints() { - keys, err := n.listEndpointKeys() - if err != nil { - logrus.Warningf("error deleting endpoints: %v", err) - return - } - for _, key := range keys { - _, err := store.DefalutClient.Delete(key) - if err != nil { - logrus.Warnf("key: %s; error delete endpoints: %v", key, err) - } - } -} - -func (n *HostNode) listEndpointKeys() ([]string, error) { - resp, err := store.DefalutClient.Get(RainbondEndpointPrefix, client.WithPrefix()) - if err != nil { - return nil, fmt.Errorf("prefix: %s; error list rainbond endpoint keys by prefix: %v", RainbondEndpointPrefix, err) - } - var res []string - for _, kv := range resp.Kvs { - key := string(kv.Key) - if strings.Contains(key, n.InternalIP) { - res = append(res, key) - } - } - return res, nil -} diff --git a/node/nodem/client/node_test.go b/node/nodem/client/node_test.go deleted file mode 100644 index 543a58eb9..000000000 --- a/node/nodem/client/node_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -package client_test - -import ( - "testing" - - "github.com/goodrain/rainbond/node/nodem/client" -) - -func TestHostNodeMergeLabels(t *testing.T) { - t.Parallel() // TODO: parallel - hostNode := client.HostNode{ - Labels: map[string]string{ - "label 1": "value 1", - "label 2": "value 2", - }, - CustomLabels: map[string]string{ - "label a": "value a", - "label b": "value b", - }, - } - sysLabelsLen := len(hostNode.Labels) - exp := map[string]string{ - "label 1": "value 1", - "label 2": "value 2", - "label a": "value a", - "label b": "value b", - } - labels := hostNode.MergeLabels() - if len(exp) != len(labels) { - t.Errorf("Expected %d for lables, but returned %d.", len(exp), len(labels)) - } - equal := true - for k, v := range exp { - if labels[k] != v { - equal = false - } - } - if !equal { - t.Errorf("Expected %+v for labels, but returned %+v", exp, labels) - } - if sysLabelsLen != len(hostNode.Labels) { - t.Errorf("Expected %d for the length of system labels, but returned %+v", sysLabelsLen, len(hostNode.Labels)) - } -} diff --git a/node/nodem/controller/controller.go b/node/nodem/controller/controller.go deleted file mode 100644 index bc4363ed9..000000000 --- a/node/nodem/controller/controller.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "github.com/goodrain/rainbond/node/nodem/service" -) - -//Controller service daemon controller -type Controller interface { - InitStart(services []*service.Service) error - StartService(name string) error - StopService(name string) error - StartList(list []*service.Service) error - StopList(list []*service.Service) error - RestartService(s *service.Service) error - WriteConfig(s *service.Service) (bool, error) - RemoveConfig(name string) error - EnableService(name string) error - DisableService(name string) error - CheckBeforeStart() bool -} diff --git a/node/nodem/controller/controller_service_darwin.go b/node/nodem/controller/controller_service_darwin.go deleted file mode 100644 index d520c1967..000000000 --- a/node/nodem/controller/controller_service_darwin.go +++ /dev/null @@ -1,66 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/nodem/service" -) - -//NewController At the stage you want to load the configurations of all rainbond components -func NewController(conf *option.Conf, manager *ManagerService) Controller { - return &testController{} -} - -type testController struct { -} - -func (t *testController) InitStart(services []*service.Service) error { - return nil -} -func (t *testController) StartService(name string) error { - return nil -} -func (t *testController) StopService(name string) error { - return nil -} -func (t *testController) StartList(list []*service.Service) error { - return nil -} -func (t *testController) StopList(list []*service.Service) error { - return nil -} -func (t *testController) RestartService(s *service.Service) error { - return nil -} -func (t *testController) WriteConfig(s *service.Service) (bool, error) { - return false, nil -} -func (t *testController) RemoveConfig(name string) error { - return nil -} -func (t *testController) EnableService(name string) error { - return nil -} -func (t *testController) DisableService(name string) error { - return nil -} -func (t *testController) CheckBeforeStart() bool { - return false -} diff --git a/node/nodem/controller/controller_service_windows.go b/node/nodem/controller/controller_service_windows.go deleted file mode 100644 index 39f22753c..000000000 --- a/node/nodem/controller/controller_service_windows.go +++ /dev/null @@ -1,143 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -//+build windows - -package controller - -import ( - "fmt" - "strings" - - "github.com/sirupsen/logrus" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/nodem/service" - "github.com/goodrain/rainbond/util/windows" -) - -//NewController At the stage you want to load the configurations of all rainbond components -func NewController(conf *option.Conf, manager *ManagerService) Controller { - logrus.Infof("Create windows service controller") - return &windowsServiceController{ - conf: conf, - manager: manager, - } -} - -type windowsServiceController struct { - conf *option.Conf - manager *ManagerService -} - -func (w *windowsServiceController) InitStart(services []*service.Service) error { - for _, s := range services { - if s.IsInitStart && !s.Disable && !s.OnlyHealthCheck { - if err := w.writeConfig(s, false); err != nil { - return err - } - if err := w.StartService(s.Name); err != nil { - return fmt.Errorf("start windows service %s failure %s", s.Name, err.Error()) - } - } - } - return nil -} - -func (w *windowsServiceController) StartService(name string) error { - if err := windows.StartService(name); err != nil { - logrus.Errorf("windows service controller start service %s failure %s", name, err.Error()) - return err - } - logrus.Infof("windows service controller start service %s success", name) - return nil -} -func (w *windowsServiceController) StopService(name string) error { - if err := windows.StopService(name); err != nil && !strings.Contains(err.Error(), "service has not been started") { - logrus.Errorf("windows service controller stop service %s failure %s", name, err.Error()) - return err - } - logrus.Infof("windows service controller stop service %s success", name) - return nil -} -func (w *windowsServiceController) StartList(list []*service.Service) error { - for _, s := range list { - w.StartService(s.Name) - } - return nil -} -func (w *windowsServiceController) StopList(list []*service.Service) error { - for _, s := range list { - w.StopService(s.Name) - } - return nil -} -func (w *windowsServiceController) RestartService(s *service.Service) error { - if err := windows.RestartService(s.Name); err != nil { - if strings.Contains(err.Error(), "does not exist") { - if _, err := w.WriteConfig(s); err != nil { - return fmt.Errorf("ReWrite service config failure %s", err.Error()) - } - } - logrus.Errorf("windows service controller restart service %s failure %s", s.Name, err.Error()) - return err - } - logrus.Infof("windows service controller restart service %s success", s.Name) - return nil -} -func (w *windowsServiceController) WriteConfig(s *service.Service) (bool, error) { - return true, w.writeConfig(s, true) -} -func (w *windowsServiceController) writeConfig(s *service.Service, parseAndCoverOld bool) error { - cmdstr := s.Start - if parseAndCoverOld { - cmdstr = w.manager.InjectConfig(s.Start) - } - cmds := strings.Split(cmdstr, " ") - logrus.Debugf("write service %s config args %s", s.Name, cmds) - if err := windows.RegisterService(s.Name, cmds[0], "Rainbond "+s.Name, s.Requires, cmds); err != nil { - if strings.Contains(err.Error(), "already exists") { - if parseAndCoverOld { - w.RemoveConfig(s.Name) - err = windows.RegisterService(s.Name, cmds[0], "Rainbond "+s.Name, s.Requires, cmds) - } else { - logrus.Infof("windows service controller register service %s success(exist)", s.Name) - return nil - } - } - if err != nil { - logrus.Errorf("windows service controller register service %s failure %s", s.Name, err.Error()) - return err - } - } - logrus.Infof("windows service controller register service %s success", s.Name) - return nil -} -func (w *windowsServiceController) RemoveConfig(name string) error { - return windows.UnRegisterService(name) -} -func (w *windowsServiceController) EnableService(name string) error { - return nil -} -func (w *windowsServiceController) DisableService(name string) error { - //return windows.UnRegisterService(name) - return nil -} -func (w *windowsServiceController) CheckBeforeStart() bool { - return true -} diff --git a/node/nodem/controller/controller_systemd_linux.go b/node/nodem/controller/controller_systemd_linux.go deleted file mode 100644 index 32340667a..000000000 --- a/node/nodem/controller/controller_systemd_linux.go +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "bytes" - "fmt" - "io/ioutil" - "os" - "os/exec" - "regexp" - "strings" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/nodem/service" - "github.com/sirupsen/logrus" -) - -type ControllerSystemd struct { - SysConfigDir string - NodeType string - StartType string - conf *option.Conf - manager *ManagerService - regBlock *regexp.Regexp - ServiceCli string -} - -//NewController At the stage you want to load the configurations of all rainbond components -func NewController(conf *option.Conf, manager *ManagerService) Controller { - logrus.Infof("Create linux systemd controller") - cli, err := exec.LookPath("systemctl") - if err != nil { - logrus.Errorf("current machine do not have systemctl utils") - } - return &ControllerSystemd{ - conf: conf, - manager: manager, - ServiceCli: cli, - SysConfigDir: "/etc/systemd/system", - } -} - -//CheckBeforeStart check before start -func (m *ControllerSystemd) CheckBeforeStart() bool { - logrus.Info("Checking environments.") - if m.ServiceCli == "" { - logrus.Errorf("current machine do not have systemctl utils") - return false - } - return true -} - -//StartService start service -func (m *ControllerSystemd) StartService(serviceName string) error { - err := m.run("start", serviceName) - if err != nil { - logrus.Errorf("Start service %s: %v", serviceName, err) - return err - } - return nil -} - -//StopService stop service -func (m *ControllerSystemd) StopService(serviceName string) error { - err := m.run("stop", serviceName) - if err != nil { - logrus.Errorf("Stop service %s: %v", serviceName, err) - return err - } - return nil -} - -//RestartService restart service -func (m *ControllerSystemd) RestartService(s *service.Service) error { - err := m.run("restart", s.Name) - if err != nil { - logrus.Errorf("Restart service %s: %v", s.Name, err) - return err - } - - return nil -} - -//StartList start some service -func (m *ControllerSystemd) StartList(list []*service.Service) error { - logrus.Infof("Starting %d all services.", len(list)) - for _, s := range list { - m.StartService(s.Name) - } - return nil -} - -//StopList stop some service -func (m *ControllerSystemd) StopList(list []*service.Service) error { - logrus.Info("Stop all services.") - for _, s := range list { - m.StopService(s.Name) - } - return nil -} - -//EnableService enable service -func (m *ControllerSystemd) EnableService(serviceName string) error { - logrus.Info("Enable service config by systemd.") - err := m.run("enable", serviceName) - if err != nil { - logrus.Errorf("Enable service %s: %v", serviceName, err) - } - - return nil -} - -//DisableService disable service -func (m *ControllerSystemd) DisableService(serviceName string) error { - logrus.Info("Disable service config by systemd.") - err := m.run("disable", serviceName) - if err != nil { - logrus.Errorf("Disable service %s: %v", serviceName, err) - } - - return nil -} - -//WriteConfig write config -//The first parameter returned represents whether there has been a change -//If I write it the first time, there is no change -func (m *ControllerSystemd) WriteConfig(s *service.Service) (bool, error) { - var isChange = false - fileName := fmt.Sprintf("%s/%s.service", m.SysConfigDir, s.Name) - content := ToConfig(s) - content = m.manager.InjectConfig(content) - if content == "" { - err := fmt.Errorf("can not generate config for service %s", s.Name) - logrus.Error(err) - return isChange, err - } - if old, err := ioutil.ReadFile(fileName); err == nil && old != nil { - if string(old) != content { - isChange = true - } else { - return isChange, nil - } - } - if err := ioutil.WriteFile(fileName, []byte(content), 0644); err != nil { - logrus.Errorf("Generate config file %s: %v", fileName, err) - return isChange, err - } - logrus.Info("Reload config for systemd by daemon-reload.") - err := m.run("daemon-reload") - if err != nil { - logrus.Errorf("Reload config by systemd daemon-reload for %s: %v ", s.Name, err) - return isChange, err - } - return isChange, nil -} - -//RemoveConfig remove config -func (m *ControllerSystemd) RemoveConfig(name string) error { - logrus.Info("Remote service config by systemd.") - fileName := fmt.Sprintf("%s/%s.service", m.SysConfigDir, name) - _, err := os.Stat(fileName) - if err == nil { - os.Remove(fileName) - } - - logrus.Info("Reload config for systemd by daemon-reload.") - err = m.run("daemon-reload") - if err != nil { - logrus.Errorf("Reload config by systemd daemon-reload for %s: %v ", name, err) - return err - } - - return nil -} - -func (m *ControllerSystemd) run(args ...string) error { - err := exec.Command(m.ServiceCli, args...).Run() - if err != nil { - logrus.Errorf("systemd run error: %v", err) - return err - } - return nil -} - -//InitStart init start. will start some required service -func (m *ControllerSystemd) InitStart(services []*service.Service) error { - for _, s := range services { - if s.IsInitStart && !s.Disable && !s.OnlyHealthCheck { - fileName := fmt.Sprintf("/etc/systemd/system/%s.service", s.Name) - //init start can not read cluster endpoint. - //so do not change the configuration file as much as possible - _, err := os.Open(fileName) - if err != nil && os.IsNotExist(err) { - content := ToConfig(s) - if content == "" { - err := fmt.Errorf("can not generate config for service %s", s.Name) - fmt.Println(err) - return err - } - //init service start before etcd ready. so it can not set - //content = m.manager.InjectConfig(content) - if err := ioutil.WriteFile(fileName, []byte(content), 0644); err != nil { - fmt.Printf("Generate config file %s: %v", fileName, err) - return err - } - } - if err := m.run("start", s.Name); err != nil { - return fmt.Errorf("systemctl start %s error:%s", s.Name, err.Error()) - } - } - } - return nil -} - -func ToConfig(svc *service.Service) string { - if svc.Start == "" { - logrus.Error("service start command is empty.") - return "" - } - - s := ConfigWriter{writer: bytes.NewBuffer(nil)} - s.AddTitle("[Unit]") - s.Add("Description", svc.Name) - for _, d := range svc.After { - dpd := d - if !strings.Contains(dpd, ".") { - dpd += ".service" - } - s.Add("After", dpd) - } - - for _, d := range svc.Requires { - dpd := d - if !strings.Contains(dpd, ".") { - dpd += ".service" - } - s.Add("Requires", dpd) - } - - s.AddTitle("[Service]") - if svc.Type == "oneshot" { - s.Add("Type", svc.Type) - s.Add("RemainAfterExit", "yes") - } - s.Add("ExecStartPre", fmt.Sprintf(`-/bin/bash -c '%s'`, svc.PreStart)) - s.Add("ExecStart", fmt.Sprintf(`/bin/bash -c '%s'`, svc.Start)) - s.Add("ExecStop", fmt.Sprintf(`/bin/bash -c '%s'`, svc.Stop)) - s.Add("Restart", svc.RestartPolicy) - s.Add("RestartSec", svc.RestartSec) - - s.AddTitle("[Install]") - s.Add("WantedBy", "multi-user.target") - - logrus.Debugf("check is need inject args into service %s", svc.Name) - - return s.Get() -} - -type ConfigWriter struct { - writer *bytes.Buffer -} - -func (l *ConfigWriter) AddTitle(line string) { - l.writer.WriteString("\n") - l.writer.WriteString(line) -} - -func (l *ConfigWriter) Add(k, v string) { - if v == "" { - return - } - l.writer.WriteString("\n") - l.writer.WriteString(k) - l.writer.WriteString("=") - l.writer.WriteString(v) -} - -func (l *ConfigWriter) Get() string { - return l.writer.String() -} diff --git a/node/nodem/controller/manager.go b/node/nodem/controller/manager.go deleted file mode 100644 index 18005583c..000000000 --- a/node/nodem/controller/manager.go +++ /dev/null @@ -1,40 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "github.com/goodrain/rainbond/node/api" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/service" -) - -//Manager Manager -type Manager interface { - Start(*client.HostNode) error - Stop() error - GetAllService() ([]*service.Service, error) - Online() error - Offline() error - ReLoadServices() error - StartService(serviceName string) error - StopService(serviceName string) error - SetAPIRoute(apim *api.Manager) error - GetService(serviceName string) *service.Service - ListServiceImages() []string -} diff --git a/node/nodem/controller/manager_api.go b/node/nodem/controller/manager_api.go deleted file mode 100644 index ee339b931..000000000 --- a/node/nodem/controller/manager_api.go +++ /dev/null @@ -1,62 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "net/http" - "strings" - - "github.com/go-chi/chi" - "github.com/goodrain/rainbond/node/api" - httputil "github.com/goodrain/rainbond/util/http" -) - -//SetAPIRoute set api route -func (m *ManagerService) SetAPIRoute(apim *api.Manager) error { - apim.GetRouter().Post("/services/{service_name}/stop", m.StopServiceAPI) - apim.GetRouter().Post("/services/{service_name}/start", m.StartServiceAPI) - apim.GetRouter().Post("/services/update", m.UpdateConfigAPI) - return nil -} - -//StartServiceAPI start a service -func (m *ManagerService) StartServiceAPI(w http.ResponseWriter, r *http.Request) { - serviceName := strings.TrimSpace(chi.URLParam(r, "service_name")) - if err := m.StartService(serviceName); err != nil { - httputil.ReturnError(r, w, 400, err.Error()) - } - httputil.ReturnSuccess(r, w, nil) -} - -//StopServiceAPI stop a service -func (m *ManagerService) StopServiceAPI(w http.ResponseWriter, r *http.Request) { - serviceName := strings.TrimSpace(chi.URLParam(r, "service_name")) - if err := m.StopService(serviceName); err != nil { - httputil.ReturnError(r, w, 400, err.Error()) - } - httputil.ReturnSuccess(r, w, nil) -} - -//UpdateConfigAPI update service config -func (m *ManagerService) UpdateConfigAPI(w http.ResponseWriter, r *http.Request) { - if err := m.ReLoadServices(); err != nil { - httputil.ReturnError(r, w, 400, err.Error()) - } - httputil.ReturnSuccess(r, w, nil) -} diff --git a/node/nodem/controller/manager_service.go b/node/nodem/controller/manager_service.go deleted file mode 100644 index bfe23f7ee..000000000 --- a/node/nodem/controller/manager_service.go +++ /dev/null @@ -1,556 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "context" - "fmt" - "regexp" - "strings" - "sync" - "time" - - "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/builder/parser" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/event" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/healthy" - "github.com/goodrain/rainbond/node/nodem/service" - "github.com/sirupsen/logrus" -) - -var ( - // ArgsReg - - ArgsReg = regexp.MustCompile(`\$\{(\w+)\|{0,1}(.{0,1})\}`) -) - -//ManagerService manager service -type ManagerService struct { - node *client.HostNode - ctx context.Context - cancel context.CancelFunc - syncCtx context.Context - syncCancel context.CancelFunc - conf *option.Conf - ctr Controller - cluster client.ClusterClient - healthyManager healthy.Manager - services []*service.Service - allservice []*service.Service - etcdcli *clientv3.Client - autoStatusController map[string]statusController - lock sync.Mutex -} - -//GetAllService get all service -func (m *ManagerService) GetAllService() ([]*service.Service, error) { - return m.allservice, nil -} - -//GetService get service -func (m *ManagerService) GetService(serviceName string) *service.Service { - for _, s := range m.allservice { - if s.Name == serviceName { - return s - } - } - return nil -} - -//Start start and monitor all service -func (m *ManagerService) Start(node *client.HostNode) error { - logrus.Info("Starting node controller manager.") - m.loadServiceConfig() - m.node = node - if m.conf.EnableInitStart { - return m.ctr.InitStart(m.services) - } - return nil -} - -func (m *ManagerService) loadServiceConfig() { - m.allservice = service.LoadServicesFromLocal(m.conf.ServiceListFile) - var controllerServices []*service.Service - for _, s := range m.allservice { - if !s.OnlyHealthCheck && !s.Disable { - controllerServices = append(controllerServices, s) - } - } - m.services = controllerServices -} - -//Stop stop manager -func (m *ManagerService) Stop() error { - m.cancel() - return nil -} - -//Online start all service of on the node -func (m *ManagerService) Online() error { - logrus.Info("Doing node online by node controller manager") - if ok := m.ctr.CheckBeforeStart(); !ok { - logrus.Debug("check before starting: false") - return nil - } - go m.StartServices() - m.SyncServiceStatusController() - // registry local services endpoint into cluster manager - for _, s := range m.services { - m.UpOneServiceEndpoint(s) - } - return nil -} - -// SetEndpoints regists endpoints in etcd -func (m *ManagerService) SetEndpoints(hostIP string) { - if hostIP == "" { - logrus.Warningf("ignore wrong hostIP: %s", hostIP) - return - } - for _, s := range m.services { - m.UpOneServiceEndpoint(s) - } -} - -//StartServices start services -func (m *ManagerService) StartServices() { - for _, service := range m.services { - if !service.Disable { - logrus.Infof("Begin start service %s", service.Name) - update, err := m.ctr.WriteConfig(service) - if err != nil { - logrus.Errorf("write service config failure %s", err.Error()) - continue - } - if update { - if err := m.ctr.RestartService(service); err != nil { - logrus.Errorf("start service failure %s", err.Error()) - continue - } - } else { - if err := m.ctr.StartService(service.Name); err != nil { - logrus.Errorf("start service failure %s", err.Error()) - continue - } - } - } - } -} - -//Offline stop all service of on the node -func (m *ManagerService) Offline() error { - logrus.Info("Doing node offline by node controller manager") - services, _ := m.GetAllService() - for _, s := range services { - m.DownOneServiceEndpoint(s) - } - m.StopSyncService() - if err := m.ctr.StopList(m.services); err != nil { - return err - } - return nil -} - -//DownOneServiceEndpoint down service endpoint -func (m *ManagerService) DownOneServiceEndpoint(s *service.Service) { - hostIP := m.cluster.GetOptions().HostIP - for _, end := range s.Endpoints { - logrus.Debug("Anti-registry endpoint: ", end.Name) - key := end.Name + "/" + hostIP - endpoint := toEndpoint(end, hostIP) - oldEndpoints := m.cluster.GetEndpoints(key) - if exist := isExistEndpoint(oldEndpoints, endpoint); exist { - endpoints := rmEndpointFrom(oldEndpoints, endpoint) - if len(endpoints) > 0 { - m.cluster.SetEndpoints(end.Name, m.cluster.GetOptions().HostIP, endpoints) - continue - } - m.cluster.DelEndpoints(key) - } - } - logrus.Infof("node %s down service %s endpoints", hostIP, s.Name) -} - -//UpOneServiceEndpoint up service endpoint -func (m *ManagerService) UpOneServiceEndpoint(s *service.Service) { - if s.OnlyHealthCheck || s.Disable { - return - } - hostIP := m.cluster.GetOptions().HostIP - for _, end := range s.Endpoints { - if end.Name == "" || strings.Replace(end.Port, " ", "", -1) == "" { - continue - } - endpoint := toEndpoint(end, hostIP) - m.cluster.SetEndpoints(end.Name, hostIP, []string{endpoint}) - } -} - -//SyncServiceStatusController synchronize all service status to as we expect -func (m *ManagerService) SyncServiceStatusController() { - m.lock.Lock() - defer m.lock.Unlock() - if m.autoStatusController != nil && len(m.autoStatusController) > 0 { - for _, v := range m.autoStatusController { - v.Stop() - } - } - m.autoStatusController = make(map[string]statusController, len(m.services)) - for _, s := range m.services { - if s.ServiceHealth == nil { - continue - } - ctx, cancel := context.WithCancel(context.Background()) - serviceStatusController := statusController{ - ctx: ctx, - cancel: cancel, - service: s, - healthyManager: m.healthyManager, - watcher: m.healthyManager.WatchServiceHealthy(s.Name), - unhealthHandle: func(event *service.HealthStatus, w healthy.Watcher) { - service := m.GetService(event.Name) - if service == nil { - logrus.Errorf("not found service %s", event.Name) - return - } - m.DownOneServiceEndpoint(service) - if service.OnlyHealthCheck { - logrus.Warningf("service %s is only check health.so do not auto restart it", event.Name) - return - } - if event.Name == "docker" { - logrus.Errorf("service docker can not auto restart. must artificial processing") - return - } - // disable check healthy status of the service - logrus.Infof("service %s not healthy, will restart it", event.Name) - m.healthyManager.DisableWatcher(event.Name, w.GetID()) - _, err := m.ctr.WriteConfig(service) - if err == nil { - if err := m.ctr.RestartService(service); err != nil { - logrus.Errorf("restart service %s failure %s", event.Name, err.Error()) - } else { - if !m.WaitStart(event.Name, time.Minute) { - logrus.Errorf("Timeout restart service: %s, will recheck health", event.Name) - } - } - } else { - logrus.Errorf("update service %s systemctl config failure where restart it:%s", event.Name, err.Error()) - } - // start check healthy status of the service - m.healthyManager.EnableWatcher(event.Name, w.GetID()) - }, - healthHandle: func(event *service.HealthStatus, w healthy.Watcher) { - service := m.GetService(event.Name) - if service == nil { - logrus.Errorf("not found service %s", event.Name) - return - } - m.UpOneServiceEndpoint(service) - }, - } - m.autoStatusController[s.Name] = serviceStatusController - go serviceStatusController.Run() - } -} - -type statusController struct { - watcher healthy.Watcher - ctx context.Context - cancel context.CancelFunc - service *service.Service - unhealthHandle func(event *service.HealthStatus, w healthy.Watcher) - healthHandle func(event *service.HealthStatus, w healthy.Watcher) - healthyManager healthy.Manager -} - -func (s *statusController) Run() { - logrus.Info("run status controller") - s.healthyManager.EnableWatcher(s.service.Name, s.watcher.GetID()) - defer s.watcher.Close() - defer s.healthyManager.DisableWatcher(s.service.Name, s.watcher.GetID()) - for { - select { - case event := <-s.watcher.Watch(): - switch event.Status { - case service.Stat_healthy: - if s.healthHandle != nil { - s.healthHandle(event, s.watcher) - } - logrus.Debugf("service %s status is [%s]", event.Name, event.Status) - case service.Stat_unhealthy: - if s.service.ServiceHealth != nil { - if event.ErrorNumber > s.service.ServiceHealth.MaxErrorsNum { - logrus.Warningf("service %s status is [%s] more than %d times and restart it.", event.Name, event.Status, s.service.ServiceHealth.MaxErrorsNum) - s.unhealthHandle(event, s.watcher) - } - } - case service.Stat_death: - logrus.Warningf("service %s status is [%s] will restart it.", event.Name, event.Status) - s.unhealthHandle(event, s.watcher) - } - case <-s.ctx.Done(): - return - } - } -} -func (s *statusController) Stop() { - s.cancel() -} - -// StopSyncService - -func (m *ManagerService) StopSyncService() { - if m.syncCtx != nil { - m.syncCancel() - } -} - -//WaitStart waiting service healty -func (m *ManagerService) WaitStart(name string, duration time.Duration) bool { - max := time.Now().Add(duration) - t := time.Tick(time.Second * 3) - for { - if time.Now().After(max) { - return false - } - status, err := m.healthyManager.GetCurrentServiceHealthy(name) - if err != nil { - logrus.Errorf("Can not get %s service current status: %v", name, err) - <-t - continue - } - logrus.Debugf("Check service %s current status: %s", name, status.Status) - if status.Status == service.Stat_healthy { - return true - } - <-t - } -} - -// ReLoadServices - -/* -1. reload services info from local file system -2. regenerate systemd config file and restart with config changes -3. start all newly added services -*/ -func (m *ManagerService) ReLoadServices() error { - logrus.Info("start reload service configs") - services := service.LoadServicesFromLocal(m.conf.ServiceListFile) - var controllerServices []*service.Service - var restartCount int - for _, ne := range services { - if ne.OnlyHealthCheck { - continue - } - if !ne.Disable { - controllerServices = append(controllerServices, ne) - } - exists := false - for _, old := range m.services { - if ne.Name == old.Name { - if ne.Disable { - m.ctr.StopService(ne.Name) - m.ctr.DisableService(ne.Name) - restartCount++ - } - logrus.Infof("Recreate service [%s]", ne.Name) - update, err := m.ctr.WriteConfig(ne) - if err == nil { - m.ctr.EnableService(ne.Name) - if update { - m.ctr.RestartService(ne) - } else { - m.ctr.StartService(ne.Name) - } - restartCount++ - } - exists = true - break - } - } - if !exists { - logrus.Infof("Create service [%s]", ne.Name) - update, err := m.ctr.WriteConfig(ne) - if err == nil { - m.ctr.EnableService(ne.Name) - if update { - m.ctr.RestartService(ne) - } else { - m.ctr.StartService(ne.Name) - } - restartCount++ - } - } - } - m.allservice = services - m.services = controllerServices - m.healthyManager.AddServicesAndUpdate(m.allservice) - m.SyncServiceStatusController() - logrus.Infof("load service config success, start or stop %d service and total %d service", restartCount, len(services)) - return nil -} - -//StartService start a service -func (m *ManagerService) StartService(serviceName string) error { - for _, service := range m.services { - if service.Name == serviceName { - if !service.Disable { - return fmt.Errorf("service %s is running", serviceName) - } - return m.ctr.StartService(serviceName) - } - } - return nil -} - -//StopService start a service -func (m *ManagerService) StopService(serviceName string) error { - for i, service := range m.services { - if service.Name == serviceName { - if service.Disable { - return fmt.Errorf("service %s is stoped", serviceName) - } - (m.services)[i].Disable = true - m.lock.Lock() - defer m.lock.Unlock() - if controller, ok := m.autoStatusController[serviceName]; ok { - controller.Stop() - } - return m.ctr.StopService(serviceName) - } - } - return nil -} - -//WriteServices write services -func (m *ManagerService) WriteServices() error { - for _, s := range m.services { - if s.OnlyHealthCheck { - continue - } - if s.Name == "docker" { - continue - } - _, err := m.ctr.WriteConfig(s) - if err != nil { - return err - } - } - - return nil -} - -func isExistEndpoint(etcdEndPoints []string, end string) bool { - for _, v := range etcdEndPoints { - if v == end { - return true - } - } - return false -} - -func rmEndpointFrom(etcdEndPoints []string, end string) []string { - endPoints := make([]string, 0, 5) - for _, v := range etcdEndPoints { - if v != end { - endPoints = append(endPoints, v) - } - } - return endPoints -} - -func toEndpoint(reg *service.Endpoint, ip string) string { - if reg.Protocol == "" { - return fmt.Sprintf("%s:%s", ip, reg.Port) - } - return fmt.Sprintf("%s://%s:%s", reg.Protocol, ip, reg.Port) -} - -//InjectConfig inject config -func (m *ManagerService) InjectConfig(content string) string { - for _, parantheses := range ArgsReg.FindAllString(content, -1) { - logrus.Debugf("discover inject args template %s", parantheses) - group := ArgsReg.FindStringSubmatch(parantheses) - if group == nil || len(group) < 2 { - logrus.Warnf("Not found group for %s", parantheses) - continue - } - line := "" - if group[1] == "NODE_UUID" { - line = m.node.ID - } else { - endpoints := m.cluster.GetEndpoints(group[1]) - if len(endpoints) < 1 { - logrus.Warnf("Failed to inject endpoints of key %s", group[1]) - continue - } - sep := "," - if len(group) >= 3 && group[2] != "" { - sep = group[2] - } - for _, end := range endpoints { - if line == "" { - line = end - } else { - line += sep - line += end - } - } - } - content = strings.Replace(content, group[0], line, 1) - logrus.Debugf("inject args into service %s => %v", group[1], line) - } - return content -} - -// ListServiceImages - -func (m *ManagerService) ListServiceImages() []string { - var images []string - for _, svc := range m.services { - if svc.Start == "" || svc.OnlyHealthCheck { - continue - } - - par := parser.CreateDockerRunOrImageParse("", "", svc.Start, nil, event.GetTestLogger()) - par.ParseDockerun(svc.Start) - logrus.Debugf("detect image: %s", par.GetImage().String()) - if par.GetImage().String() == "" { - continue - } - images = append(images, par.GetImage().String()) - } - - return images -} - -//NewManagerService new controller manager -func NewManagerService(conf *option.Conf, healthyManager healthy.Manager, cluster client.ClusterClient) *ManagerService { - ctx, cancel := context.WithCancel(context.Background()) - manager := &ManagerService{ - ctx: ctx, - cancel: cancel, - conf: conf, - cluster: cluster, - healthyManager: healthyManager, - etcdcli: conf.EtcdCli, - } - manager.ctr = NewController(conf, manager) - return manager -} diff --git a/node/nodem/controller/manager_service_test.go b/node/nodem/controller/manager_service_test.go deleted file mode 100644 index 138524f0f..000000000 --- a/node/nodem/controller/manager_service_test.go +++ /dev/null @@ -1,89 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "context" - "strings" - "testing" - "time" - - "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/service" -) - -func TestManagerService_SetEndpoints(t *testing.T) { - cli, err := clientv3.New(clientv3.Config{ - Endpoints: []string{"127.0.0.1:2379"}, - DialTimeout: time.Duration(5) * time.Second, - }) - if err != nil { - t.Fatal(err) - } - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - key := "/rainbond/endpoint/foobar" - defer cli.Delete(ctx, key, clientv3.WithPrefix()) - - m := &ManagerService{} - srvs := []*service.Service{ - { - Endpoints: []*service.Endpoint{ - { - Name: "foobar", - Protocol: "http", - Port: "6442", - }, - }, - }, - } - m.services = srvs - c := client.NewClusterClient( - &option.Conf{ - EtcdCli: cli, - }, - ) - m.cluster = c - - data := []string{ - "192.168.8.229", - "192.168.8.230", - "192.168.8.231", - } - - m.SetEndpoints(data[0]) - m.SetEndpoints(data[1]) - m.SetEndpoints(data[2]) - - edps := c.GetEndpoints("foobar") - for _, d := range data { - flag := false - for _, edp := range edps { - if d+":6442" == strings.Replace(edp, "http://", "", -1) { - flag = true - } - } - if !flag { - t.Fatalf("Can not find \"%s\" in %v", d, edps) - } - } -} diff --git a/node/nodem/envoy/server_v2.go b/node/nodem/envoy/server_v2.go index 6e73eed59..ec495b367 100644 --- a/node/nodem/envoy/server_v2.go +++ b/node/nodem/envoy/server_v2.go @@ -36,7 +36,7 @@ import ( "github.com/envoyproxy/go-control-plane/pkg/cache/v2" "github.com/envoyproxy/go-control-plane/pkg/server/v2" api_model "github.com/goodrain/rainbond/api/model" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/nodem/envoy/conver" "github.com/sirupsen/logrus" "google.golang.org/grpc" diff --git a/node/nodem/gc/image_gc_manager.go b/node/nodem/gc/image_gc_manager.go deleted file mode 100644 index 0180ce753..000000000 --- a/node/nodem/gc/image_gc_manager.go +++ /dev/null @@ -1,429 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package gc - -import ( - "context" - goerrors "errors" - "fmt" - "sort" - "strings" - "sync" - "time" - - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" - "github.com/shirou/gopsutil/disk" - "github.com/sirupsen/logrus" - "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/wait" -) - -var ( - // ErrImageNotFound - - ErrImageNotFound = goerrors.New("image not found") -) - -// FsStats - -type FsStats struct { - CapacityBytes uint64 `json:"capacityBytes,omitempty"` - AvailableBytes uint64 `json:"availableBytes,omitempty"` -} - -// GetFsStats - -func GetFsStats(path string) (*disk.UsageStat, error) { - return disk.Usage(path) -} - -// ImageGCManager is an interface for managing lifecycle of all images. -// Implementation is thread-safe. -type ImageGCManager interface { - // Start async garbage collection of images. - Start() - - SetServiceImages(seviceImages []string) -} - -// ImageGCPolicy is a policy for garbage collecting images. Policy defines an allowed band in -// which garbage collection will be run. -type ImageGCPolicy struct { - // Any usage above this threshold will always trigger garbage collection. - // This is the highest usage we will allow. - HighThresholdPercent int - - // Any usage below this threshold will never trigger garbage collection. - // This is the lowest threshold we will try to garbage collect to. - LowThresholdPercent int - - // Minimum age at which an image can be garbage collected. - MinAge time.Duration - - // ImageGCPeriod is the period for performing image garbage collection. - ImageGCPeriod time.Duration -} - -type realImageGCManager struct { - dockerClient *client.Client - - // Records of images and their use. - imageRecords map[string]*imageRecord - imageRecordsLock sync.Mutex - - // The image garbage collection policy in use. - policy ImageGCPolicy - - // Track initialization - initialized bool - - // sandbox image exempted from GC - sandboxImage string - serviceImages []string -} - -// Information about the images we track. -type imageRecord struct { - // Time when this image was first detected. - firstDetected time.Time - - // Time when we last saw this image being used. - lastUsed time.Time - - // Size of the image in bytes. - size int64 -} - -// NewImageGCManager instantiates a new ImageGCManager object. -func NewImageGCManager(dockerClient *client.Client, policy ImageGCPolicy, sandboxImage string) (ImageGCManager, error) { - // Validate policy. - if policy.HighThresholdPercent < 0 || policy.HighThresholdPercent > 100 { - return nil, fmt.Errorf("invalid HighThresholdPercent %d, must be in range [0-100]", policy.HighThresholdPercent) - } - if policy.LowThresholdPercent < 0 || policy.LowThresholdPercent > 100 { - return nil, fmt.Errorf("invalid LowThresholdPercent %d, must be in range [0-100]", policy.LowThresholdPercent) - } - if policy.LowThresholdPercent > policy.HighThresholdPercent { - return nil, fmt.Errorf("LowThresholdPercent %d can not be higher than HighThresholdPercent %d", policy.LowThresholdPercent, policy.HighThresholdPercent) - } - im := &realImageGCManager{ - dockerClient: dockerClient, - policy: policy, - imageRecords: make(map[string]*imageRecord), - initialized: false, - sandboxImage: sandboxImage, - } - - return im, nil -} - -func (im *realImageGCManager) Start() { - logrus.Infof("start image gc manager; image gc period: %f", im.policy.ImageGCPeriod.Seconds()) - go wait.Until(func() { - // Initial detection make detected time "unknown" in the past. - var ts time.Time - if im.initialized { - ts = time.Now() - } - _, err := im.detectImages(ts) - if err != nil { - logrus.Warningf("[imageGCManager] Failed to monitor images: %v", err) - } else { - im.initialized = true - } - }, im.policy.ImageGCPeriod, wait.NeverStop) - - prevImageGCFailed := false - go wait.Until(func() { - if err := im.GarbageCollect(); err != nil { - if prevImageGCFailed { - logrus.Errorf("Image garbage collection failed multiple times in a row: %v", err) - } else { - logrus.Errorf("Image garbage collection failed once. Stats initialization may not have completed yet: %v", err) - } - prevImageGCFailed = true - } else { - logrus.Debug("Image garbage collection succeeded") - } - }, im.policy.ImageGCPeriod, wait.NeverStop) -} - -func (im *realImageGCManager) SetServiceImages(serviceImages []string) { - logrus.Infof("set service images: %s", strings.Join(serviceImages, ",")) - im.serviceImages = serviceImages -} - -func (im *realImageGCManager) detectImages(detectTime time.Time) (sets.String, error) { - imagesInUse := sets.NewString() - - // copy service images - serviceImages := make([]string, len(im.serviceImages)) - copy(serviceImages, im.serviceImages) - - // Always consider the container runtime pod sandbox image in use - serviceImages = append(serviceImages, im.sandboxImage) - for _, image := range serviceImages { - imageRef, err := im.getImageRef(image) - if err == nil && imageRef != "" { - imagesInUse.Insert(imageRef) - } - } - - images, err := im.listImages() - if err != nil { - return imagesInUse, err - } - - // Add new images and record those being used. - now := time.Now() - currentImages := sets.NewString() - im.imageRecordsLock.Lock() - defer im.imageRecordsLock.Unlock() - for _, image := range images { - logrus.Debugf("Adding image ID %s to currentImages", image.ID) - currentImages.Insert(image.ID) - - // New image, set it as detected now. - if _, ok := im.imageRecords[image.ID]; !ok { - logrus.Debugf("Image ID %s is new", image.ID) - im.imageRecords[image.ID] = &imageRecord{ - firstDetected: detectTime, - } - } - - // Set last used time to now if the image is being used. - if isImageUsed(image.ID, imagesInUse) { - logrus.Debugf("Setting Image ID %s lastUsed to %v", image.ID, now) - im.imageRecords[image.ID].lastUsed = now - } - - logrus.Debugf("Image ID %s has size %d", image.ID, image.Size) - im.imageRecords[image.ID].size = image.Size - } - - // Remove old images from our records. - for image := range im.imageRecords { - if !currentImages.Has(image) { - logrus.Debugf("Image ID %s is no longer present; removing from imageRecords", image) - delete(im.imageRecords, image) - } - } - - return imagesInUse, nil -} - -func (im *realImageGCManager) getImageRef(imageID string) (string, error) { - ctx, cancel := getContextWithTimeout(3 * time.Second) - defer cancel() - - inspect, _, err := im.dockerClient.ImageInspectWithRaw(ctx, imageID) - if err != nil { - if strings.Contains(err.Error(), "No such image") { - return "", ErrImageNotFound - } - return "", err - } - - return inspect.ID, nil -} - -func (im *realImageGCManager) listImages() ([]types.ImageSummary, error) { - ctx, cancel := getContextWithTimeout(3 * time.Second) - defer cancel() - - return im.dockerClient.ImageList(ctx, types.ImageListOptions{}) -} - -func (im *realImageGCManager) removeImage(imageID string) error { - ctx, cancel := getContextWithTimeout(3 * time.Second) - defer cancel() - - opts := types.ImageRemoveOptions{ - Force: true, - } - items, err := im.dockerClient.ImageRemove(ctx, imageID, opts) - if err != nil { - return err - } - - for _, item := range items { - if item.Deleted != "" { - logrus.Debugf("image deleted: %s", item.Deleted) - } - if item.Untagged != "" { - logrus.Debugf("image untagged: %s", item.Untagged) - } - } - - return nil -} - -func (im *realImageGCManager) dockerRootDir() (string, error) { - ctx, cancel := getContextWithTimeout(3 * time.Second) - defer cancel() - - dockerInfo, err := im.dockerClient.Info(ctx) - if err != nil { - return "", fmt.Errorf("docker info: %v", err) - } - - return dockerInfo.DockerRootDir, nil -} - -// getContextWithTimeout returns a context with timeout. -func getContextWithTimeout(timeout time.Duration) (context.Context, context.CancelFunc) { - return context.WithTimeout(context.Background(), timeout) -} - -func (im *realImageGCManager) GarbageCollect() error { - dockerRootDir, err := im.dockerRootDir() - if err != nil { - logrus.Errorf("failed to get docker root dir: %v; use '/var/lib/docker'", err) - dockerRootDir = "/var/lib/docker" - } - - logrus.Infof("docker root dir: %s", dockerRootDir) - fsStats, err := GetFsStats(dockerRootDir) - if err != nil { - return err - } - - available := fsStats.Free - capacity := fsStats.Total - if available > capacity { - logrus.Warningf("available %d is larger than capacity %d", available, capacity) - available = capacity - } - - // Check valid capacity. - if capacity == 0 { - err := goerrors.New("invalid capacity 0 on image filesystem") - return err - } - - // If over the max threshold, free enough to place us at the lower threshold. - usagePercent := fsStats.UsedPercent - logrus.Infof("[imageGCManager]: available disk: %d bytes; capacity of disk: %d bytes; disk usage on image filesystem: %0.f%%; high threshold (%d%%).", available, capacity, usagePercent, im.policy.HighThresholdPercent) - if usagePercent >= float64(im.policy.HighThresholdPercent) { - amountToFree := int64(capacity)*int64(100-im.policy.LowThresholdPercent)/100 - int64(available) - logrus.Infof("[imageGCManager]: Disk usage on image filesystem is at %0.f%% which is over the high threshold (%d%%). Trying to free %d bytes down to the low threshold (%d%%).", usagePercent, im.policy.HighThresholdPercent, amountToFree, im.policy.LowThresholdPercent) - freed, err := im.freeSpace(amountToFree, time.Now()) - if err != nil { - return err - } - - if freed < amountToFree { - logrus.Debugf("failed to garbage collect required amount of images. Wanted to free %d bytes, but freed %d bytes", amountToFree, freed) - return fmt.Errorf("failed to garbage collect required amount of images. Wanted to free %d bytes, but freed %d bytes", amountToFree, freed) - } - } - - return nil -} - -// Tries to free bytesToFree worth of images on the disk. -// -// Returns the number of bytes free and an error if any occurred. The number of -// bytes freed is always returned. -// Note that error may be nil and the number of bytes free may be less -// than bytesToFree. -func (im *realImageGCManager) freeSpace(bytesToFree int64, freeTime time.Time) (int64, error) { - imagesInUse, err := im.detectImages(freeTime) - if err != nil { - return 0, err - } - - im.imageRecordsLock.Lock() - defer im.imageRecordsLock.Unlock() - - // Get all images in eviction order. - images := make([]evictionInfo, 0, len(im.imageRecords)) - for image, record := range im.imageRecords { - if isImageUsed(image, imagesInUse) { - logrus.Debugf("Image ID %s is being used", image) - continue - } - images = append(images, evictionInfo{ - id: image, - imageRecord: *record, - }) - } - sort.Sort(byLastUsedAndDetected(images)) - - // Delete unused images until we've freed up enough space. - var deletionErrors []error - spaceFreed := int64(0) - for _, image := range images { - logrus.Debugf("Evaluating image ID %s for possible garbage collection", image.id) - // Images that are currently in used were given a newer lastUsed. - if image.lastUsed.Equal(freeTime) || image.lastUsed.After(freeTime) { - logrus.Debugf("Image ID %s has lastUsed=%v which is >= freeTime=%v, not eligible for garbage collection", image.id, image.lastUsed, freeTime) - continue - } - - // Avoid garbage collect the image if the image is not old enough. - // In such a case, the image may have just been pulled down, and will be used by a container right away. - - if freeTime.Sub(image.firstDetected) < im.policy.MinAge { - logrus.Debugf("Image ID %s has age %v which is less than the policy's minAge of %v, not eligible for garbage collection", image.id, freeTime.Sub(image.firstDetected), im.policy.MinAge) - continue - } - - // Remove image. Continue despite errors. - logrus.Debugf("[imageGCManager]: Removing image %q to free %d bytes", image.id, image.size) - err := im.removeImage(image.id) - if err != nil { - continue - } - delete(im.imageRecords, image.id) - spaceFreed += image.size - - if spaceFreed >= bytesToFree { - logrus.Debugf("spaceFreed(%f) is greater than bytesToFree(%f), stop free space") - break - } - } - - if len(deletionErrors) > 0 { - return spaceFreed, fmt.Errorf("wanted to free %d bytes, but freed %d bytes space with errors in image deletion: %v", bytesToFree, spaceFreed, errors.NewAggregate(deletionErrors)) - } - return spaceFreed, nil -} - -type evictionInfo struct { - id string - imageRecord -} - -type byLastUsedAndDetected []evictionInfo - -func (ev byLastUsedAndDetected) Len() int { return len(ev) } -func (ev byLastUsedAndDetected) Swap(i, j int) { ev[i], ev[j] = ev[j], ev[i] } -func (ev byLastUsedAndDetected) Less(i, j int) bool { - // Sort by last used, break ties by detected. - if ev[i].lastUsed.Equal(ev[j].lastUsed) { - return ev[i].firstDetected.Before(ev[j].firstDetected) - } - return ev[i].lastUsed.Before(ev[j].lastUsed) -} - -func isImageUsed(imageID string, imagesInUse sets.String) bool { - // Check the image ID. - if _, ok := imagesInUse[imageID]; ok { - return true - } - return false -} diff --git a/node/nodem/gc/image_gc_manager_test.go b/node/nodem/gc/image_gc_manager_test.go deleted file mode 100644 index 8787dc0cf..000000000 --- a/node/nodem/gc/image_gc_manager_test.go +++ /dev/null @@ -1,84 +0,0 @@ -package gc - -import ( - "context" - "testing" - "time" - - "github.com/docker/docker/client" -) - -var dockerTimeout = 10 * time.Second - -func defaultContext() context.Context { - ctx, _ := context.WithTimeout(context.Background(), dockerTimeout) - return ctx -} - -func TestGetImageRef(t *testing.T) { - dockerCli, err := client.NewEnvClient() - if err != nil { - t.Fatal(err) - } - - im := realImageGCManager{ - dockerClient: dockerCli, - } - if _, err := im.getImageRef("nginx"); err != nil { - t.Error(err) - } -} - -func TestListImages(t *testing.T) { - dockerCli, err := client.NewEnvClient() - if err != nil { - t.Fatal(err) - } - - im := realImageGCManager{ - dockerClient: dockerCli, - } - - images, err := im.listImages() - if err != nil { - t.Fatal(err) - } - - for _, image := range images { - t.Logf("%s\n", image.ID) - } -} - -func TestRemoveImage(t *testing.T) { - dockerCli, err := client.NewEnvClient() - if err != nil { - t.Fatal(err) - } - - im := realImageGCManager{ - dockerClient: dockerCli, - } - - if err := im.removeImage("sha256:568c4670fa800978e08e4a51132b995a54f8d5ae83ca133ef5546d092b864acf"); err != nil { - t.Fatalf("remove image: %v", err) - } -} - -func TestDockerRootDir(t *testing.T) { - dockerCli, err := client.NewEnvClient() - if err != nil { - t.Fatal(err) - } - - dockerInfo, err := dockerCli.Info(defaultContext()) - if err != nil { - t.Errorf("docker info: %v", err) - } - - t.Logf("docker root dir: %s", dockerInfo.DockerRootDir) -} - -func TestFoobar(t *testing.T) { - f := 62.123 - t.Errorf("%0.f%%", f) -} diff --git a/node/nodem/healthy/health_manager.go b/node/nodem/healthy/health_manager.go deleted file mode 100644 index 0235d7d73..000000000 --- a/node/nodem/healthy/health_manager.go +++ /dev/null @@ -1,323 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package healthy - -import ( - "context" - "errors" - "sync" - "time" - - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/healthy/probe" - "github.com/goodrain/rainbond/node/nodem/service" - "github.com/goodrain/rainbond/util" - "github.com/sirupsen/logrus" -) - -//Manager Manager -type Manager interface { - GetServiceHealthy(serviceName string) (*service.HealthStatus, bool) - GetCurrentServiceHealthy(serviceName string) (*service.HealthStatus, error) - WatchServiceHealthy(serviceName string) Watcher - CloseWatch(serviceName string, id string) error - Start(hostNode *client.HostNode) error - AddServices([]*service.Service) error - GetServiceHealth() map[string]*service.HealthStatus - AddServicesAndUpdate([]*service.Service) error - Stop() error - DisableWatcher(serviceName, watcherID string) - EnableWatcher(serviceName, watcherID string) -} - -//Watcher watcher -type Watcher interface { - GetID() string - GetServiceName() string - Watch() <-chan *service.HealthStatus - Close() error -} - -type watcher struct { - manager Manager - statusChan chan *service.HealthStatus - id string - serviceName string - enable bool -} - -type probeManager struct { - services []*service.Service - serviceProbe map[string]probe.Probe - status map[string]*service.HealthStatus - ctx context.Context - cancel context.CancelFunc - watches map[string]map[string]*watcher - statusChan chan *service.HealthStatus - lock sync.Mutex - hostNode *client.HostNode -} - -//CreateManager create manager -func CreateManager() Manager { - ctx, cancel := context.WithCancel(context.Background()) - statusChan := make(chan *service.HealthStatus, 100) - status := make(map[string]*service.HealthStatus) - watches := make(map[string]map[string]*watcher) - m := &probeManager{ - ctx: ctx, - cancel: cancel, - statusChan: statusChan, - status: status, - watches: watches, - serviceProbe: make(map[string]probe.Probe), - } - return m -} - -func (p *probeManager) AddServices(inner []*service.Service) error { - p.services = inner - return nil -} -func (p *probeManager) AddServicesAndUpdate(inner []*service.Service) error { - p.services = inner - p.updateServiceProbe() - return nil -} - -func (p *probeManager) Start(hostNode *client.HostNode) error { - p.hostNode = hostNode - go p.HandleStatus() - p.updateServiceProbe() - return nil -} - -func (p *probeManager) updateServiceProbe() { - p.lock.Lock() - defer p.lock.Unlock() - //stop all probe - for _, pro := range p.serviceProbe { - pro.Stop() - } - //create new probe - p.serviceProbe = make(map[string]probe.Probe, len(p.services)) - for i := range p.services { - service := p.services[i] - if service.ServiceHealth == nil { - continue - } - if service.Disable { - continue - } - serviceProbe, err := probe.CreateProbe(p.ctx, p.hostNode, p.statusChan, service) - if err != nil { - logrus.Warningf("create prose for service %s failure,%s", service.Name, err.Error()) - } - if serviceProbe != nil { - p.serviceProbe[service.Name] = serviceProbe - serviceProbe.Check() - logrus.Infof("create probe for service %s", service.Name) - } - } -} - -func (p *probeManager) updateServiceStatus(status *service.HealthStatus) { - p.lock.Lock() - defer p.lock.Unlock() - exist, ok := p.status[status.Name] - if !ok { - p.status[status.Name] = status - return - } - if status.Status != service.Stat_healthy { - number := exist.ErrorNumber + 1 - status.ErrorNumber = number - if exist.StartErrorTime.IsZero() { - status.StartErrorTime = time.Now() - } else { - status.StartErrorTime = exist.StartErrorTime - } - status.ErrorDuration = time.Now().Sub(exist.StartErrorTime) - p.status[status.Name] = status - } else { - status.ErrorNumber = 0 - status.ErrorDuration = 0 - var zero time.Time - status.StartErrorTime = zero - p.status[status.Name] = status - } -} -func (p *probeManager) updateWatcher(status *service.HealthStatus) { - p.lock.Lock() - defer p.lock.Unlock() - if watcherMap, ok := p.watches[status.Name]; ok { - for _, watcher := range watcherMap { - if watcher.enable { - watcher.statusChan <- status - } - } - } - -} -func (p *probeManager) HandleStatus() { - for { - select { - case status := <-p.statusChan: - p.updateServiceStatus(status) - p.updateWatcher(status) - case <-p.ctx.Done(): - return - } - } -} - -func (p *probeManager) Stop() error { - p.cancel() - return nil -} -func (p *probeManager) CloseWatch(serviceName string, id string) error { - p.lock.Lock() - defer p.lock.Unlock() - channel := p.watches[serviceName][id].statusChan - close(channel) - delete(p.watches[serviceName], id) - return nil -} -func (p *probeManager) GetServiceHealthy(serviceName string) (*service.HealthStatus, bool) { - v, ok := p.status[serviceName] - return v, ok -} - -func (w *watcher) GetServiceName() string { - return w.serviceName -} - -func (w *watcher) GetID() string { - return w.id -} - -func (w *watcher) Watch() <-chan *service.HealthStatus { - return w.statusChan -} - -func (w *watcher) Close() error { - return w.manager.CloseWatch(w.serviceName, w.id) -} - -func (p *probeManager) DisableWatcher(serviceName, watcherID string) { - logrus.Info("Disable check healthy status of service: ", serviceName) - p.lock.Lock() - defer p.lock.Unlock() - if s, ok := p.watches[serviceName]; ok { - if w, ok := s[watcherID]; ok { - w.enable = false - } - } else { - logrus.Error("Can not disable the watcher: Not found service: ", serviceName) - } -} - -func (p *probeManager) EnableWatcher(serviceName, watcherID string) { - logrus.Info("Enable check healthy status of service: ", serviceName) - p.lock.Lock() - defer p.lock.Unlock() - if s, ok := p.watches[serviceName]; ok { - if w, ok := s[watcherID]; ok { - w.enable = true - } - } else { - logrus.Error("Can not enable the watcher: Not found service: ", serviceName) - } -} - -func (p *probeManager) WatchServiceHealthy(serviceName string) Watcher { - healthChannel := make(chan *service.HealthStatus, 10) - w := &watcher{ - manager: p, - statusChan: healthChannel, - id: util.NewUUID(), - serviceName: serviceName, - } - p.lock.Lock() - defer p.lock.Unlock() - if s, ok := p.watches[serviceName]; ok { - s[w.id] = w - } else { - p.watches[serviceName] = map[string]*watcher{ - w.id: w, - } - } - return w -} - -func (p *probeManager) GetCurrentServiceHealthy(serviceName string) (*service.HealthStatus, error) { - if len(p.services) == 0 { - return nil, errors.New("services list is empty") - } - for _, v := range p.services { - if v.Name == serviceName { - if v.ServiceHealth.Model == "http" { - statusMap := probe.GetHTTPHealth(v.ServiceHealth.Address) - result := &service.HealthStatus{ - Name: v.Name, - Status: statusMap["status"], - Info: statusMap["info"], - } - return result, nil - } - if v.ServiceHealth.Model == "tcp" { - statusMap := probe.GetTcpHealth(v.ServiceHealth.Address) - result := &service.HealthStatus{ - Name: v.Name, - Status: statusMap["status"], - Info: statusMap["info"], - } - return result, nil - } - if v.ServiceHealth.Model == "cmd" { - statusMap := probe.GetShellHealth(v.ServiceHealth.Address) - result := &service.HealthStatus{ - Name: v.Name, - Status: statusMap["status"], - Info: statusMap["info"], - } - return result, nil - } - } - } - return nil, errors.New("the service does not exist") -} -func (p *probeManager) GetServiceHealth() map[string]*service.HealthStatus { - p.lock.Lock() - defer p.lock.Unlock() - newstatus := make(map[string]*service.HealthStatus, len(p.services)) - for _, s := range p.services { - if status, ok := p.status[s.Name]; ok { - newstatus[s.Name] = status - } else { - //before not have status set service status is health - newstatus[s.Name] = &service.HealthStatus{ - Name: s.Name, - Status: service.Stat_healthy, - Info: "not have health probe or not have status", - } - } - } - return newstatus -} diff --git a/node/nodem/healthy/health_manager_test.go b/node/nodem/healthy/health_manager_test.go deleted file mode 100644 index 65d455726..000000000 --- a/node/nodem/healthy/health_manager_test.go +++ /dev/null @@ -1,144 +0,0 @@ -package healthy - -import ( - "fmt" - "testing" - - "github.com/goodrain/rainbond/node/nodem/client" - - "github.com/goodrain/rainbond/node/nodem/service" -) - -func TestProbeManager_Start(t *testing.T) { - m := CreateManager() - - var serviceList []*service.Service - - h := &service.Service{ - Name: "builder", - ServiceHealth: &service.Health{ - Name: "builder", - Model: "cmd", - Address: "lsx", - TimeInterval: 3, - }, - } - h2 := &service.Service{ - Name: "worker", - ServiceHealth: &service.Health{ - Name: "worker", - Model: "http", - Address: "127.0.0.1:6369/worker/health", - TimeInterval: 3, - }, - } - h3 := &service.Service{ - Name: "webcli", - ServiceHealth: &service.Health{ - Name: "webcli", - Model: "http", - Address: "127.0.0.1:7171/health", - TimeInterval: 3, - }, - } - serviceList = append(serviceList, h) - serviceList = append(serviceList, h2) - serviceList = append(serviceList, h3) - m.AddServices(serviceList) - watcher1 := m.WatchServiceHealthy("webcli") - watcher2 := m.WatchServiceHealthy("worker") - watcher3 := m.WatchServiceHealthy("builder") - - m.Start(&client.HostNode{}) - - for { - v := <-watcher1.Watch() - if v != nil { - - fmt.Println("----", v.Name, v.Status, v.Info, v.ErrorNumber, v.ErrorNumber) - } else { - t.Log("nil nil nil") - } - - v2 := <-watcher2.Watch() - fmt.Println("===", v2.Name, v2.Status, v2.Info, v2.ErrorNumber, v2.ErrorNumber) - v3 := <-watcher3.Watch() - fmt.Println("vvvv", v3.Name, v3.Status, v3.Info, v3.ErrorNumber, v3.ErrorNumber) - } - -} - -//func TestGetHttpHealth(t *testing.T) { -// m := CreateManager() -// serviceList := make([]*service.Service, 0, 10) -// -// h := &service.Service{ -// Name: "builder", -// ServiceHealth: &service.Health{ -// Name: "builder", -// Model: "tcp", -// Address: "127.0.0.1:3228", -// TimeInterval: 3, -// }, -// } -// h2 := &service.Service{ -// Name: "worker", -// ServiceHealth: &service.Health{ -// Name: "worker", -// Model: "http", -// Address: "127.0.0.1:6369/worker/health", -// TimeInterval: 3, -// }, -// } -// h3 := &service.Service{ -// Name: "webcli", -// ServiceHealth: &service.Health{ -// Name: "webcli", -// Model: "http", -// Address: "127.0.0.1:7171/health", -// TimeInterval: 3, -// -// }, -// } -// serviceList = append(serviceList, h) -// serviceList = append(serviceList, h2) -// serviceList = append(serviceList, h3) -// m.AddServices(serviceList) -// m.Start() -// -// for { -// -// time.Sleep(time.Second*1) -// info, ok := m.GetServiceHealthy("builder") -// if !ok { -// fmt.Println("cuowu") -// } else { -// fmt.Println(info.Name, info.Status, info.Info, info.ErrorNumber, info.ErrorTime) -// -// } -// -//} - -//func TestProbeManager_Start(t *testing.T) { -// ctx, cancel := context.WithCancel(context.Background()) -// serviceList := make([]*service.Service, 0, 10) -// -// h := &service.Service{ -// Name: "builder", -// ServiceHealth: &service.Health{ -// Name: "builder", -// Model: "http", -// Address: "127.0.0.1:3228", -// Path: "/v2/builder/health", -// }, -// } -// serviceList = append(serviceList, h) -// v := ProbeManager{ -// ctx: ctx, -// cancel: cancel, -// services: serviceList, -// } -// v.Start() -// -// -//} diff --git a/node/nodem/healthy/probe/http_probe.go b/node/nodem/healthy/probe/http_probe.go deleted file mode 100644 index b0b923d39..000000000 --- a/node/nodem/healthy/probe/http_probe.go +++ /dev/null @@ -1,106 +0,0 @@ -package probe - -import ( - "context" - "net" - "net/http" - "net/url" - "strings" - "time" - - "github.com/sirupsen/logrus" - - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/service" -) - -type HttpProbe struct { - Name string - Address string - ResultsChan chan *service.HealthStatus - Ctx context.Context - Cancel context.CancelFunc - TimeInterval int - HostNode *client.HostNode - MaxErrorsNum int -} - -//Check check -func (h *HttpProbe) Check() { - go h.HTTPCheck() -} - -//Stop stop -func (h *HttpProbe) Stop() { - h.Cancel() -} - -//HTTPCheck http check -func (h *HttpProbe) HTTPCheck() { - if h.TimeInterval == 0 { - h.TimeInterval = 5 - } - timer := time.NewTimer(time.Second * time.Duration(h.TimeInterval)) - defer timer.Stop() - for { - HealthMap := GetHTTPHealth(h.Address) - result := &service.HealthStatus{ - Name: h.Name, - Status: HealthMap["status"], - Info: HealthMap["info"], - } - h.ResultsChan <- result - timer.Reset(time.Second * time.Duration(h.TimeInterval)) - select { - case <-h.Ctx.Done(): - return - case <-timer.C: - } - } -} - -// Return true if the underlying error indicates a http.Client timeout. -// -// Use for errors returned from http.Client methods (Get, Post). -func isClientTimeout(err error) bool { - if uerr, ok := err.(*url.Error); ok { - if nerr, ok := uerr.Err.(net.Error); ok && nerr.Timeout() { - return true - } - } - return false -} - -//GetHTTPHealth get http health -func GetHTTPHealth(address string) map[string]string { - c := &http.Client{ - Timeout: 10 * time.Second, - } - if !strings.HasPrefix(address, "http") { - address = "http://" + address - } - addr, err := url.Parse(address) - if err != nil { - logrus.Errorf("%s is invalid %s", address, err.Error()) - return map[string]string{"status": service.Stat_healthy, "info": "check url is invalid"} - } - if addr.Scheme == "" { - addr.Scheme = "http" - } - resp, err := c.Get(addr.String()) - if err != nil { - if isClientTimeout(err) { - return map[string]string{"status": service.Stat_death, "info": "Request service timeout"} - } - logrus.Debugf("http probe request error %s", err.Error()) - return map[string]string{"status": service.Stat_unhealthy, "info": err.Error()} - } - if resp.Body != nil { - defer resp.Body.Close() - } - if resp.StatusCode >= 500 { - logrus.Debugf("http probe check address %s return code %d", address, resp.StatusCode) - return map[string]string{"status": service.Stat_unhealthy, "info": "Service unhealthy"} - } - return map[string]string{"status": service.Stat_healthy, "info": "service health"} -} diff --git a/node/nodem/healthy/probe/http_probe_test.go b/node/nodem/healthy/probe/http_probe_test.go deleted file mode 100644 index 636733454..000000000 --- a/node/nodem/healthy/probe/http_probe_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package probe - -import ( - "context" - "fmt" - "testing" - - "github.com/goodrain/rainbond/node/nodem/service" -) - -func TestHttpProbe_Check(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - resultChannel := make(chan *service.HealthStatus, 10) - httpProbe := HttpProbe{ - Name: "builder", - Address: "127.0.0.1:9090/health", - Ctx: ctx, - Cancel: cancel, - ResultsChan: resultChannel, - TimeInterval: 3, - } - go httpProbe.Check() - for { - result := <-resultChannel - fmt.Println(result.Name, result.Status, result.Info) - } -} diff --git a/node/nodem/healthy/probe/probe.go b/node/nodem/healthy/probe/probe.go deleted file mode 100644 index 6cf26bb65..000000000 --- a/node/nodem/healthy/probe/probe.go +++ /dev/null @@ -1,78 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package probe - -import ( - "context" - "fmt" - "strings" - - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/service" -) - -//Probe probe -type Probe interface { - Check() - Stop() -} - -//CreateProbe create probe -func CreateProbe(ctx context.Context, hostNode *client.HostNode, statusChan chan *service.HealthStatus, v *service.Service) (Probe, error) { - ctx, cancel := context.WithCancel(ctx) - model := strings.ToLower(strings.TrimSpace(v.ServiceHealth.Model)) - switch model { - case "http": - return &HttpProbe{ - Name: v.ServiceHealth.Name, - Address: v.ServiceHealth.Address, - Ctx: ctx, - Cancel: cancel, - ResultsChan: statusChan, - TimeInterval: v.ServiceHealth.TimeInterval, - HostNode: hostNode, - MaxErrorsNum: v.ServiceHealth.MaxErrorsNum, - }, nil - case "tcp": - return &TcpProbe{ - Name: v.ServiceHealth.Name, - Address: v.ServiceHealth.Address, - Ctx: ctx, - Cancel: cancel, - ResultsChan: statusChan, - TimeInterval: v.ServiceHealth.TimeInterval, - HostNode: hostNode, - MaxErrorsNum: v.ServiceHealth.MaxErrorsNum, - }, nil - case "cmd": - return &ShellProbe{ - Name: v.ServiceHealth.Name, - Address: v.ServiceHealth.Address, - Ctx: ctx, - Cancel: cancel, - ResultsChan: statusChan, - TimeInterval: v.ServiceHealth.TimeInterval, - HostNode: hostNode, - MaxErrorsNum: v.ServiceHealth.MaxErrorsNum, - }, nil - default: - cancel() - return nil, fmt.Errorf("service %s probe mode %s not support ", v.Name, model) - } -} diff --git a/node/nodem/healthy/probe/shell_probe.go b/node/nodem/healthy/probe/shell_probe.go deleted file mode 100644 index 60f2c1a52..000000000 --- a/node/nodem/healthy/probe/shell_probe.go +++ /dev/null @@ -1,69 +0,0 @@ -package probe - -import ( - "bytes" - "context" - "os/exec" - "strings" - "time" - - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/service" -) - -//ShellProbe - -type ShellProbe struct { - Name string - Address string - ResultsChan chan *service.HealthStatus - Ctx context.Context - Cancel context.CancelFunc - TimeInterval int - HostNode *client.HostNode - MaxErrorsNum int -} - -//Check - -func (h *ShellProbe) Check() { - go h.ShellCheck() -} - -//Stop - -func (h *ShellProbe) Stop() { - h.Cancel() -} - -//ShellCheck - -func (h *ShellProbe) ShellCheck() { - timer := time.NewTimer(time.Second * time.Duration(h.TimeInterval)) - defer timer.Stop() - for { - HealthMap := GetShellHealth(h.Address) - result := &service.HealthStatus{ - Name: h.Name, - Status: HealthMap["status"], - Info: HealthMap["info"], - } - h.ResultsChan <- result - timer.Reset(time.Second * time.Duration(h.TimeInterval)) - select { - case <-h.Ctx.Done(): - return - case <-timer.C: - } - } -} - -// GetShellHealth get shell health -func GetShellHealth(address string) map[string]string { - cmd := exec.Command("/bin/bash", "-c", address) - var stdout, stderr bytes.Buffer - cmd.Stdout = &stdout - cmd.Stderr = &stderr - err := cmd.Run() - if err != nil { - errStr := string(stderr.Bytes()) - return map[string]string{"status": service.Stat_death, "info": strings.TrimSpace(errStr)} - } - return map[string]string{"status": service.Stat_healthy, "info": "service healthy"} -} diff --git a/node/nodem/healthy/probe/tcp_probe.go b/node/nodem/healthy/probe/tcp_probe.go deleted file mode 100644 index 62c160c28..000000000 --- a/node/nodem/healthy/probe/tcp_probe.go +++ /dev/null @@ -1,57 +0,0 @@ -package probe - -import ( - "context" - "net" - "time" - - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/service" -) - -type TcpProbe struct { - Name string - Address string - ResultsChan chan *service.HealthStatus - Ctx context.Context - Cancel context.CancelFunc - TimeInterval int - HostNode *client.HostNode - MaxErrorsNum int -} - -func (h *TcpProbe) Check() { - go h.TcpCheck() -} -func (h *TcpProbe) Stop() { - h.Cancel() -} -func (h *TcpProbe) TcpCheck() { - timer := time.NewTimer(time.Second * time.Duration(h.TimeInterval)) - defer timer.Stop() - for { - HealthMap := GetTcpHealth(h.Address) - result := &service.HealthStatus{ - Name: h.Name, - Status: HealthMap["status"], - Info: HealthMap["info"], - } - h.ResultsChan <- result - timer.Reset(time.Second * time.Duration(h.TimeInterval)) - select { - case <-h.Ctx.Done(): - return - case <-timer.C: - } - } -} - -//GetTcpHealth get tcp health -func GetTcpHealth(address string) map[string]string { - conn, err := net.Dial("tcp", address) - if err != nil { - return map[string]string{"status": service.Stat_death, "info": "Tcp connection error"} - } - defer conn.Close() - return map[string]string{"status": service.Stat_healthy, "info": "service health"} -} diff --git a/node/nodem/info/info_linux.go b/node/nodem/info/info_linux.go deleted file mode 100644 index b9d96bfce..000000000 --- a/node/nodem/info/info_linux.go +++ /dev/null @@ -1,79 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// +build linux - -package info - -import ( - "bufio" - "io/ioutil" - "os" - "os/exec" - "runtime" - "strings" - "syscall" - - "github.com/goodrain/rainbond/node/nodem/client" -) - -//GetSystemInfo GetSystemInfo -func GetSystemInfo() (info client.NodeSystemInfo) { - info.Architecture = runtime.GOARCH - b, _ := ioutil.ReadFile("/etc/machine-id") - info.MachineID = string(b) - output, _ := exec.Command("uname", "-r").Output() - info.KernelVersion = string(output) - osInfo := readOS() - if name, ok := osInfo["NAME"]; ok { - info.OSImage = name - } - info.OperatingSystem = runtime.GOOS - info.MemorySize, _ = getMemory() - info.NumCPU = int64(runtime.NumCPU()) - return info -} - -func readOS() map[string]string { - f, err := os.Open("/etc/os-release") - if err != nil { - return nil - } - defer f.Close() - var info = make(map[string]string) - r := bufio.NewReader(f) - for { - line, _, err := r.ReadLine() - if err != nil { - return info - } - lines := strings.Split(string(line), "=") - if len(lines) >= 2 { - info[lines[0]] = lines[1] - } - } -} - -func getMemory() (total uint64, free uint64) { - sysInfo := new(syscall.Sysinfo_t) - err := syscall.Sysinfo(sysInfo) - if err == nil { - return uint64(sysInfo.Totalram) * uint64(sysInfo.Unit), sysInfo.Freeram * uint64(syscall.Getpagesize()) - } - return 0, 0 -} diff --git a/node/nodem/info/info_other.go b/node/nodem/info/info_other.go deleted file mode 100644 index b2aa3ae8b..000000000 --- a/node/nodem/info/info_other.go +++ /dev/null @@ -1,40 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// +build !linux - -package info - -import ( - "runtime" - - "github.com/goodrain/rainbond/node/nodem/client" -) - -//GetSystemInfo GetSystemInfo -func GetSystemInfo() (info client.NodeSystemInfo) { - info.Architecture = runtime.GOARCH - info.MachineID = "do not read machineID" - info.OSImage = runtime.GOOS - info.OperatingSystem = runtime.GOOS - return info -} - -func getMemory() (total uint32, free uint32) { - return 0, 0 -} diff --git a/node/nodem/info/info_test.go b/node/nodem/info/info_test.go deleted file mode 100644 index 74f98df41..000000000 --- a/node/nodem/info/info_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package info - -import "testing" - -func TestGetSysteminfo(t *testing.T) { - t.Log(GetSystemInfo()) -} diff --git a/node/nodem/logger/manage.go b/node/nodem/logger/manage.go index cb996a4dd..2238ff6c6 100644 --- a/node/nodem/logger/manage.go +++ b/node/nodem/logger/manage.go @@ -32,7 +32,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/events" "github.com/docker/docker/api/types/filters" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" ) //RFC3339NanoFixed time format diff --git a/node/nodem/logger/manage_test.go b/node/nodem/logger/manage_test.go index 5ac76cffc..d32bff85a 100644 --- a/node/nodem/logger/manage_test.go +++ b/node/nodem/logger/manage_test.go @@ -26,7 +26,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" ) func TestWatchConatainer(t *testing.T) { diff --git a/node/nodem/monitor/monitor_manager.go b/node/nodem/monitor/monitor_manager.go index 3fdf8dc56..b636a0458 100644 --- a/node/nodem/monitor/monitor_manager.go +++ b/node/nodem/monitor/monitor_manager.go @@ -23,12 +23,11 @@ import ( "net/http" "github.com/go-kit/kit/log" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/api" "github.com/goodrain/rainbond/node/monitormessage" "github.com/goodrain/rainbond/node/statsd" innerprometheus "github.com/goodrain/rainbond/node/statsd/prometheus" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/node_exporter/collector" @@ -55,7 +54,11 @@ func createNodeExporterRestry() (*prometheus.Registry, error) { filters := []string{"cpu", "diskstats", "filesystem", "ipvs", "loadavg", "meminfo", "netdev", "netclass", "netdev", "netstat", - "uname", "mountstats", "nfs"} + "uname", "mountstats", "nfs", "arp", + "btrfs", "bonding", "os", "xfs", "zfs", + "time", "thermal_zone", "stat", "softnet", "sockstat", + "schedstat", "pressure", + } // init kingpin parse kingpin.CommandLine.Parse([]string{"--collector.mountstats=true"}) nc, err := collector.NewNodeCollector(log.NewNopLogger(), filters...) @@ -77,13 +80,7 @@ func CreateManager(ctx context.Context, c *option.Conf) (Manager, error) { //statsd exporter statsdRegistry := innerprometheus.NewRegistry() exporter := statsd.CreateExporter(c.StatsdConfig, statsdRegistry) - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: c.EtcdEndpoints, - CaFile: c.EtcdCaFile, - CertFile: c.EtcdCertFile, - KeyFile: c.EtcdKeyFile, - } - meserver := monitormessage.CreateUDPServer(ctx, "0.0.0.0", 6666, etcdClientArgs) + meserver := monitormessage.CreateUDPServer(ctx, "0.0.0.0", 6666) nodeExporterRestry, err := createNodeExporterRestry() if err != nil { return nil, err diff --git a/node/nodem/node_manager.go b/node/nodem/node_manager.go index f29f65a76..6b38d4ebf 100644 --- a/node/nodem/node_manager.go +++ b/node/nodem/node_manager.go @@ -20,79 +20,38 @@ package nodem import ( "context" - "fmt" - "os" - "runtime" - "strings" - "time" "github.com/goodrain/rainbond/node/nodem/logger" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/api" - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/node/nodem/controller" - "github.com/goodrain/rainbond/node/nodem/gc" - "github.com/goodrain/rainbond/node/nodem/healthy" - "github.com/goodrain/rainbond/node/nodem/info" "github.com/goodrain/rainbond/node/nodem/monitor" - "github.com/goodrain/rainbond/node/nodem/service" - "github.com/goodrain/rainbond/util" - "github.com/sirupsen/logrus" ) var sandboxImage = "k8s.gcr.io/pause-amd64:latest" //NodeManager node manager type NodeManager struct { - currentNode *client.HostNode - ctx context.Context - cluster client.ClusterClient - monitor monitor.Manager - healthy healthy.Manager - controller controller.Manager - cfg *option.Conf - apim *api.Manager - clm *logger.ContainerLogManage - - imageGCManager gc.ImageGCManager + ctx context.Context + monitor monitor.Manager + cfg *option.Conf + apim *api.Manager + clm *logger.ContainerLogManage } //NewNodeManager new a node manager func NewNodeManager(ctx context.Context, conf *option.Conf) (*NodeManager, error) { - healthyManager := healthy.CreateManager() - cluster := client.NewClusterClient(conf) monitor, err := monitor.CreateManager(ctx, conf) if err != nil { return nil, err } clm := logger.CreatContainerLogManage(conf) - controller := controller.NewManagerService(conf, healthyManager, cluster) - if err != nil { - return nil, fmt.Errorf("Get host id error:%s", err.Error()) - } - - imageGCPolicy := gc.ImageGCPolicy{ - MinAge: conf.ImageMinimumGCAge, - ImageGCPeriod: conf.ImageGCPeriod, - HighThresholdPercent: int(conf.ImageGCHighThresholdPercent), - LowThresholdPercent: int(conf.ImageGCLowThresholdPercent), - } - imageGCManager, err := gc.NewImageGCManager(conf.DockerCli, imageGCPolicy, sandboxImage) - if err != nil { - return nil, fmt.Errorf("create new imageGCManager: %v", err) - } nodem := &NodeManager{ - cfg: conf, - ctx: ctx, - cluster: cluster, - monitor: monitor, - healthy: healthyManager, - controller: controller, - clm: clm, - currentNode: &client.HostNode{ID: conf.HostID}, - imageGCManager: imageGCManager, + cfg: conf, + ctx: ctx, + monitor: monitor, + clm: clm, } return nodem, nil } @@ -100,287 +59,30 @@ func NewNodeManager(ctx context.Context, conf *option.Conf) (*NodeManager, error //AddAPIManager AddApiManager func (n *NodeManager) AddAPIManager(apim *api.Manager) error { n.apim = apim - n.controller.SetAPIRoute(apim) return n.monitor.SetAPIRoute(apim) } -//InitStart init start is first start module. -//it would not depend etcd -func (n *NodeManager) InitStart() error { - if err := n.controller.Start(n.currentNode); err != nil { - return fmt.Errorf("start node controller error,%s", err.Error()) - } - return nil -} - //Start start func (n *NodeManager) Start(errchan chan error) error { - if n.cfg.EtcdCli == nil { - return fmt.Errorf("etcd client is nil") - } - if err := n.init(); err != nil { - return err - } - services, err := n.controller.GetAllService() - if err != nil { - return fmt.Errorf("get all services error,%s", err.Error()) - } - if err := n.healthy.AddServices(services); err != nil { - return fmt.Errorf("get all services error,%s", err.Error()) - } - if err := n.healthy.Start(n.currentNode); err != nil { - return fmt.Errorf("node healty start error,%s", err.Error()) - } - if err := n.controller.Online(); err != nil { - return err - } - if n.currentNode.Role.HasRule(client.ComputeNode) && n.cfg.EnableCollectLog { - logrus.Infof("this node is %s node and enable collect conatiner log", n.currentNode.Role) + if n.cfg.EnableCollectLog { if err := n.clm.Start(); err != nil { return err } - } else { - logrus.Infof("this node(%s) is not compute node or disable collect container log ,do not start container log manage", n.currentNode.Role) } - - if n.cfg.EnableImageGC { - if n.currentNode.Role.HasRule(client.ManageNode) && !n.currentNode.Role.HasRule(client.ComputeNode) { - n.imageGCManager.SetServiceImages(n.controller.ListServiceImages()) - go n.imageGCManager.Start() - } - } - go n.monitor.Start(errchan) - go n.heartbeat() return nil } //Stop Stop func (n *NodeManager) Stop() { - n.cluster.DownNode(n.currentNode) - if n.controller != nil { - n.controller.Stop() - } if n.monitor != nil { n.monitor.Stop() } - if n.healthy != nil { - n.healthy.Stop() - } - if n.clm != nil && n.currentNode.Role.HasRule(client.ComputeNode) && n.cfg.EnableCollectLog { + if n.clm != nil && n.cfg.EnableCollectLog { n.clm.Stop() } } -//CheckNodeHealthy check current node healthy. -//only healthy can controller other service start -func (n *NodeManager) CheckNodeHealthy() (bool, error) { - services, err := n.controller.GetAllService() - if err != nil { - return false, fmt.Errorf("get all services error,%s", err.Error()) - } - for _, v := range services { - result, ok := n.healthy.GetServiceHealthy(v.Name) - if ok { - if result.Status != service.Stat_healthy && result.Status != service.Stat_Unknow { - return false, fmt.Errorf(result.Info) - } - } else { - return false, fmt.Errorf("The data is not ready yet") - } - } - return true, nil -} - -func (n *NodeManager) heartbeat() { - util.Exec(n.ctx, func() error { - allServiceHealth := n.healthy.GetServiceHealth() - allHealth := true - for k, v := range allServiceHealth { - if ser := n.controller.GetService(k); ser != nil { - status := client.ConditionTrue - message := "" - reason := "" - if ser.ServiceHealth != nil { - maxNum := ser.ServiceHealth.MaxErrorsNum - if maxNum < 2 { - maxNum = 2 - } - if v.Status != service.Stat_healthy && v.Status != service.Stat_Unknow && v.ErrorNumber > maxNum { - allHealth = false - status = client.ConditionFalse - message = v.Info - reason = "NotHealth" - } - } - n.currentNode.GetAndUpdateCondition(client.NodeConditionType(ser.Name), status, reason, message) - if n.cfg.AutoUnschedulerUnHealthDuration == 0 { - continue - } - // disable from 5.2.0 2020 06 17 - // if v.ErrorDuration > n.cfg.AutoUnschedulerUnHealthDuration && n.cfg.AutoScheduler && n.currentNode.Role.HasRule(client.ComputeNode) { - // n.currentNode.NodeStatus.AdviceAction = []string{"unscheduler"} - // logrus.Warningf("node unhealth more than %s(service %s unhealth), will send unscheduler advice action to master", n.cfg.AutoUnschedulerUnHealthDuration.String(), ser.Name) - // } else { - // n.currentNode.NodeStatus.AdviceAction = []string{} - // } - - n.currentNode.NodeStatus.AdviceAction = []string{} - - } else { - logrus.Errorf("can not find service %s", k) - } - } - //remove old condition - var deleteCondition []client.NodeConditionType - for _, con := range n.currentNode.NodeStatus.Conditions { - if n.controller.GetService(string(con.Type)) == nil && !client.IsMasterCondition(con.Type) { - deleteCondition = append(deleteCondition, con.Type) - } - } - //node ready condition update - n.currentNode.UpdateReadyStatus() - - if allHealth && n.cfg.AutoScheduler { - n.currentNode.NodeStatus.AdviceAction = []string{"scheduler"} - } - n.currentNode.Status = "running" - n.currentNode.NodeStatus.Status = "running" - if err := n.cluster.UpdateStatus(n.currentNode, deleteCondition); err != nil { - logrus.Errorf("update node status error %s", err.Error()) - } - if n.currentNode.NodeStatus.Status != "running" { - logrus.Infof("Send node %s heartbeat to master:%s ", n.currentNode.ID, n.currentNode.NodeStatus.Status) - } - return nil - }, time.Second*time.Duration(n.cfg.TTL)) -} - -//init node init -func (n *NodeManager) init() error { - node, err := n.cluster.GetNode(n.currentNode.ID) - if err != nil { - if err == client.ErrorNotFound { - logrus.Warningf("do not found node %s from cluster", n.currentNode.ID) - if n.cfg.AutoRegistNode { - node, err = n.getCurrentNode(n.currentNode.ID) - if err != nil { - return err - } - if err := n.cluster.RegistNode(node); err != nil { - return fmt.Errorf("node regist failure %s", err.Error()) - } - logrus.Infof("Regist node %s hostnmae %s to cluster success", node.ID, node.HostName) - } else { - return fmt.Errorf("do not found node %s and AutoRegistNode parameter is false", n.currentNode.ID) - } - } else { - return fmt.Errorf("find node %s from cluster failure %s", n.currentNode.ID, err.Error()) - } - } - if n.cfg.HostIP != "" && node.InternalIP != n.cfg.HostIP { - node.InternalIP = n.cfg.HostIP - } - //update node mode - node.Mode = n.cfg.RunMode - //update node rule - node.Role = strings.Split(n.cfg.NodeRule, ",") - //update system info - if !node.Role.HasRule("compute") { - node.NodeStatus.NodeInfo = info.GetSystemInfo() - } - //set node labels - n.setNodeLabels(node) - *(n.currentNode) = *node - return nil -} - -func (n *NodeManager) setNodeLabels(node *client.HostNode) { - // node info comes from etcd - if node.Labels == nil { - node.Labels = n.getInitLabel(node) - return - } - if node.CustomLabels == nil { - node.CustomLabels = make(map[string]string) - } - var newLabels = map[string]string{} - //remove node rule labels - for k, v := range node.Labels { - if !strings.HasPrefix(k, "rainbond_node_rule_") { - newLabels[k] = v - } - } - for k, v := range n.getInitLabel(node) { - newLabels[k] = v - } - node.Labels = newLabels -} - -//getInitLabel update node role and return new lables -func (n *NodeManager) getInitLabel(node *client.HostNode) map[string]string { - labels := map[string]string{} - for _, rule := range node.Role { - labels["rainbond_node_rule_"+rule] = "true" - } - labels[client.LabelOS] = runtime.GOOS - hostname, _ := os.Hostname() - if node.HostName != hostname && hostname != "" { - node.HostName = hostname - } - labels["rainbond_node_hostname"] = node.HostName - labels["kubernetes.io/hostname"] = node.InternalIP - return labels -} - -//getCurrentNode get current node info -func (n *NodeManager) getCurrentNode(uid string) (*client.HostNode, error) { - if n.cfg.HostIP == "" { - ip, err := util.LocalIP() - if err != nil { - return nil, err - } - n.cfg.HostIP = ip.String() - } - node := CreateNode(uid, n.cfg.HostIP) - n.setNodeLabels(&node) - node.NodeStatus.NodeInfo = info.GetSystemInfo() - node.Mode = n.cfg.RunMode - node.NodeStatus.Status = "running" - return &node, nil -} - -//GetCurrentNode get current node -func (n *NodeManager) GetCurrentNode() *client.HostNode { - return n.currentNode -} - -//CreateNode new node -func CreateNode(nodeID, ip string) client.HostNode { - return client.HostNode{ - ID: nodeID, - InternalIP: ip, - ExternalIP: ip, - CreateTime: time.Now(), - NodeStatus: client.NodeStatus{}, - } -} - -//StartService start a define service -func (n *NodeManager) StartService(serviceName string) error { - return n.controller.StartService(serviceName) -} - -//StopService stop a define service -func (n *NodeManager) StopService(serviceName string) error { - return n.controller.StopService(serviceName) -} - -//UpdateConfig update service config -func (n *NodeManager) UpdateConfig() error { - return n.controller.ReLoadServices() -} - //GetMonitorManager get monitor manager func (n *NodeManager) GetMonitorManager() monitor.Manager { return n.monitor diff --git a/node/nodem/service/configs.go b/node/nodem/service/configs.go deleted file mode 100644 index 18ea93587..000000000 --- a/node/nodem/service/configs.go +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package service - -import ( - "fmt" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "github.com/goodrain/rainbond/util" - - "github.com/sirupsen/logrus" - yaml "gopkg.in/yaml.v2" -) - -//LoadServicesFromLocal load all service config from config file -func LoadServicesFromLocal(serviceListFile string) []*Service { - var serviceList []*Service - ok, err := util.IsDir(serviceListFile) - if err != nil { - logrus.Errorf("read service config file error,%s", err.Error()) - return nil - } - if !ok { - services, err := loadServicesFromFile(serviceListFile) - if err != nil { - logrus.Errorf("read service config file %s error,%s", serviceListFile, err.Error()) - return nil - } - return services.Services - } - filepath.Walk(serviceListFile, func(path string, info os.FileInfo, err error) error { - if strings.HasSuffix(path, "yaml") && !info.IsDir() { - services, err := loadServicesFromFile(path) - if err != nil { - logrus.Errorf("read service config file %s error,%s", path, err.Error()) - return nil - } - serviceList = append(serviceList, services.Services...) - } - return nil - }) - result := removeRepByLoop(serviceList) - logrus.Infof("load service config file success. load %d service", len(result)) - return result -} - -//LoadServicesWithFileFromLocal load service with file -func LoadServicesWithFileFromLocal(serviceListFile string) []*Services { - var serviceList []*Services - ok, err := util.IsDir(serviceListFile) - if err != nil { - logrus.Errorf("read service config file error,%s", err.Error()) - return nil - } - if !ok { - services, err := loadServicesFromFile(serviceListFile) - if err != nil { - logrus.Errorf("read service config file %s error,%s", serviceListFile, err.Error()) - return nil - } - serviceList = append(serviceList, services) - return serviceList - } - filepath.Walk(serviceListFile, func(path string, info os.FileInfo, err error) error { - if strings.HasSuffix(path, "yaml") && !info.IsDir() { - services, err := loadServicesFromFile(path) - if err != nil { - logrus.Errorf("read service config file %s error,%s", path, err.Error()) - return nil - } - serviceList = append(serviceList, services) - } - return nil - }) - return serviceList -} - -//WriteServicesWithFile write services config file -func WriteServicesWithFile(serviceLists ...*Services) error { - for _, serviceList := range serviceLists { - if serviceList.FromFile != "" { - write := func() error { - success := false - if ok, _ := util.FileExists(serviceList.FromFile); ok { - if err := os.Rename(serviceList.FromFile, serviceList.FromFile+".bak"); err == nil { - defer func() { - if success { - os.Remove(serviceList.FromFile + ".bak") - } else { - os.Rename(serviceList.FromFile+".bak", serviceList.FromFile) - } - }() - } - } - file, err := os.OpenFile(serviceList.FromFile, os.O_CREATE|os.O_RDWR, 0755) - if err != nil { - return err - } - defer file.Close() - filebody, err := yaml.Marshal(serviceList) - if err != nil { - return err - } - if _, err := file.Write(filebody); err != nil { - return err - } - success = true - return nil - } - if err := write(); err != nil { - return err - } - } - } - return nil -} - -func removeRepByLoop(source []*Service) (target []*Service) { - for i, s := range source { - flag := true - for _, t := range target { - if s.Name == t.Name { - flag = false - break - } - } - if flag { - target = append(target, source[i]) - } - } - return -} - -func loadServicesFromFile(serviceListFile string) (*Services, error) { - // load default-configs.yaml - content, err := ioutil.ReadFile(serviceListFile) - if err != nil { - err = fmt.Errorf("Failed to read service list file: %s", err.Error()) - return nil, err - } - var defaultConfigs Services - err = yaml.Unmarshal(content, &defaultConfigs) - if err != nil { - logrus.Error("Failed to parse default configs yaml file: ", err) - return nil, err - } - defaultConfigs.FromFile = serviceListFile - return &defaultConfigs, nil -} diff --git a/node/nodem/service/service.go b/node/nodem/service/service.go deleted file mode 100644 index cc549ab69..000000000 --- a/node/nodem/service/service.go +++ /dev/null @@ -1,101 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package service - -import ( - "time" - - "github.com/goodrain/rainbond/util" - - yaml "gopkg.in/yaml.v2" -) - -const ( - Stat_Unknow string = "unknow" //健康 - Stat_healthy string = "healthy" //健康 - Stat_unhealthy string = "unhealthy" //出现异常 - Stat_death string = "death" //请求不通 -) - -//Service Service -type Service struct { - Name string `yaml:"name"` - Endpoints []*Endpoint `yaml:"endpoints,omitempty"` - ServiceHealth *Health `yaml:"health"` - OnlyHealthCheck bool `yaml:"only_health_check"` - IsInitStart bool `yaml:"is_init_start"` - Disable bool `yaml:"disable"` - After []string `yaml:"after"` - Requires []string `yaml:"requires"` - Type string `yaml:"type,omitempty"` - PreStart string `yaml:"pre_start,omitempty"` - Start string `yaml:"start"` - Stop string `yaml:"stop,omitempty"` - RestartPolicy string `yaml:"restart_policy,omitempty"` - RestartSec string `yaml:"restart_sec,omitempty"` -} - -//Equal equal -func (s *Service) Equal(e *Service) bool { - sb, err := yaml.Marshal(s) - if err != nil { - return false - } - eb, err := yaml.Marshal(e) - if err != nil { - return false - } - if util.BytesSliceEqual(sb, eb) { - return true - } - return false -} - -//Services default config of all services -type Services struct { - Version string `yaml:"version"` - Services []*Service `yaml:"services"` - FromFile string `yaml:"-"` -} - -//Endpoint endpoint -type Endpoint struct { - Name string `yaml:"name"` - Protocol string `yaml:"protocol"` - Port string `yaml:"port"` -} - -//Health ServiceHealth -type Health struct { - Name string `yaml:"name"` - Model string `yaml:"model"` - Address string `yaml:"address"` - TimeInterval int `yaml:"time_interval"` - MaxErrorsNum int `yaml:"max_errors_num"` -} - -//HealthStatus health status -type HealthStatus struct { - Name string - Status string - ErrorNumber int - ErrorDuration time.Duration - StartErrorTime time.Time - Info string -} diff --git a/node/statsd/exporter/exporter.go b/node/statsd/exporter/exporter.go index 8ee66fe83..e70056019 100644 --- a/node/statsd/exporter/exporter.go +++ b/node/statsd/exporter/exporter.go @@ -33,7 +33,6 @@ import ( "unicode/utf8" "github.com/goodrain/rainbond/node/statsd/prometheus" - "github.com/prometheus/common/log" "github.com/prometheus/common/model" "github.com/sirupsen/logrus" ) @@ -256,7 +255,7 @@ func (b *Exporter) Listen(e <-chan Events) { for { events, ok := <-e if !ok { - log.Debug("Channel is closed. Break out of Exporter.Listener.") + logrus.Debug("Channel is closed. Break out of Exporter.Listener.") return } for _, event := range events { @@ -289,7 +288,7 @@ func (b *Exporter) Listen(e <-chan Events) { // We don't accept negative values for counters. Incrementing the counter with a negative number // will cause the exporter to panic. Instead we will warn and continue to the next event. if event.Value() < 0.0 { - log.Debugf("Counter %q is: '%f' (counter must be non-negative value)", metricName, event.Value()) + logrus.Debugf("Counter %q is: '%f' (counter must be non-negative value)", metricName, event.Value()) eventStats.WithLabelValues("illegal_negative_counter").Inc() continue } @@ -304,7 +303,7 @@ func (b *Exporter) Listen(e <-chan Events) { counter.SetTimestamp(timestamp) eventStats.WithLabelValues("counter").Inc() } else { - log.Debugf(regErrF, metricName, err) + logrus.Debugf(regErrF, metricName, err) conflictingEventStats.WithLabelValues("counter").Inc() } @@ -325,7 +324,7 @@ func (b *Exporter) Listen(e <-chan Events) { gauge.SetTimestamp(timestamp) eventStats.WithLabelValues("gauge").Inc() } else { - log.Debugf(regErrF, metricName, err) + logrus.Debugf(regErrF, metricName, err) conflictingEventStats.WithLabelValues("gauge").Inc() } @@ -351,7 +350,7 @@ func (b *Exporter) Listen(e <-chan Events) { histogram.SetTimestamp(timestamp) eventStats.WithLabelValues("timer").Inc() } else { - log.Debugf(regErrF, metricName, err) + logrus.Debugf(regErrF, metricName, err) conflictingEventStats.WithLabelValues("timer").Inc() } @@ -366,7 +365,7 @@ func (b *Exporter) Listen(e <-chan Events) { summary.SetTimestamp(timestamp) eventStats.WithLabelValues("timer").Inc() } else { - log.Debugf(regErrF, metricName, err) + logrus.Debugf(regErrF, metricName, err) conflictingEventStats.WithLabelValues("timer").Inc() } @@ -375,7 +374,7 @@ func (b *Exporter) Listen(e <-chan Events) { } default: - log.Debugln("Unsupported event type") + logrus.Debugln("Unsupported event type") eventStats.WithLabelValues("illegal").Inc() } } @@ -481,7 +480,7 @@ func parseDogStatsDTagsToLabels(component string) map[string]string { if len(kv) < 2 || len(kv[1]) == 0 { tagErrors.Inc() - log.Debugf("Malformed or empty DogStatsD tag %s in component %s", t, component) + logrus.Debugf("Malformed or empty DogStatsD tag %s in component %s", t, component) continue } @@ -499,7 +498,7 @@ func lineToEvents(line string) Events { elements := strings.SplitN(line, ":", 2) if len(elements) < 2 || len(elements[0]) == 0 || !utf8.ValidString(line) { sampleErrors.WithLabelValues("malformed_line").Inc() - log.Debugln("Bad line from StatsD:", line) + logrus.Debugln("Bad line from StatsD:", line) return events } metric := elements[0] @@ -517,7 +516,7 @@ samples: samplingFactor := 1.0 if len(components) < 2 || len(components) > 4 { sampleErrors.WithLabelValues("malformed_component").Inc() - log.Debugln("Bad component on line:", line) + logrus.Debugln("Bad component on line:", line) continue } valueStr, statType := components[0], components[1] @@ -529,7 +528,7 @@ samples: value, err := strconv.ParseFloat(valueStr, 64) if err != nil { - log.Debugf("Bad value %s on line: %s", valueStr, line) + logrus.Debugf("Bad value %s on line: %s", valueStr, line) sampleErrors.WithLabelValues("malformed_value").Inc() continue } @@ -539,7 +538,7 @@ samples: if len(components) >= 3 { for _, component := range components[2:] { if len(component) == 0 { - log.Debugln("Empty component on line: ", line) + logrus.Debugln("Empty component on line: ", line) sampleErrors.WithLabelValues("malformed_component").Inc() continue samples } @@ -549,13 +548,13 @@ samples: switch component[0] { case '@': if statType != "c" && statType != "ms" { - log.Debugln("Illegal sampling factor for non-counter metric on line", line) + logrus.Debugln("Illegal sampling factor for non-counter metric on line", line) sampleErrors.WithLabelValues("illegal_sample_factor").Inc() continue } samplingFactor, err = strconv.ParseFloat(component[1:], 64) if err != nil { - log.Debugf("Invalid sampling factor %s on line %s", component[1:], line) + logrus.Debugf("Invalid sampling factor %s on line %s", component[1:], line) sampleErrors.WithLabelValues("invalid_sample_factor").Inc() } if samplingFactor == 0 { @@ -570,7 +569,7 @@ samples: case '#': labels = parseDogStatsDTagsToLabels(component) default: - log.Debugf("Invalid sampling factor or tag section %s on line %s", components[2], line) + logrus.Debugf("Invalid sampling factor or tag section %s on line %s", components[2], line) sampleErrors.WithLabelValues("invalid_sample_factor").Inc() continue } @@ -580,7 +579,7 @@ samples: for i := 0; i < multiplyEvents; i++ { event, err := buildEvent(statType, metric, value, relative, labels) if err != nil { - log.Debugf("Error building event on line %s: %s", line, err) + logrus.Debugf("Error building event on line %s: %s", line, err) sampleErrors.WithLabelValues("illegal_event").Inc() continue } @@ -599,7 +598,7 @@ func (l *StatsDUDPListener) Listen(e chan<- Events) { for { n, _, err := l.Conn.ReadFromUDP(buf) if err != nil { - log.Fatal(err) + logrus.Fatal(err) } l.handlePacket(buf[0:n], e) } @@ -625,7 +624,7 @@ func (l *StatsDTCPListener) Listen(e chan<- Events) { for { c, err := l.Conn.AcceptTCP() if err != nil { - log.Fatalf("AcceptTCP failed: %v", err) + logrus.Fatalf("AcceptTCP failed: %v", err) } go l.handleConn(c, e) } @@ -642,13 +641,13 @@ func (l *StatsDTCPListener) handleConn(c *net.TCPConn, e chan<- Events) { if err != nil { if err != io.EOF { tcpErrors.Inc() - log.Debugf("Read %s failed: %v", c.RemoteAddr(), err) + logrus.Debugf("Read %s failed: %v", c.RemoteAddr(), err) } break } if isPrefix { tcpLineTooLong.Inc() - log.Debugf("Read %s failed: line too long", c.RemoteAddr()) + logrus.Debugf("Read %s failed: line too long", c.RemoteAddr()) break } linesReceived.Inc() diff --git a/node/statsd/statsd_export.go b/node/statsd/statsd_export.go index 5ff901245..0b96804da 100644 --- a/node/statsd/statsd_export.go +++ b/node/statsd/statsd_export.go @@ -28,7 +28,7 @@ import ( "github.com/prometheus/common/version" "github.com/sirupsen/logrus" - "github.com/goodrain/rainbond/cmd/node/option" + "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/statsd/exporter" ) diff --git a/node/test/kbue_cache_test.go b/node/test/kbue_cache_test.go deleted file mode 100644 index dc3802bf5..000000000 --- a/node/test/kbue_cache_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package test - -import ( - "testing" - "time" - - "github.com/goodrain/rainbond/cmd/node/option" - "github.com/goodrain/rainbond/node/kubecache" -) - -func TestGetCluster(t *testing.T) { - c := &option.Conf{ - K8SConfPath: "/opt/rainbond/etc/kubernetes/kubecfg/admin.kubeconfig", - MinResyncPeriod: 10 * time.Second, - } - kubecli, err := kubecache.NewKubeClient(c, nil) - if err != nil { - t.Fatalf("error creating kube client: %v", err) - } - defer kubecli.Stop() - - nodes, err := kubecli.GetNodes() - if err != nil { - t.Errorf("error getting nodes: %v", err) - } - t.Log(nodes) - t.Error("") -} diff --git a/release.sh b/release.sh index 27d2459b6..4425b43d1 100755 --- a/release.sh +++ b/release.sh @@ -37,7 +37,7 @@ buildTime=$(date +%F-%H) git_commit=$(git log -n 1 --pretty --format=%h) release_desc=${VERSION}-${git_commit}-${buildTime} -build_items=(api chaos gateway monitor mq webcli worker eventlog init-probe mesh-data-panel grctl node resource-proxy) +build_items=(api chaos gateway monitor mq webcli worker eventlog init-probe mesh-data-panel grctl node-proxy resource-proxy) build::binary() { echo "---> build binary:$1" diff --git a/test/shell/echo1.sh b/test/shell/echo1.sh deleted file mode 100644 index ad8c41b82..000000000 --- a/test/shell/echo1.sh +++ /dev/null @@ -1 +0,0 @@ -echo "{\"inner\":{\"HOME_PATH\":\"/home\"},\"type\":\"check\",\"exec_status\":\"Success\",\"status\":[{\"next_tasks\":[\"echo2\"]}]}" >&2 \ No newline at end of file diff --git a/test/shell/echo2.sh b/test/shell/echo2.sh deleted file mode 100644 index c439628fa..000000000 --- a/test/shell/echo2.sh +++ /dev/null @@ -1 +0,0 @@ - echo "{\"inner\":{\"HOME_PATH\":\"/home\"},\"type\":\"install\",\"exec_status\":\"Success\",\"status\":[{\"condition_type\":\"INIT_ECHO\",\"condition_status\":\"True\"}]}" >&2 diff --git a/util/k8s/k8s.go b/util/k8s/k8s.go index ecbb252ad..04e09be2a 100644 --- a/util/k8s/k8s.go +++ b/util/k8s/k8s.go @@ -2,10 +2,11 @@ package k8s import ( "encoding/json" - networkingv1 "k8s.io/api/networking/v1" "net" "os" + networkingv1 "k8s.io/api/networking/v1" + "github.com/sirupsen/logrus" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/util/prober/manager.go b/util/prober/manager.go deleted file mode 100644 index ff339838d..000000000 --- a/util/prober/manager.go +++ /dev/null @@ -1,429 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package prober - -import ( - "context" - "sync" - "time" - - "github.com/goodrain/rainbond/util" - probe "github.com/goodrain/rainbond/util/prober/probes" - v1 "github.com/goodrain/rainbond/util/prober/types/v1" - "github.com/sirupsen/logrus" -) - -//Prober Prober -type Prober interface { - GetServiceHealthy(serviceName string) (*v1.HealthStatus, bool) - WatchServiceHealthy(serviceName string) Watcher - CloseWatch(serviceName string, id string) error - Start() - AddServices(in []*v1.Service) - CheckIfExist(in *v1.Service) bool - SetServices([]*v1.Service) - GetServices() []*v1.Service - GetServiceHealth() map[string]*v1.HealthStatus - SetAndUpdateServices([]*v1.Service) error - AddAndUpdateServices([]*v1.Service) error - UpdateServiceProbe(service *v1.Service) - UpdateServicesProbe(services []*v1.Service) - Stop() error - DisableWatcher(serviceName, watcherID string) - EnableWatcher(serviceName, watcherID string) - GetProbe(name string) probe.Probe - StopProbes(names []string) -} - -// NewProber creates a new prober. -func NewProber(ctx context.Context, cancel context.CancelFunc) Prober { - statusChan := make(chan *v1.HealthStatus, 100) - status := make(map[string]*v1.HealthStatus) - watches := make(map[string]map[string]*watcher) - m := &probeManager{ - ctx: ctx, - cancel: cancel, - statusChan: statusChan, - status: status, - watches: watches, - serviceProbe: make(map[string]probe.Probe), - services: []*v1.Service{}, - } - return m -} - -//Watcher watcher -type Watcher interface { - GetID() string - GetServiceName() string - Watch() <-chan *v1.HealthStatus - Close() error -} - -type probeManager struct { - services []*v1.Service - serviceProbe map[string]probe.Probe - status map[string]*v1.HealthStatus - ctx context.Context - cancel context.CancelFunc - watches map[string]map[string]*watcher - statusChan chan *v1.HealthStatus - lock sync.Mutex -} - -type watcher struct { - manager Prober - statusChan chan *v1.HealthStatus - id string - serviceName string - enable bool -} - -func (p *probeManager) Start() { - go p.handleStatus() - p.updateAllServicesProbe() -} - -func (p *probeManager) Stop() error { - p.cancel() - return nil -} - -func (p *probeManager) GetServiceHealthy(serviceName string) (*v1.HealthStatus, bool) { - v, ok := p.status[serviceName] - return v, ok -} - -func (p *probeManager) WatchServiceHealthy(serviceName string) Watcher { - logrus.Debugf("service name: %s;watch service healthy...", serviceName) - healthCh := make(chan *v1.HealthStatus, 10) - w := &watcher{ - manager: p, - statusChan: healthCh, - id: util.NewUUID(), - serviceName: serviceName, - } - p.lock.Lock() - defer p.lock.Unlock() - if s, ok := p.watches[serviceName]; ok { - s[w.id] = w - } else { - p.watches[serviceName] = map[string]*watcher{ - w.id: w, - } - } - return w -} - -func (p *probeManager) CloseWatch(serviceName string, id string) error { - p.lock.Lock() - defer p.lock.Unlock() - channel := p.watches[serviceName][id].statusChan - close(channel) - delete(p.watches[serviceName], id) - return nil -} - -func (p *probeManager) handleStatus() { - logrus.Debugf("start handling status...") - for { - select { - case status := <-p.statusChan: - p.updateServiceStatus(status) - p.lock.Lock() - if watcherMap, ok := p.watches[status.Name]; ok { - for _, watcher := range watcherMap { - if watcher.enable { - watcher.statusChan <- status - } - } - } - p.lock.Unlock() - case <-p.ctx.Done(): - return - } - } -} - -func (p *probeManager) updateServiceStatus(status *v1.HealthStatus) { - logrus.Debugf("who: %s, status; %s, info: %s", status.Name, status.Status, status.Info) - p.lock.Lock() - defer p.lock.Unlock() - exist, ok := p.status[status.Name] - if !ok { - p.status[status.Name] = status - return - } - if exist.LastStatus != status.Status { - status.StatusChange = true - } else { - status.StatusChange = false - } - status.LastStatus = status.Status - if status.Status != v1.StatHealthy { - number := exist.ErrorNumber + 1 - status.ErrorNumber = number - if exist.StartErrorTime.IsZero() { - status.StartErrorTime = time.Now() - } else { - status.StartErrorTime = exist.StartErrorTime - } - status.ErrorDuration = time.Now().Sub(exist.StartErrorTime) - p.status[status.Name] = status - } else { - status.ErrorNumber = 0 - status.ErrorDuration = 0 - var zero time.Time - status.StartErrorTime = zero - p.status[status.Name] = status - } -} - -func (p *probeManager) SetServices(in []*v1.Service) { - p.services = in -} - -func (p *probeManager) GetServices() []*v1.Service { - return p.services -} - -func (p *probeManager) SetAndUpdateServices(inner []*v1.Service) error { - p.services = inner - p.updateAllServicesProbe() - return nil -} - -// AddAndUpdateServices adds services, then updates all services. -func (p *probeManager) AddAndUpdateServices(in []*v1.Service) error { - for _, i := range in { - exist := false - for index, svc := range p.services { - if svc.Name == i.Name { - (p.services)[index] = i - exist = true - } - } - if !exist { - p.services = append(p.services, i) - } - } - p.services = append(p.services, in...) - p.updateAllServicesProbe() - return nil -} - -// AddServices adds services. -func (p *probeManager) AddServices(in []*v1.Service) { - for _, i := range in { - exist := false - for index, svc := range p.services { - if svc.Name == i.Name { - (p.services)[index] = i - exist = true - } - } - if !exist { - p.services = append(p.services, i) - } - } - p.services = append(p.services, in...) -} - -// CheckAndAddService checks if the input service exists, if it does not exist, add it. -func (p *probeManager) CheckIfExist(in *v1.Service) bool { - exist := false - for _, svc := range p.services { - if svc.Name == in.Name { - exist = true - } - } - return exist -} - -func (p *probeManager) isNeedUpdate(new *v1.Service) bool { - var old *v1.Service - for _, svc := range p.services { - if svc.Name == new.Name { - old = svc - } - } - if old == nil { - // not found old one - return true - } - return !new.Equal(old) -} - -func (p *probeManager) GetServiceHealth() map[string]*v1.HealthStatus { - return p.status -} - -func (p *probeManager) EnableWatcher(serviceName, watcherID string) { - logrus.Info("Enable check healthy status of service: ", serviceName) - p.lock.Lock() - defer p.lock.Unlock() - if s, ok := p.watches[serviceName]; ok { - if w, ok := s[watcherID]; ok { - w.enable = true - } - } else { - logrus.Error("Can not enable the watcher: Not found service: ", serviceName) - } -} - -func (p *probeManager) DisableWatcher(serviceName, watcherID string) { - logrus.Info("Disable check healthy status of service: ", serviceName) - p.lock.Lock() - defer p.lock.Unlock() - if s, ok := p.watches[serviceName]; ok { - if w, ok := s[watcherID]; ok { - w.enable = false - } - } else { - logrus.Error("Can not disable the watcher: Not found service: ", serviceName) - } -} - -func (w *watcher) GetServiceName() string { - return w.serviceName -} - -func (w *watcher) GetID() string { - return w.id -} - -func (w *watcher) Watch() <-chan *v1.HealthStatus { - return w.statusChan -} - -func (w *watcher) Close() error { - return w.manager.CloseWatch(w.serviceName, w.id) -} - -func (p *probeManager) updateAllServicesProbe() { - if p.services == nil || len(p.services) == 0 { - return - } - for _, pro := range p.serviceProbe { - pro.Stop() - } - p.serviceProbe = make(map[string]probe.Probe, len(p.services)) - for _, v := range p.services { - if v.ServiceHealth == nil { - continue - } - if v.Disable { - continue - } - serviceProbe := probe.CreateProbe(p.ctx, p.statusChan, v) - if serviceProbe != nil { - p.serviceProbe[v.Name] = serviceProbe - serviceProbe.Check() - } - } -} - -// UpdateServiceProbe updates and runs one service probe. -func (p *probeManager) UpdateServiceProbe(service *v1.Service) { - if service.ServiceHealth == nil || service.Disable || !p.isNeedUpdate(service) { - return - } - logrus.Debugf("Probe: %s; update probe.", service.Name) - // stop old probe - old := p.serviceProbe[service.Name] - if old != nil { - old.Stop() - } - // create new probe - serviceProbe := probe.CreateProbe(p.ctx, p.statusChan, service) - if serviceProbe != nil { - p.serviceProbe[service.Name] = serviceProbe - serviceProbe.Check() - } -} - -// UpdateServicesProbe updates and runs services probe. -func (p *probeManager) UpdateServicesProbe(services []*v1.Service) { - if services == nil || len(services) == 0 { - return - } - oldSvcs := p.ListServicesBySid(services[0].Sid) - for _, v := range services { - delete(oldSvcs, v.Name) - if v.ServiceHealth == nil || !p.isNeedUpdate(v) { - continue - } - if v.Disable { - p.StopProbes([]string{v.Name}) - continue - } - logrus.Debugf("Probe: %s; update probe.", v.Name) - // stop old probe - old := p.serviceProbe[v.Name] - if old != nil { - old.Stop() - } - if !p.CheckIfExist(v) { - p.services = append(p.services, v) - } - // create new probe - serviceProbe := probe.CreateProbe(p.ctx, p.statusChan, v) - if serviceProbe != nil { - p.serviceProbe[v.Name] = serviceProbe - serviceProbe.Check() - } - } - for _, svc := range oldSvcs { - p.StopProbes([]string{svc.Name}) - } - logrus.Debugf("current have probe of third apps number is %d", len(p.serviceProbe)) -} - -// ListServicesBySid lists services corresponding to sid. -func (p *probeManager) ListServicesBySid(sid string) map[string]*v1.Service { - res := make(map[string]*v1.Service) - for _, svc := range p.services { - if svc.Sid == sid { - res[svc.Name] = svc - } - } - return res -} - -// GetProbe returns a probe associated with name. -func (p *probeManager) GetProbe(name string) probe.Probe { - return p.serviceProbe[name] -} - -func (p *probeManager) StopProbes(names []string) { - for _, name := range names { - probe := p.serviceProbe[name] - if probe == nil { - continue - } - probe.Stop() - delete(p.serviceProbe, name) - for idx, svc := range p.services { - if svc.Name == name { - p.services = append(p.services[:idx], p.services[idx+1:]...) - } - } - logrus.Debugf("Name: %s; Probe stopped", name) - } -} diff --git a/util/prober/manager_test.go b/util/prober/manager_test.go deleted file mode 100644 index a566c47c4..000000000 --- a/util/prober/manager_test.go +++ /dev/null @@ -1,58 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package prober - -import ( - "context" - "fmt" - "github.com/goodrain/rainbond/util/prober/types/v1" - "testing" -) - -func TestProbeManager_Start(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - m := NewProber(ctx, cancel) - - serviceList := make([]*v1.Service, 0, 10) - - h := &v1.Service{ - Name: "etcd", - ServiceHealth: &v1.Health{ - Name: "etcd", - Model: "tcp", - Address: "192.168.1.107:23790", - TimeInterval: 3, - }, - } - serviceList = append(serviceList, h) - m.SetServices(serviceList) - watcher := m.WatchServiceHealthy("etcd") - m.EnableWatcher(watcher.GetServiceName(), watcher.GetID()) - - m.Start() - - for { - v := <-watcher.Watch() - if v != nil { - fmt.Println("----", v.Name, v.Status, v.Info, v.ErrorNumber, v.ErrorNumber) - } else { - t.Log("nil nil nil") - } - } -} diff --git a/util/prober/probes/http.go b/util/prober/probes/http.go deleted file mode 100644 index 3ed919a4a..000000000 --- a/util/prober/probes/http.go +++ /dev/null @@ -1,133 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package probe - -import ( - "context" - "crypto/tls" - "net" - "net/http" - "net/url" - "strings" - "time" - - "github.com/goodrain/rainbond/node/nodem/service" - v1 "github.com/goodrain/rainbond/util/prober/types/v1" - "github.com/sirupsen/logrus" -) - -// HTTPProbe probes through the http protocol -type HTTPProbe struct { - Name string - Address string - ResultsChan chan *v1.HealthStatus - Ctx context.Context - Cancel context.CancelFunc - TimeInterval int - MaxErrorsNum int - TimeoutSecond int -} - -//Check starts http probe. -func (h *HTTPProbe) Check() { - go h.HTTPCheck() -} - -//Stop stops http probe. -func (h *HTTPProbe) Stop() { - h.Cancel() -} - -//HTTPCheck http check -func (h *HTTPProbe) HTTPCheck() { - if h.TimeInterval == 0 { - h.TimeInterval = 5 - } - timer := time.NewTimer(time.Second * time.Duration(h.TimeInterval)) - defer timer.Stop() - for { - HealthMap := h.GetHTTPHealth() - result := &v1.HealthStatus{ - Name: h.Name, - Status: HealthMap["status"], - Info: HealthMap["info"], - } - h.ResultsChan <- result - timer.Reset(time.Second * time.Duration(h.TimeInterval)) - select { - case <-h.Ctx.Done(): - return - case <-timer.C: - } - } -} - -// Return true if the underlying error indicates a http.Client timeout. -// -// Use for errors returned from http.Client methods (Get, Post). -func isClientTimeout(err error) bool { - if uerr, ok := err.(*url.Error); ok { - if nerr, ok := uerr.Err.(net.Error); ok && nerr.Timeout() { - return true - } - } - return false -} - -//GetHTTPHealth get http health -func (h *HTTPProbe) GetHTTPHealth() map[string]string { - address := h.Address - c := &http.Client{ - Timeout: time.Duration(h.TimeoutSecond) * time.Second, - } - if strings.HasPrefix(address, "https://") { - c.Transport = &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, - } - } - if !strings.HasPrefix(address, "http://") && !strings.HasPrefix(address, "https://") { - logrus.Warnf("address %s do not has scheme, auto add http scheme", address) - address = "http://" + address - } - addr, err := url.Parse(address) - if err != nil { - logrus.Errorf("%s is invalid %s", address, err.Error()) - return map[string]string{"status": service.Stat_healthy, "info": "check url is invalid"} - } - if addr.Scheme == "" { - addr.Scheme = "http" - } - logrus.Debugf("http probe check address; %s", address) - resp, err := c.Get(addr.String()) - if resp != nil && resp.Body != nil { - defer resp.Body.Close() - } - if err != nil { - if isClientTimeout(err) { - return map[string]string{"status": service.Stat_death, "info": "Request service timeout"} - } - logrus.Debugf("http probe request error %s", err.Error()) - return map[string]string{"status": service.Stat_unhealthy, "info": err.Error()} - } - if resp.StatusCode >= 400 { - logrus.Debugf("http probe check address %s return code %d", address, resp.StatusCode) - return map[string]string{"status": service.Stat_unhealthy, "info": "Service unhealthy"} - } - return map[string]string{"status": service.Stat_healthy, "info": "service health"} -} diff --git a/util/prober/probes/probe.go b/util/prober/probes/probe.go deleted file mode 100644 index d72d04eeb..000000000 --- a/util/prober/probes/probe.go +++ /dev/null @@ -1,72 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package probe - -import ( - "context" - - v1 "github.com/goodrain/rainbond/util/prober/types/v1" -) - -//Probe probe -type Probe interface { - Check() - Stop() -} - -//CreateProbe create probe -func CreateProbe(ctx context.Context, statusChan chan *v1.HealthStatus, v *v1.Service) Probe { - timeoutSecond := v.ServiceHealth.MaxTimeoutSecond - if timeoutSecond <= 2 { - timeoutSecond = 5 - } - interval := v.ServiceHealth.TimeInterval - if interval <= 2 { - interval = 5 - } - ctx, cancel := context.WithCancel(ctx) - if v.ServiceHealth.Model == "tcp" { - t := &TCPProbe{ - Name: v.ServiceHealth.Name, - Address: v.ServiceHealth.Address, - Ctx: ctx, - Cancel: cancel, - ResultsChan: statusChan, - TimeInterval: interval, - MaxErrorsNum: v.ServiceHealth.MaxErrorsNum, - TimeoutSecond: timeoutSecond, - } - return t - } - if v.ServiceHealth.Model == "http" { - t := &HTTPProbe{ - Name: v.ServiceHealth.Name, - Address: v.ServiceHealth.Address, - Ctx: ctx, - Cancel: cancel, - ResultsChan: statusChan, - TimeInterval: v.ServiceHealth.TimeInterval, - MaxErrorsNum: v.ServiceHealth.MaxErrorsNum, - TimeoutSecond: v.ServiceHealth.MaxTimeoutSecond, - } - return t - } - cancel() - return nil -} diff --git a/util/prober/probes/tcp.go b/util/prober/probes/tcp.go deleted file mode 100644 index 0ad68f60b..000000000 --- a/util/prober/probes/tcp.go +++ /dev/null @@ -1,70 +0,0 @@ -package probe - -import ( - "context" - "fmt" - "net" - "time" - - v1 "github.com/goodrain/rainbond/util/prober/types/v1" - "github.com/sirupsen/logrus" -) - -// TCPProbe probes through the tcp protocol -type TCPProbe struct { - Name string - Address string - ResultsChan chan *v1.HealthStatus - Ctx context.Context - Cancel context.CancelFunc - TimeoutSecond int - TimeInterval int - MaxErrorsNum int -} - -// Check starts tcp probe. -func (h *TCPProbe) Check() { - go h.TCPCheck() -} - -// Stop stops tcp probe. -func (h *TCPProbe) Stop() { - h.Cancel() -} - -// TCPCheck - -func (h *TCPProbe) TCPCheck() { - logrus.Debugf("TCP check; Name: %s; Address: %s Interval %d", h.Name, h.Address, h.TimeInterval) - timer := time.NewTimer(time.Second * time.Duration(h.TimeInterval)) - defer timer.Stop() - for { - HealthMap := h.GetTCPHealth() - result := &v1.HealthStatus{ - Name: h.Name, - Status: HealthMap["status"], - Info: HealthMap["info"], - } - h.ResultsChan <- result - timer.Reset(time.Second * time.Duration(h.TimeInterval)) - select { - case <-h.Ctx.Done(): - return - case <-timer.C: - } - } -} - -//GetTCPHealth get tcp health -func (h *TCPProbe) GetTCPHealth() map[string]string { - address := h.Address - conn, err := net.DialTimeout("tcp", address, time.Duration(h.TimeoutSecond)*time.Second) - if conn != nil { - defer conn.Close() - } - if err != nil { - logrus.Debugf("probe health check, %s connection failure", address) - return map[string]string{"status": v1.StatDeath, - "info": fmt.Sprintf("Address: %s; Tcp connection error", address)} - } - return map[string]string{"status": v1.StatHealthy, "info": "service health"} -} diff --git a/util/prober/types/v1/types.go b/util/prober/types/v1/types.go deleted file mode 100644 index 12a05a05d..000000000 --- a/util/prober/types/v1/types.go +++ /dev/null @@ -1,111 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package v1 - -import "time" - -const ( - // StatHealthy - - StatHealthy string = "healthy" - // StatUnhealthy - - StatUnhealthy string = "unhealthy" - // StatDeath - - StatDeath string = "death" -) - -// Service Service -type Service struct { - Sid string `json:"service_id"` - Name string `json:"name"` - ServiceHealth *Health `json:"health"` - Disable bool `json:"disable"` -} - -// Equal check if the left service(l) is equal to the right service(r) -func (l *Service) Equal(r *Service) bool { - if l == r { - return true - } - if l.Sid != r.Sid { - return false - } - if l.Name != r.Name { - return false - } - if l.Disable != r.Disable { - return false - } - if !l.ServiceHealth.Equal(r.ServiceHealth) { - return false - } - return true -} - -//Health ServiceHealth -type Health struct { - Name string `json:"name"` - Model string `json:"model"` - IP string `json:"ip"` - Port int `json:"port"` - Address string `json:"address"` - TimeInterval int `json:"time_interval"` - MaxErrorsNum int `json:"max_errors_num"` - MaxTimeoutSecond int `json:"max_timeout"` -} - -// Equal check if the left health(l) is equal to the right health(r) -func (l *Health) Equal(r *Health) bool { - if l == r { - return true - } - if l.Name != r.Name { - return false - } - if l.Model != r.Model { - return false - } - if l.IP != r.IP { - return false - } - if l.Port != r.Port { - return false - } - if l.Address != r.Address { - return false - } - if l.TimeInterval != r.TimeInterval { - return false - } - if l.MaxErrorsNum != r.MaxErrorsNum { - return false - } - return true -} - -//HealthStatus health status -type HealthStatus struct { - Name string `json:"name"` - Status string `json:"status"` - ErrorNumber int `json:"error_number"` - ErrorDuration time.Duration `json:"error_duration"` - StartErrorTime time.Time `json:"start_error_time"` - Info string `json:"info"` - LastStatus string `json:"last_status"` - StatusChange bool `json:"status_change"` -} diff --git a/worker/appm/conversion/version.go b/worker/appm/conversion/version.go index 2db5af9bd..291556020 100644 --- a/worker/appm/conversion/version.go +++ b/worker/appm/conversion/version.go @@ -497,7 +497,7 @@ func createResources(as *v1.AppService) corev1.ResourceRequirements { cpuRequest = int64(requestint) } } - if as.ContainerCPU > 0 && cpuRequest == 0 && cpuLimit == 0{ + if as.ContainerCPU > 0 && cpuRequest == 0 && cpuLimit == 0 { cpuLimit = int64(as.ContainerCPU) cpuRequest = int64(as.ContainerCPU) } diff --git a/worker/monitor/exporter.go b/worker/monitor/exporter.go index 492046036..02ee92707 100644 --- a/worker/monitor/exporter.go +++ b/worker/monitor/exporter.go @@ -31,7 +31,6 @@ import ( "github.com/goodrain/rainbond/worker/monitor/collector" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" - "github.com/prometheus/common/log" "github.com/sirupsen/logrus" ) @@ -90,9 +89,9 @@ func (t *ExporterManager) Start() error { } httputil.ReturnSuccess(r, w, healthStatus) }) - log.Infoln("Listening on", t.config.Listen) + logrus.Infoln("Listening on", t.config.Listen) go func() { - log.Fatal(http.ListenAndServe(t.config.Listen, nil)) + logrus.Fatal(http.ListenAndServe(t.config.Listen, nil)) }() logrus.Info("start app resource exporter success.") return nil From 524b97773ae5a46d284e7c0d7ed407c109748c3f Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Mon, 23 Aug 2021 11:55:43 +0800 Subject: [PATCH 2/8] fix code build error --- CONTRIBUTING.md | 16 +- cmd/node-proxy/option/conf.go | 2 + cmd/node-proxy/server/server.go | 2 +- gateway/annotations/parser/parser_test.go | 178 ------ go.mod | 1 - go.sum | 1 + localbuild.sh | 42 +- node/nodem/monitor/monitor_manager.go | 15 +- util/ansible/ansible.go | 228 -------- util/ansible/node.go | 92 --- util/ansible/node_test.go | 32 - worker/appm/conversion/common.go | 3 +- worker/appm/conversion/gateway_test.go | 552 ------------------ worker/appm/conversion/version.go | 11 +- worker/appm/types/v1/labels.go | 4 + worker/appm/volume/local.go | 3 +- worker/appm/volume/other.go | 4 +- .../master/volumes/provider/rainbondsslc.go | 8 +- 18 files changed, 63 insertions(+), 1131 deletions(-) delete mode 100644 gateway/annotations/parser/parser_test.go delete mode 100644 util/ansible/ansible.go delete mode 100644 util/ansible/node.go delete mode 100644 util/ansible/node_test.go delete mode 100644 worker/appm/conversion/gateway_test.go diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9f4aae50..398bd579e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,8 @@ # Compile the project -``` -# you must have docker and golang environment +if you have docker and golang environment +``` # build all docker image make image @@ -12,11 +12,21 @@ make binary # build binary for different os GOOS=windows make binary -# if you what build one component +# if you what build one module make binary WHAT=api make image WHAT=api ``` +in only golang environment + +``` +# build all module +./localbuild.sh all + +# build one module +./localbuild.sh api +``` + # How to contribute Read [Contributing to Open Source on GitHub](https://guides.github.com/activities/contributing-to-open-source/) before contribute. diff --git a/cmd/node-proxy/option/conf.go b/cmd/node-proxy/option/conf.go index fe45333ef..6276a8a23 100644 --- a/cmd/node-proxy/option/conf.go +++ b/cmd/node-proxy/option/conf.go @@ -67,6 +67,7 @@ type Conf struct { ImageRepositoryHost string GatewayVIP string HostsFile string + KubeConfigPath string } //StatsdConfig StatsdConfig @@ -99,6 +100,7 @@ func (a *Conf) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.ImageRepositoryHost, "image-repo-host", "goodrain.me", "The host of image repository") fs.StringVar(&a.GatewayVIP, "gateway-vip", "", "The vip of gateway") fs.StringVar(&a.HostsFile, "hostsfile", "/newetc/hosts", "/etc/hosts mapped path in the container. eg. /etc/hosts:/tmp/hosts. Do not set hostsfile to /etc/hosts") + fs.StringVar(&a.KubeConfigPath, "kubeconfig", "", "path to kubeconfig file with authorization and master location information.") } //SetLog 设置log diff --git a/cmd/node-proxy/server/server.go b/cmd/node-proxy/server/server.go index 7185aa205..68de39fc9 100644 --- a/cmd/node-proxy/server/server.go +++ b/cmd/node-proxy/server/server.go @@ -53,7 +53,7 @@ func Run(cfg *option.Conf) error { return fmt.Errorf("config parse error:%s", err.Error()) } - config, err := k8sutil.NewRestConfig("") + config, err := k8sutil.NewRestConfig(cfg.KubeConfigPath) if err != nil { return err } diff --git a/gateway/annotations/parser/parser_test.go b/gateway/annotations/parser/parser_test.go deleted file mode 100644 index 418b612bc..000000000 --- a/gateway/annotations/parser/parser_test.go +++ /dev/null @@ -1,178 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package parser - -import ( - "testing" - - api "k8s.io/api/core/v1" - networkingv1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func buildIngress() *networkingv1.Ingress { - return &networkingv1.Ingress{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "foo", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.IngressSpec{}, - } -} - -func TestGetBoolAnnotation(t *testing.T) { - ing := buildIngress() - - _, err := GetBoolAnnotation("", nil) - if err == nil { - t.Errorf("expected error but retuned nil") - } - - tests := []struct { - name string - field string - value string - exp bool - expErr bool - }{ - {"valid - false", "bool", "false", false, false}, - {"valid - true", "bool", "true", true, false}, - } - - data := map[string]string{} - ing.SetAnnotations(data) - - for _, test := range tests { - data[GetAnnotationWithPrefix(test.field)] = test.value - - u, err := GetBoolAnnotation(test.field, ing) - if test.expErr { - if err == nil { - t.Errorf("%v: expected error but retuned nil", test.name) - } - continue - } - if u != test.exp { - t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.name, test.exp, u) - } - - delete(data, test.field) - } -} - -func TestGetStringAnnotation(t *testing.T) { - ing := buildIngress() - - _, err := GetStringAnnotation("", nil) - if err == nil { - t.Errorf("expected error but retuned nil") - } - - tests := []struct { - name string - field string - value string - exp string - expErr bool - }{ - {"valid - A", "string", "A", "A", false}, - {"valid - B", "string", "B", "B", false}, - } - - data := map[string]string{} - ing.SetAnnotations(data) - - for _, test := range tests { - data[GetAnnotationWithPrefix(test.field)] = test.value - - s, err := GetStringAnnotation(test.field, ing) - if test.expErr { - if err == nil { - t.Errorf("%v: expected error but retuned nil", test.name) - } - continue - } - if s != test.exp { - t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.name, test.exp, s) - } - - delete(data, test.field) - } -} - -func TestGetIntAnnotation(t *testing.T) { - ing := buildIngress() - - _, err := GetIntAnnotation("", nil) - if err == nil { - t.Errorf("expected error but retuned nil") - } - - tests := []struct { - name string - field string - value string - exp int - expErr bool - }{ - {"valid - A", "string", "1", 1, false}, - {"valid - B", "string", "2", 2, false}, - } - - data := map[string]string{} - ing.SetAnnotations(data) - - for _, test := range tests { - data[GetAnnotationWithPrefix(test.field)] = test.value - - s, err := GetIntAnnotation(test.field, ing) - if test.expErr { - if err == nil { - t.Errorf("%v: expected error but retuned nil", test.name) - } - continue - } - if s != test.exp { - t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.name, test.exp, s) - } - - delete(data, test.field) - } -} - -func TestGetStringAnnotationWithPrefix(t *testing.T) { - ing := buildIngress() - - _, err := GetIntAnnotation("", nil) - if err == nil { - t.Errorf("expected error but retuned nil") - } - - data := map[string]string{ - "nginx.ingress.kubernetes.io/proxy-body-size": "0k", - "nginx.ingress.kubernetes.io/proxy-buffering": "off", - "nginx.ingress.kubernetes.io/set-header-foo": "value1", - "nginx.ingress.kubernetes.io/set-header-bar": "value2", - } - ing.SetAnnotations(data) - - m, err := GetStringAnnotationWithPrefix("set-header-", ing) - if err != nil { - t.Fatal(err) - } - t.Log(m) -} diff --git a/go.mod b/go.mod index 7e919249c..2e9ac7a43 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,6 @@ require ( github.com/emicklei/go-restful v2.14.2+incompatible github.com/emicklei/go-restful-swagger12 v0.0.0-20170926063155-7524189396c6 github.com/envoyproxy/go-control-plane v0.9.5 - github.com/fatih/color v1.9.0 github.com/fatih/structs v1.1.0 github.com/fsnotify/fsnotify v1.4.9 github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 diff --git a/go.sum b/go.sum index 08643e1f9..607ed2c0d 100644 --- a/go.sum +++ b/go.sum @@ -852,6 +852,7 @@ github.com/huandu/xstrings v1.3.1 h1:4jgBlKK6tLKFvO8u5pmYjG91cqytmDCDvGh7ECVFfFs github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/illumos/go-kstat v0.0.0-20210513183136-173c9b0a9973 h1:hk4LPqXIY/c9XzRbe7dA6qQxaT6Axcbny0L/G5a4owQ= github.com/illumos/go-kstat v0.0.0-20210513183136-173c9b0a9973/go.mod h1:PoK3ejP3LJkGTzKqRlpvCIFas3ncU02v8zzWDW+g0FY= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= diff --git a/localbuild.sh b/localbuild.sh index 9cadd568d..b65d238b0 100755 --- a/localbuild.sh +++ b/localbuild.sh @@ -12,43 +12,41 @@ release_desc=${VERSION}-${git_commit}-${buildTime} function prepare() { rm -rf $releasedir - mkdir -pv $releasedir/{tmp,dist} - [ ! -d "$distdir/usr/local/" ] && mkdir -p $distdir/usr/local/bin + mkdir -pv $releasedir/{tmp,dist} + [ ! -d "$distdir/usr/local/" ] && mkdir -p $distdir/usr/local/bin } -build_items=(api builder grctl monitor mq node webcli worker eventlog init-probe mesh-data-panel) +build_items=(api builder grctl monitor mq node-proxy webcli worker eventlog init-probe mesh-data-panel) function localbuild() { - if [ "$1" = "all" ];then - for item in "${build_items[@]}" - do - echo "build local ${item}" - go build -ldflags "-X github.com/goodrain/rainbond/cmd.version=${release_desc}" -o _output/${GOOS}/${VERSION}/rainbond-$item ./cmd/$item - done + if [ "$1" = "all" ]; then + for item in "${build_items[@]}"; do + echo "build local ${item}" + go build -ldflags "-X github.com/goodrain/rainbond/cmd.version=${release_desc}" -o _output/${GOOS}/${VERSION}/rainbond-$item ./cmd/$item + done else echo "build local $1 ${VERSION}" outputname="_output/${GOOS}/${VERSION}/rainbond-$1" - if [ "$GOOS" = "windows" ];then + if [ "$GOOS" = "windows" ]; then outputname="_output/${GOOS}/${VERSION}/rainbond-$1.exe" fi ldflags="-X github.com/goodrain/rainbond/cmd.version=${release_desc}" - if [ "$STATIC" = "true" ];then - ldflags="${ldflags} -extldflags '-static'" + if [ "$STATIC" = "true" ]; then + ldflags="${ldflags} -extldflags '-static'" fi - go build -v -ldflags "${ldflags}" -o ${outputname} ./cmd/$1 + go build -v -ldflags "${ldflags}" -o ${outputname} ./cmd/$1 fi } case $1 in - *) - prepare - if [ "$1" = "all" ];then - for item in "${build_items[@]}" - do - localbuild $item - done - fi - localbuild $1 +*) + prepare + if [ "$1" = "all" ]; then + for item in "${build_items[@]}"; do + localbuild $item + done + fi + localbuild $1 ;; esac diff --git a/node/nodem/monitor/monitor_manager.go b/node/nodem/monitor/monitor_manager.go index b636a0458..0b4938d6f 100644 --- a/node/nodem/monitor/monitor_manager.go +++ b/node/nodem/monitor/monitor_manager.go @@ -21,6 +21,7 @@ package monitor import ( "context" "net/http" + "runtime" "github.com/go-kit/kit/log" "github.com/goodrain/rainbond/cmd/node-proxy/option" @@ -52,12 +53,14 @@ type manager struct { func createNodeExporterRestry() (*prometheus.Registry, error) { registry := prometheus.NewRegistry() filters := []string{"cpu", "diskstats", "filesystem", - "ipvs", "loadavg", "meminfo", "netdev", - "netclass", "netdev", "netstat", - "uname", "mountstats", "nfs", "arp", - "btrfs", "bonding", "os", "xfs", "zfs", - "time", "thermal_zone", "stat", "softnet", "sockstat", - "schedstat", "pressure", + "loadavg", "meminfo", "netdev", + "netdev", "uname", + "time", + } + if runtime.GOOS == "linux" { + filters = append(filters, "ipvs", "netclass", "netstat", "nfs", + "xfs", "zfs", "mountstats", "arp", "btrfs", "bonding", + "schedstat", "pressure", "softnet", "sockstat", "stat", "os", "thermal_zone") } // init kingpin parse kingpin.CommandLine.Parse([]string{"--collector.mountstats=true"}) diff --git a/util/ansible/ansible.go b/util/ansible/ansible.go deleted file mode 100644 index 76116015a..000000000 --- a/util/ansible/ansible.go +++ /dev/null @@ -1,228 +0,0 @@ -package ansible - -import ( - "bufio" - "bytes" - "fmt" - "io/ioutil" - "net" - "os" - "path" - "sort" - "strconv" - "strings" - "time" - - "github.com/goodrain/rainbond/node/nodem/client" - "github.com/goodrain/rainbond/util" -) - -//WriteHostsFile write hosts file -func WriteHostsFile(filePath, installConfPath string, hosts []*client.HostNode) error { - if os.Getenv("NOT_WRITE_ANSIBLE_HOSTS") != "" { - return nil - } - config := GetAnsibleHostConfig(filePath) - for i := range hosts { - config.AddHost(hosts[i], installConfPath) - } - return config.WriteFile() -} - -//Host ansible host config -type Host struct { - AnsibleHostIP net.IP - //ssh port - AnsibleHostPort int - HostID string - Role client.HostRule - CreateTime time.Time - AnsibleSSHPrivateKeyFile string -} - -// String reutrn Host string -func (a *Host) String() string { - if strings.TrimSpace(a.AnsibleSSHPrivateKeyFile) == "" { - return fmt.Sprintf("%s ansible_host=%s ansible_port=%d ip=%s port=%d role=%s", a.HostID, a.AnsibleHostIP, a.AnsibleHostPort, a.AnsibleHostIP, a.AnsibleHostPort, a.Role) - } - return fmt.Sprintf("%s ansible_host=%s ansible_port=%d ip=%s port=%d role=%s ansible_ssh_private_key_file=%s", a.HostID, a.AnsibleHostIP, a.AnsibleHostPort, a.AnsibleHostIP, a.AnsibleHostPort, a.Role, a.AnsibleSSHPrivateKeyFile) -} - -// HostsList hosts list -type HostsList []*Host - -func (list HostsList) Len() int { - return len(list) -} - -func (list HostsList) Less(i, j int) bool { - return list[i].CreateTime.Before(list[j].CreateTime) -} - -func (list HostsList) Swap(i, j int) { - list[i], list[j] = list[j], list[i] -} - -//HostGroup ansible host group config -type HostGroup struct { - Name string - HostList HostsList -} - -//AddHost add host -func (a *HostGroup) AddHost(h *Host) { - for _, old := range a.HostList { - if old.AnsibleHostIP.String() == h.AnsibleHostIP.String() { - return - } - } - a.HostList = append(a.HostList, h) - -} - -// String return HostList string -func (a *HostGroup) String() string { - rebuffer := bytes.NewBuffer(nil) - rebuffer.WriteString(fmt.Sprintf("[%s]\n", a.Name)) - for i := range a.HostList { - if a.Name == "all" { - rebuffer.WriteString(a.HostList[i].String() + "\n") - } else { - rebuffer.WriteString(a.HostList[i].HostID + "\n") - } - } - rebuffer.WriteString("\n") - return rebuffer.String() -} - -//HostConfig ansible hosts config -type HostConfig struct { - FileName string - GroupList map[string]*HostGroup -} - -//GetAnsibleHostConfig get config -func GetAnsibleHostConfig(name string) *HostConfig { - return &HostConfig{ - FileName: name, - GroupList: map[string]*HostGroup{ - "all": &HostGroup{Name: "all"}, - "manage": &HostGroup{Name: "manage"}, - "new-manage": &HostGroup{Name: "new-manage"}, - "gateway": &HostGroup{Name: "gateway"}, - "new-gateway": &HostGroup{Name: "new-gateway"}, - "compute": &HostGroup{Name: "compute"}, - "new-compute": &HostGroup{Name: "new-compute"}, - "etcd": &HostGroup{Name: "etcd"}, - }, - } -} - -//Content return config file content -func (c *HostConfig) Content() string { - return c.ContentBuffer().String() -} - -//ContentBuffer content buffer -func (c *HostConfig) ContentBuffer() *bytes.Buffer { - rebuffer := bytes.NewBuffer(nil) - for i := range c.GroupList { - sort.Sort(c.GroupList[i].HostList) // sort host by createTime - rebuffer.WriteString(c.GroupList[i].String()) - } - return rebuffer -} - -//WriteFile write config file -func (c *HostConfig) WriteFile() error { - if c.FileName == "" { - return fmt.Errorf("config file name can not be empty") - } - if err := util.CheckAndCreateDir(path.Dir(c.FileName)); err != nil { - return err - } - if err := ioutil.WriteFile(c.FileName+".tmp", c.ContentBuffer().Bytes(), 0755); err != nil { - return err - } - return os.Rename(c.FileName+".tmp", c.FileName) -} - -func getSSHPort(configFile string) int { - if ok, _ := util.FileExists(configFile); !ok { - return 22 - } - file, err := os.OpenFile(configFile, os.O_RDONLY, 0666) - if err != nil { - return 22 - } - - defer file.Close() - - reader := bufio.NewReader(file) - for { - str, _, err := reader.ReadLine() - if err != nil { - break - } - line := strings.TrimSpace(string(str)) - if strings.Contains(line, "=") && !strings.HasPrefix(line, "#") { - keyvalue := strings.SplitN(string(line), "=", 2) - if len(keyvalue) == 2 || keyvalue[0] == "INSTALL_SSH_PORT" { - port, err := strconv.Atoi(keyvalue[1]) - if err != nil { - return 22 - } - return port - } - } - } - return 22 -} - -//AddHost add host -func (c *HostConfig) AddHost(h *client.HostNode, installConfPath string) { - //check role - //check status - ansibleHost := &Host{ - AnsibleHostIP: net.ParseIP(h.InternalIP), - AnsibleHostPort: getSSHPort(installConfPath), - HostID: h.ID, - Role: h.Role, - CreateTime: h.CreateTime, - AnsibleSSHPrivateKeyFile: h.KeyPath, - } - c.GroupList["all"].AddHost(ansibleHost) - checkNeedInstall := func(h *client.HostNode) bool { - return h.Status == client.NotInstalled || h.Status == client.InstallFailed || h.Status == client.Installing - } - if h.Role.HasRule("manage") { - if checkNeedInstall(h) { - c.GroupList["new-manage"].AddHost(ansibleHost) - } else { - c.GroupList["manage"].AddHost(ansibleHost) - } - if _, ok := h.Labels["noinstall_etcd"]; !ok { - c.GroupList["etcd"].AddHost(ansibleHost) - } - } - if h.Role.HasRule("compute") { - if checkNeedInstall(h) { - c.GroupList["new-compute"].AddHost(ansibleHost) - } else { - c.GroupList["compute"].AddHost(ansibleHost) - } - } - if h.Role.HasRule("gateway") { - if checkNeedInstall(h) { - c.GroupList["new-gateway"].AddHost(ansibleHost) - } else { - c.GroupList["gateway"].AddHost(ansibleHost) - } - } - for i := range h.NodeStatus.Conditions { - if h.NodeStatus.Conditions[i].Type == "etcd" { - c.GroupList["etcd"].AddHost(ansibleHost) - break - } - } -} diff --git a/util/ansible/node.go b/util/ansible/node.go deleted file mode 100644 index e96e77a28..000000000 --- a/util/ansible/node.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package ansible - -import ( - "fmt" - "io" - "os" - "os/exec" - "strings" - - "github.com/goodrain/rainbond/util" -) - -//NodeInstallOption node install option -type NodeInstallOption struct { - HostRole string - HostName string - InternalIP string - RootPass string // ssh login password - KeyPath string // ssh login key path - NodeID string - Stdin io.Reader - Stdout io.Writer - Stderr io.Writer - loginValue string - linkModel string -} - -//RunNodeInstallCmd install node -func RunNodeInstallCmd(option NodeInstallOption) (err error) { - installNodeShellPath := os.Getenv("INSTALL_NODE_SHELL_PATH") - if installNodeShellPath == "" { - installNodeShellPath = "/opt/rainbond/rainbond-ansible/scripts/node.sh" - } - // ansible file must exists - if ok, _ := util.FileExists(installNodeShellPath); !ok { - return fmt.Errorf("install node scripts is not found") - } - // ansible's param can't send nil nor empty string - if err := preCheckNodeInstall(&option); err != nil { - return err - } - line := fmt.Sprintf("'%s' -r '%s' -i '%s' -t '%s' -k '%s' -u '%s'", - installNodeShellPath, option.HostRole, option.InternalIP, option.linkModel, option.loginValue, option.NodeID) - cmd := exec.Command("bash", "-c", line) - cmd.Stdin = option.Stdin - cmd.Stdout = option.Stdout - cmd.Stderr = option.Stderr - return cmd.Run() -} - -// check param -func preCheckNodeInstall(option *NodeInstallOption) error { - if strings.TrimSpace(option.HostRole) == "" { - return fmt.Errorf("install node failed, install scripts needs param hostRole") - } - if strings.TrimSpace(option.InternalIP) == "" { - return fmt.Errorf("install node failed, install scripts needs param internalIP") - } - //login key path first, and then rootPass, so keyPath and RootPass can't all be empty - if strings.TrimSpace(option.KeyPath) == "" { - if strings.TrimSpace(option.RootPass) == "" { - return fmt.Errorf("install node failed, install scripts needs login key path or login password") - } - option.loginValue = strings.TrimSpace(option.RootPass) - option.linkModel = "pass" - } else { - option.loginValue = strings.TrimSpace(option.KeyPath) - option.linkModel = "key" - } - if strings.TrimSpace(option.NodeID) == "" { - return fmt.Errorf("install node failed, install scripts needs param nodeID") - } - return nil -} diff --git a/util/ansible/node_test.go b/util/ansible/node_test.go deleted file mode 100644 index 61759772c..000000000 --- a/util/ansible/node_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package ansible - -import ( - "testing" -) - -func TestPreCheckNodeInstall(t *testing.T) { - tests := []struct { - name string - opt *NodeInstallOption - wanterr bool - }{ - { - name: "empty node id", - opt: &NodeInstallOption{ - HostRole: "host role", - InternalIP: "192.168.1.1", - RootPass: "root pass", - }, - wanterr: true, - }, - } - - for idx := range tests { - tc := tests[idx] - t.Run(tc.name, func(t *testing.T) { - if err := preCheckNodeInstall(tc.opt); (err != nil) != tc.wanterr { - t.Errorf("want error: %v, but got %v", tc.wanterr, err) - } - }) - } -} diff --git a/worker/appm/conversion/common.go b/worker/appm/conversion/common.go index b11ce29d6..b342918f4 100644 --- a/worker/appm/conversion/common.go +++ b/worker/appm/conversion/common.go @@ -19,9 +19,8 @@ package conversion import ( - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" ) - func conversionPortProtocol(protocol string) v1.Protocol { if protocol == "udp" { return v1.ProtocolUDP diff --git a/worker/appm/conversion/gateway_test.go b/worker/appm/conversion/gateway_test.go deleted file mode 100644 index ca94fa48a..000000000 --- a/worker/appm/conversion/gateway_test.go +++ /dev/null @@ -1,552 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package conversion - -import ( - "context" - "fmt" - "strconv" - "testing" - "time" - - gomock "github.com/golang/mock/gomock" - "github.com/goodrain/rainbond/db" - "github.com/goodrain/rainbond/db/dao" - "github.com/goodrain/rainbond/db/model" - "github.com/goodrain/rainbond/gateway/annotations/parser" - v1 "github.com/goodrain/rainbond/worker/appm/types/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/clientcmd" -) - -const ( - tlsCrt string = `-----BEGIN CERTIFICATE----- -MIIDnjCCAoYCCQDNpEw8d114VjANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMC -Q04xDzANBgNVBAgMBlBla2luZzEPMA0GA1UEBwwGUGVraW5nMREwDwYDVQQKDAhH -b29kcmFpbjELMAkGA1UECwwCSVQxGTAXBgNVBAMMEHd3dy5nb29kcmFpbi5jb20x -IzAhBgkqhkiG9w0BCQEWFGh1YW5ncmhAZ29vZHJhaW4uY29tMCAXDTE4MTAxOTA2 -MzczMVoYDzIxMTgwOTI1MDYzNzMxWjCBjzELMAkGA1UEBhMCQ04xDzANBgNVBAgM -BlBla2luZzEPMA0GA1UEBwwGUGVraW5nMREwDwYDVQQKDAhHb29kcmFpbjELMAkG -A1UECwwCSVQxGTAXBgNVBAMMEHd3dy5nb29kcmFpbi5jb20xIzAhBgkqhkiG9w0B -CQEWFGh1YW5ncmhAZ29vZHJhaW4uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEA6II9+hrrlbVRtNSsy8vpBqP59eOQQ5eaLsGL9D4Gdx6CELw24DXQ -YzAmznDQMKdUn0QavdoVgpXtjJQ1ExG6JqM44Kg87+hjraGKGGcVO+h2ThkjkUUP -Aq2tkuoNgc6JcAk0zSeq5cC/Z4WT1s/gM555XwmAsFnujW33EM77t/c9qcaX7Gqi -CrpcGg+PViYPutf0KuKjPfWqCDCoqlAsZy8cBEwPxnAJ3JE+HrnjR7CQ+C7wiAyB -Bm3JKzHEa2V7QRXelJ02VRl7VdpwJCBajAYPwa9CeWkv5JuO4Y1mGQ9suiFCb3hc -lVTviGnSkR6plo8cBUIAewVcC3ogV3KwGwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB -AQAJxEH8Zk8dZ/ZeRIroz6TQnuhjnoNvu4Wz/8M+EEb+B50JMq9miIau0MkCPKX5 -+8BG0qmZ+Gg0254nzt2wBFta/YxkgK7oJpHKYRqN/ObEpPAY1Wy4dVacQKQbnM3s -CQs5crFvzh3ujfPtv8lFc2GQIW3APLfVsFciOtXyyqYvyVlSv/uRfzgfx/mSutCZ -LDEvtpppFg5Krrp53dn2WRN+fTYtN7PP0o7eJ9z9dsFHIYC29W7+4mnu222/g0yJ -JIUWCm/t3IoK9hdLZoIG9y4/AhjQ5WyKHFVI0+PZOELIHW4+Z+Jfx1UAmDtUi0fy -Tb7er4QI7buUG901slahtDkN ------END CERTIFICATE-----` - tlsKey string = ` ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDogj36GuuVtVG0 -1KzLy+kGo/n145BDl5ouwYv0PgZ3HoIQvDbgNdBjMCbOcNAwp1SfRBq92hWCle2M -lDUTEbomozjgqDzv6GOtoYoYZxU76HZOGSORRQ8Cra2S6g2BzolwCTTNJ6rlwL9n -hZPWz+AznnlfCYCwWe6NbfcQzvu39z2pxpfsaqIKulwaD49WJg+61/Qq4qM99aoI -MKiqUCxnLxwETA/GcAnckT4eueNHsJD4LvCIDIEGbckrMcRrZXtBFd6UnTZVGXtV -2nAkIFqMBg/Br0J5aS/km47hjWYZD2y6IUJveFyVVO+IadKRHqmWjxwFQgB7BVwL -eiBXcrAbAgMBAAECggEAVNVwl5jK7EzECx6uDY3Q8ENUKItnT8I412Z3Eh6vbTcM -bd6+hwAbkJU5E4nF7HqhPZszxqGTx5m8mtZYpySIryBO2GmKEl7QP8H5CP5TmRAw -Wj6B47c2yttjwX70frBFJUO2qEQY7sttCvCKCI7AVxUzY6Gr+qxVhfTheJiM74ns -MoZKrYsvaqwDAR7IvVZz6PPORyRvbfenwMVmpPaBApSNGZjYz4sTo6I6NGteq1Yu -AorVg/CLR5d4O+KMU0uyKuM2edOnGHj+svXyUZBxDzAFzDvKz8r5eQiKOYcAAzHG -VFt0M2LUj6FkXBLnP1pjYknBS5JiAy9/qbbwVriBQQKBgQD6+8XJgtW3Wg+ZrDkq -5JnUCdZTNULibrom5RWOG5O4M+zOXuIeGJaekkzbcZNp3VMqixtQzhz+QxEHoded -kn4NgLVqf76zqgMe1rcWPI82+Xum0E++baJgLxoc8Zck87wwVBAsJQ1E6WUDJqz+ -gIZLmbCkKjSIC8BhvApI2u8EBwKBgQDtJ/A4fQvp20hgIvZnkYC+OXIXjK1M/RBI -5HFFcQwKwbd46vtDCjif+h/AY5rr8JumvVG3uIAXh/qxDmsbkJ4OWv+SWMPHUDbq -ixQ4gd+8MzQcElSQK2d458JUtZ96Kdhmun73eFXwKW65ct/+b6VxH2pgrIG4RJnS -5kbhXGM2TQKBgGOMPTTiCfaBaDKhlsMmjMUHadTzCSZamMcYkeYdlge3wLNR+wnI -4uTeTlGzyK5ytKvpJNp2BhXrb/PBA45iLlEYvdwR8we75ST0MQZG2t8JMTxG33o+ -besMg6T7ReHIMtpQXWHFCHBOylvnmTIQtDOEMAXNH6zeTF33gXTIMYk9AoGAPIpH -foQdeHNsBG6obEPuk6DiiTR2QQMRFyqJ5+o14sEU7x89SR3g2qXlWR2UPMrNUUFf -DQFiYZ9q1awSl5TRZGTCfT9/qu/FNRaP8OTmkoqXsNrVD4ClB25SY4GB1pO8FG1j -YBUuCwLoqxqyJ6ekmj4kz8z5yGpqwjXavkjxYrkCgYACsrAeAbN1/DAGeRuyma66 -TYOoMIw/XlYDfXXyxKxLYRvXerPoEVkwII6m9AS9o/bH6DDBqLJDNRhNGOK/3ZR0 -j47sfX8KszGDIuoeR7dnGCTc1PGtQ1Uhn4Z6mm1NMJrmc7v/fkxIQoSlq1/o8fGv -QZ+yDlTdRpvoEP2mzW2cZA== ------END PRIVATE KEY-----` -) - -func TestApplyTcpRule(t *testing.T) { - testCase := map[string]string{ - "namespace": "e8539a9c33fd123456789e26d2bca431", - parser.GetAnnotationWithPrefix("l4-enable"): "true", - parser.GetAnnotationWithPrefix("l4-host"): "127.0.0.1", - parser.GetAnnotationWithPrefix("l4-port"): "32145", - "serviceName": "default-svc", - "containerPort": "10000", - } - - serviceID := "43eaae441859eda35b02075d37d83589" - containerPort, err := strconv.Atoi(testCase["containerPort"]) - if err != nil { - t.Errorf("Can not convert %s(string) to int: %v", testCase["containerPort"], err) - } - port := &model.TenantServicesPort{ - TenantID: testCase["namespace"], - ServiceID: serviceID, - ContainerPort: containerPort, - Protocol: "http", - PortAlias: "GRD835895000", - IsInnerService: func() *bool { b := false; return &b }(), - IsOuterService: func() *bool { b := true; return &b }(), - } - - service := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: testCase["serviceName"], - Namespace: testCase["namespace"], - }, - Spec: corev1.ServiceSpec{ - Ports: []corev1.ServicePort{ - { - Name: "service-port", - Port: int32(containerPort), - TargetPort: intstr.Parse(testCase["containerPort"]), - }, - }, - Selector: map[string]string{ - "tier": "default", - }, - }, - } - - externalPort, err := strconv.Atoi(testCase[parser.GetAnnotationWithPrefix("l4-port")]) - if err != nil { - t.Errorf("Can not convert %s(string) to int: %v", - testCase[parser.GetAnnotationWithPrefix("l4-port")], err) - } - tcpRule := &model.TCPRule{ - UUID: "default", - ServiceID: serviceID, - ContainerPort: port.ContainerPort, - IP: testCase[parser.GetAnnotationWithPrefix("l4-host")], - Port: externalPort, - } - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - dbmanager := db.NewMockManager(ctrl) - - serviceDao := dao.NewMockTenantServiceDao(ctrl) - updateTime, _ := time.Parse(time.RFC3339, "2018-10-22T14:14:12Z") - services := &model.TenantServices{ - TenantID: testCase["namespace"], - ServiceID: serviceID, - ServiceKey: "application", - ServiceAlias: "grd83589", - Comment: "application info", - ContainerCPU: 20, - ContainerMemory: 128, - Replicas: 1, - DeployVersion: "20181022200709", - Category: "application", - CurStatus: "undeploy", - Status: 0, - Namespace: "goodrain", - UpdateTime: updateTime, - ServiceOrigin: "assistant", - } - serviceDao.EXPECT().GetServiceByID(serviceID).Return(services, nil) - dbmanager.EXPECT().TenantServiceDao().Return(serviceDao) - - tenantDao := dao.NewMockTenantDao(ctrl) - tenant := &model.Tenants{ - Name: "0enb7gyx", - UUID: testCase["namespace"], - EID: "214ec4d212582eb36a84cc180aad2783", - } - tenantDao.EXPECT().GetTenantByUUID(services.TenantID).Return(tenant, nil) - dbmanager.EXPECT().TenantDao().Return(tenantDao) - - appService := &v1.AppService{} - appService.ServiceID = serviceID - appService.CreaterID = "Rainbond" - appService.TenantID = testCase["namespace"] - - replicationType := v1.TypeDeployment - build, err := AppServiceBuilder(serviceID, string(replicationType), dbmanager, appService) - if err != nil { - t.Errorf("Unexpected occurred while creating AppServiceBuild: %v", err) - } - - ing, err := build.applyTCPRule(tcpRule, service, testCase["namespace"]) - if err != nil { - t.Errorf("Unexpected error occurred while applying stream rule: %v", err) - } - - if ing.Namespace != testCase["namespace"] { - t.Errorf("Expected %s for namespace but returned %s", testCase["namespace"], ing.Namespace) - } - if ing.Annotations[parser.GetAnnotationWithPrefix("l4-enable")] != - testCase[parser.GetAnnotationWithPrefix("l4-enable")] { - t.Errorf("Expected %s for annotations[%s] but returned %s", - testCase[parser.GetAnnotationWithPrefix("l4-enable")], - parser.GetAnnotationWithPrefix("l4-enable"), - ing.Annotations[parser.GetAnnotationWithPrefix("l4-enable")]) - } - if ing.Annotations[parser.GetAnnotationWithPrefix("l4-host")] != - testCase[parser.GetAnnotationWithPrefix("l4-host")] { - t.Errorf("Expected %s for annotations[%s] but returned %s", - testCase[parser.GetAnnotationWithPrefix("l4-host")], - parser.GetAnnotationWithPrefix("l4-host"), - ing.Annotations[parser.GetAnnotationWithPrefix("l4-host")]) - } - if ing.Annotations[parser.GetAnnotationWithPrefix("l4-port")] != - testCase[parser.GetAnnotationWithPrefix("l4-port")] { - t.Errorf("Expected %s for annotations[%s] but returned %s", - testCase[parser.GetAnnotationWithPrefix("l4-port")], - parser.GetAnnotationWithPrefix("l4-port"), - ing.Annotations[parser.GetAnnotationWithPrefix("l4-port")]) - } - if ing.Spec.Backend.ServiceName != testCase["serviceName"] { - t.Errorf("Expected %s for ServiceName but returned %s", testCase["serviceName"], - ing.Spec.Backend.ServiceName) - } - if ing.Spec.Backend.ServicePort.IntVal != int32(containerPort) { - t.Errorf("Expected %v for ServicePort but returned %v", containerPort, - ing.Spec.Backend.ServicePort) - } - - // create k8s resources - c, err := clientcmd.BuildConfigFromFlags("", "/Users/abe/go/src/github.com/goodrain/rainbond/test/admin.kubeconfig") - if err != nil { - t.Fatalf("read kube config file error: %v", err) - } - clientSet, err := kubernetes.NewForConfig(c) - if err != nil { - t.Fatalf("create kube api client error: %v", err) - } - if _, err := clientSet.CoreV1().Namespaces().Create(context.Background(), &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: testCase["namespace"], - }, - }, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Namespace(%s): %v", testCase["namespace"], err) - } - if _, err := clientSet.ExtensionsV1beta1().Ingresses(ing.Namespace).Create(context.Background(), ing, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Ingress(%s): %v", ing.Name, err) - } - if err := clientSet.CoreV1().Namespaces().Delete(context.Background(), testCase["namespace"], metav1.DeleteOptions{}); err != nil { - t.Errorf("Can't delete namespace(%s)", testCase["namespace"]) - } -} - -func TestAppServiceBuild_ApplyHttpRule(t *testing.T) { - testCase := map[string]string{ - "namespace": "e8539a9c33f12345611cce26d2bca431", - "domain": "www.goodrain.com", - "path": "/dummy-path", - "serviceName": "dummy-service-name", - "servicePort": "10000", - } - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - dbmanager := db.NewMockManager(ctrl) - - serviceID := "43eaae441859eda35b02075d37d83589" - httpRuleID := "1232aae441859eda35b02075d37d8f8d" - containerPort, err := strconv.Atoi(testCase["servicePort"]) - if err != nil { - t.Errorf("Can't convert %s(string) to int", testCase["servicePort"]) - } - - serviceDao := dao.NewMockTenantServiceDao(ctrl) - updateTime, _ := time.Parse(time.RFC3339, "2018-10-22T14:14:12Z") - services := &model.TenantServices{ - TenantID: testCase["namespace"], - ServiceID: serviceID, - ServiceKey: "application", - ServiceAlias: "grd83589", - Comment: "application info", - ContainerCPU: 20, - ContainerMemory: 128, - Replicas: 1, - DeployVersion: "20181022200709", - Category: "application", - CurStatus: "undeploy", - Status: 0, - Namespace: "goodrain", - UpdateTime: updateTime, - ServiceOrigin: "assistant", - } - serviceDao.EXPECT().GetServiceByID(serviceID).Return(services, nil) - dbmanager.EXPECT().TenantServiceDao().Return(serviceDao) - - tenantDao := dao.NewMockTenantDao(ctrl) - tenant := &model.Tenants{ - Name: "0enb7gyx", - UUID: testCase["namespace"], - EID: "214ec4d212582eb36a84cc180aad2783", - } - tenantDao.EXPECT().GetTenantByUUID(services.TenantID).Return(tenant, nil) - dbmanager.EXPECT().TenantDao().Return(tenantDao) - - extensionDao := dao.NewMockRuleExtensionDao(ctrl) - extensionDao.EXPECT().GetRuleExtensionByRuleID(httpRuleID).Return(nil, nil) - dbmanager.EXPECT().RuleExtensionDao().Return(extensionDao) - - replicationType := v1.TypeDeployment - build, err := AppServiceBuilder(serviceID, string(replicationType), dbmanager, nil) - if err != nil { - t.Errorf("Unexpected occurred while creating AppServiceBuild: %v", err) - } - - httpRule := &model.HTTPRule{ - UUID: httpRuleID, - ServiceID: serviceID, - ContainerPort: containerPort, - Domain: testCase["domain"], - Path: testCase["path"], - } - - service := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: testCase["serviceName"], - Namespace: build.tenant.UUID, - }, - Spec: corev1.ServiceSpec{ - Ports: []corev1.ServicePort{ - { - Name: "service-port", - Port: int32(containerPort), - TargetPort: intstr.FromInt(containerPort), - }, - }, - Selector: map[string]string{ - "tier": "default", - }, - }, - } - - ing, sec, err := build.applyHTTPRule(httpRule, containerPort, 0, service) - if err != nil { - t.Errorf("Unexpected error occurred whiling applying http rule: %v", err) - } - if sec != nil { - t.Errorf("Expected nil for sec, but returned %v", sec) - } - if ing.ObjectMeta.Namespace != testCase["namespace"] { - t.Errorf("Expected %s for namespace, but returned %s", testCase["namespace"], ing.ObjectMeta.Namespace) - } - if ing.Spec.Rules[0].Host != testCase["domain"] { - t.Errorf("Expected %s for host, but returned %s", testCase["domain"], ing.Spec.Rules[0].Host) - } - if ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Path != testCase["path"] { - t.Errorf("Expected %s for path, but returned %s", testCase["path"], ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Path) - } - if ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServiceName != testCase["serviceName"] { - t.Errorf("Expected %s for serviceName, but returned %s", testCase["serviceName"], - ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServiceName) - } - if fmt.Sprintf("%v", ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServicePort.IntVal) != testCase["servicePort"] { - t.Errorf("Expected %s for servicePort, but returned %s", testCase["servicePort"], - fmt.Sprintf("%v", ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServicePort.IntVal)) - } - - // create k8s resources - c, err := clientcmd.BuildConfigFromFlags("", "/Users/abe/go/src/github.com/goodrain/rainbond/test/admin.kubeconfig") - if err != nil { - t.Fatalf("read kube config file error: %v", err) - } - clientSet, err := kubernetes.NewForConfig(c) - if err != nil { - t.Fatalf("create kube api client error: %v", err) - } - if _, err := clientSet.CoreV1().Namespaces().Create(context.Background(), &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: testCase["namespace"], - }, - }, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Namespace(%s): %v", testCase["namespace"], err) - } - if _, err := clientSet.ExtensionsV1beta1().Ingresses(ing.Namespace).Create(context.Background(), ing, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Ingress(%s): %v", ing.Name, err) - } - if err := clientSet.CoreV1().Namespaces().Delete(context.Background(), testCase["namespace"], metav1.DeleteOptions{}); err != nil { - t.Errorf("Can't delete namespace(%s)", testCase["namespace"]) - } -} - -func TestAppServiceBuild_ApplyHttpRuleWithCertificate(t *testing.T) { - testCase := map[string]string{ - "namespace": "foobar", - "ruleID": "abbe1e0038af47048f34809337531d76", - "domain": "www.goodrain.com", - "path": "/dummy-path", - "serviceName": "dummy-service-name", - "servicePort": "10000", - "certificateID": "b2a87cb3d71e408c9ca7b9bfa9d0d9f5", - } - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - dbmanager := db.NewMockManager(ctrl) - - ruleID := "abbe1e0038af47048f34809337531d76" - serviceID := "43eaae441859eda35b02075d37d83589" - containerPort, err := strconv.Atoi(testCase["servicePort"]) - if err != nil { - t.Errorf("Can't convert %s(string) to int", testCase["servicePort"]) - } - - serviceDao := dao.NewMockTenantServiceDao(ctrl) - updateTime, _ := time.Parse(time.RFC3339, "2018-10-22T14:14:12Z") - services := &model.TenantServices{ - TenantID: testCase["namespace"], - ServiceID: serviceID, - ServiceKey: "application", - ServiceAlias: "grd83589", - Comment: "application info", - ContainerCPU: 20, - ContainerMemory: 128, - Replicas: 1, - DeployVersion: "20181022200709", - Category: "application", - CurStatus: "undeploy", - Status: 0, - Namespace: "goodrain", - UpdateTime: updateTime, - ServiceOrigin: "assistant", - } - serviceDao.EXPECT().GetServiceByID(serviceID).Return(services, nil) - dbmanager.EXPECT().TenantServiceDao().Return(serviceDao) - - tenantDao := dao.NewMockTenantDao(ctrl) - tenant := &model.Tenants{ - Name: "0enb7gyx", - UUID: testCase["namespace"], - EID: "214ec4d212582eb36a84cc180aad2783", - } - tenantDao.EXPECT().GetTenantByUUID(services.TenantID).Return(tenant, nil) - dbmanager.EXPECT().TenantDao().Return(tenantDao) - - extensionDao := dao.NewMockRuleExtensionDao(ctrl) - extensionDao.EXPECT().GetRuleExtensionByRuleID(ruleID).Return(nil, nil) - dbmanager.EXPECT().RuleExtensionDao().Return(extensionDao) - - certificateDao := dao.NewMockCertificateDao(ctrl) - certificate := &model.Certificate{ - UUID: testCase["certificateID"], - CertificateName: "dummy-certificate-name", - Certificate: tlsCrt, - PrivateKey: tlsKey, - } - certificateDao.EXPECT().GetCertificateByID(testCase["certificateID"]).Return(certificate, nil) - dbmanager.EXPECT().CertificateDao().Return(certificateDao) - - replicationType := v1.TypeDeployment - build, err := AppServiceBuilder(serviceID, string(replicationType), dbmanager, nil) - if err != nil { - t.Errorf("Unexpected occurred while creating AppServiceBuild: %v", err) - } - - httpRule := &model.HTTPRule{ - UUID: ruleID, - ServiceID: serviceID, - ContainerPort: containerPort, - Domain: testCase["domain"], - Path: testCase["path"], - CertificateID: testCase["certificateID"], - } - - service := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: testCase["serviceName"], - Namespace: build.tenant.UUID, - }, - Spec: corev1.ServiceSpec{ - Ports: []corev1.ServicePort{ - { - Name: "service-port", - Port: int32(containerPort), - TargetPort: intstr.FromInt(containerPort), - }, - }, - Selector: map[string]string{ - "tier": "default", - }, - }, - } - - ing, sec, err := build.applyHTTPRule(httpRule, containerPort, 0, service) - if err != nil { - t.Errorf("Unexpected error occurred whiling applying http rule: %v", err) - } - - // create k8s resources - c, err := clientcmd.BuildConfigFromFlags("", "/Users/abe/go/src/github.com/goodrain/rainbond/test/admin.kubeconfig") - if err != nil { - t.Fatalf("read kube config file error: %v", err) - } - clientSet, err := kubernetes.NewForConfig(c) - if err != nil { - t.Fatalf("create kube api client error: %v", err) - } - if _, err := clientSet.CoreV1().Namespaces().Create(context.Background(), &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: testCase["namespace"], - }, - }, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Serect(%s): %v", sec.Name, err) - } - if _, err := clientSet.CoreV1().Secrets(sec.Namespace).Create(context.Background(), sec, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Serect(%s): %v", sec.Name, err) - } - if _, err := clientSet.ExtensionsV1beta1().Ingresses(ing.Namespace).Create(context.Background(), ing, metav1.CreateOptions{}); err != nil { - t.Errorf("Can't create Ingress(%s): %v", ing.Name, err) - } - if err := clientSet.CoreV1().Namespaces().Delete(context.Background(), testCase["namespace"], metav1.DeleteOptions{}); err != nil { - t.Errorf("Can't delete namespace(%s)", testCase["namespace"]) - } - - if ing.ObjectMeta.Namespace != testCase["namespace"] { - t.Errorf("Expected %s for namespace, but returned %s", testCase["namespace"], ing.ObjectMeta.Namespace) - } - if ing.Spec.Rules[0].Host != testCase["domain"] { - t.Errorf("Expected %s for host, but returned %s", testCase["domain"], ing.Spec.Rules[0].Host) - } - if ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Path != testCase["path"] { - t.Errorf("Expected %s for path, but returned %s", testCase["path"], ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Path) - } - if ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServiceName != testCase["serviceName"] { - t.Errorf("Expected %s for serviceName, but returned %s", testCase["serviceName"], - ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServiceName) - } - if fmt.Sprintf("%v", ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServicePort.IntVal) != testCase["servicePort"] { - t.Errorf("Expected %s for servicePort, but returned %s", testCase["servicePort"], - fmt.Sprintf("%v", ing.Spec.Rules[0].IngressRuleValue.HTTP.Paths[0].Backend.ServicePort.IntVal)) - } - if sec.Namespace != testCase["namespace"] { - t.Errorf("Expected %s for namespace, but returned %s", testCase["namespace"], sec.Namespace) - } -} diff --git a/worker/appm/conversion/version.go b/worker/appm/conversion/version.go index 291556020..e608f2434 100644 --- a/worker/appm/conversion/version.go +++ b/worker/appm/conversion/version.go @@ -30,7 +30,6 @@ import ( "github.com/goodrain/rainbond/db" "github.com/goodrain/rainbond/db/model" dbmodel "github.com/goodrain/rainbond/db/model" - "github.com/goodrain/rainbond/node/nodem/client" "github.com/goodrain/rainbond/util" "github.com/goodrain/rainbond/util/envutil" v1 "github.com/goodrain/rainbond/worker/appm/types/v1" @@ -636,7 +635,7 @@ func createNodeSelector(as *v1.AppService, dbmanager db.Manager) map[string]stri if err == nil && labels != nil && len(labels) > 0 { for _, l := range labels { if l.LabelValue == "windows" || l.LabelValue == "linux" { - selector[client.LabelOS] = l.LabelValue + selector[v1.LabelOS] = l.LabelValue continue } if l.LabelValue == model.LabelKeyServicePrivileged { @@ -671,7 +670,7 @@ func createAffinity(as *v1.AppService, dbmanager db.Manager) *corev1.Affinity { if l.LabelKey == dbmodel.LabelKeyNodeAffinity { if l.LabelValue == "windows" { nsr = append(nsr, corev1.NodeSelectorRequirement{ - Key: client.LabelOS, + Key: v1.LabelOS, Operator: corev1.NodeSelectorOpIn, Values: []string{l.LabelValue}, }) @@ -714,20 +713,20 @@ func createAffinity(as *v1.AppService, dbmanager db.Manager) *corev1.Affinity { } if !osWindowsSelect { nsr = append(nsr, corev1.NodeSelectorRequirement{ - Key: client.LabelOS, + Key: v1.LabelOS, Operator: corev1.NodeSelectorOpNotIn, Values: []string{"windows"}, }) } if !enableGPU { nsr = append(nsr, corev1.NodeSelectorRequirement{ - Key: client.LabelGPU, + Key: v1.LabelGPU, Values: []string{"true"}, Operator: corev1.NodeSelectorOpNotIn, }) } else { nsr = append(nsr, corev1.NodeSelectorRequirement{ - Key: client.LabelGPU, + Key: v1.LabelGPU, Values: []string{"true"}, Operator: corev1.NodeSelectorOpIn, }) diff --git a/worker/appm/types/v1/labels.go b/worker/appm/types/v1/labels.go index 6a487a05f..7d05a55f2 100644 --- a/worker/appm/types/v1/labels.go +++ b/worker/appm/types/v1/labels.go @@ -18,6 +18,10 @@ package v1 +//LabelOS node label about os +var LabelOS = "beta.kubernetes.io/os" +var LabelGPU = "beta.rainbond.com/gpushare" + //GetCommonLabels get common labels func (a *AppService) GetCommonLabels(labels ...map[string]string) map[string]string { var resultLabel = make(map[string]string) diff --git a/worker/appm/volume/local.go b/worker/appm/volume/local.go index 744f5d107..8ab9e95b8 100644 --- a/worker/appm/volume/local.go +++ b/worker/appm/volume/local.go @@ -21,7 +21,6 @@ package volume import ( "fmt" - "github.com/goodrain/rainbond/node/nodem/client" v1 "github.com/goodrain/rainbond/worker/appm/types/v1" "github.com/sirupsen/logrus" corev1 "k8s.io/api/core/v1" @@ -46,7 +45,7 @@ func (v *LocalVolume) CreateVolume(define *Define) error { annotations := map[string]string{"volume_name": v.svm.VolumeName} claim := newVolumeClaim(volumeMountName, volumeMountPath, v.svm.AccessMode, v1.RainbondStatefuleLocalStorageClass, v.svm.VolumeCapacity, labels, annotations) claim.Annotations = map[string]string{ - client.LabelOS: func() string { + v1.LabelOS: func() string { if v.as.IsWindowsService { return "windows" } diff --git a/worker/appm/volume/other.go b/worker/appm/volume/other.go index 7580a7ad8..ba25cc32e 100644 --- a/worker/appm/volume/other.go +++ b/worker/appm/volume/other.go @@ -22,7 +22,7 @@ import ( "fmt" "github.com/goodrain/rainbond/db" - "github.com/goodrain/rainbond/node/nodem/client" + v1 "github.com/goodrain/rainbond/worker/appm/types/v1" workerutil "github.com/goodrain/rainbond/worker/util" "github.com/sirupsen/logrus" corev1 "k8s.io/api/core/v1" @@ -52,7 +52,7 @@ func (v *OtherVolume) CreateVolume(define *Define) error { claim := newVolumeClaim(volumeMountName, volumeMountPath, v.svm.AccessMode, v.svm.VolumeType, v.svm.VolumeCapacity, labels, annotations) logrus.Debugf("storage class is : %s, claim value is : %s", v.svm.VolumeType, claim.GetName()) claim.Annotations = map[string]string{ - client.LabelOS: func() string { + v1.LabelOS: func() string { if v.as.IsWindowsService { return "windows" } diff --git a/worker/master/volumes/provider/rainbondsslc.go b/worker/master/volumes/provider/rainbondsslc.go index 9d5427694..ad4bc3295 100644 --- a/worker/master/volumes/provider/rainbondsslc.go +++ b/worker/master/volumes/provider/rainbondsslc.go @@ -30,7 +30,6 @@ import ( "github.com/goodrain/rainbond/db" "github.com/goodrain/rainbond/db/dao" - "github.com/goodrain/rainbond/node/nodem/client" "github.com/goodrain/rainbond/worker/appm/store" "github.com/goodrain/rainbond/worker/master/volumes/provider/lib/controller" @@ -40,6 +39,7 @@ import ( httputil "github.com/goodrain/rainbond/util/http" + typev1 "github.com/goodrain/rainbond/worker/appm/types/v1" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -72,7 +72,7 @@ func (p *rainbondsslcProvisioner) selectNode(ctx context.Context, nodeOS, ignore var selectnode *v1.Node for _, node := range allnode.Items { nodeReady := false - if node.Labels[client.LabelOS] != nodeOS { + if node.Labels["beta.kubernetes.io/os"] != nodeOS { continue } @@ -202,9 +202,9 @@ func (p *rainbondsslcProvisioner) Provision(options controller.VolumeOptions) (* if options.Parameters != nil { ignoreNodes = options.Parameters["ignoreNodes"] } - options.SelectedNode, err = p.selectNode(context.Background(), options.PVC.Annotations[client.LabelOS], ignoreNodes) + options.SelectedNode, err = p.selectNode(context.Background(), options.PVC.Annotations[typev1.LabelOS], ignoreNodes) if err != nil { - return nil, fmt.Errorf("node OS: %s; error selecting node: %s", options.PVC.Annotations[client.LabelOS], err.Error()) + return nil, fmt.Errorf("node OS: %s; error selecting node: %s", options.PVC.Annotations[typev1.LabelOS], err.Error()) } if options.SelectedNode == nil { return nil, fmt.Errorf("do not select an appropriate node for local volume") From 8d6f6f8cc98aaf6a96ed5b8d9ce2cb140444a567 Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Mon, 23 Aug 2021 16:25:16 +0800 Subject: [PATCH 3/8] merge webcli into api module --- Makefile | 1 - api/api_routers/websocket/websocket.go | 1 - api/controller/websocket.go | 25 --- api/server/api.go | 40 ++-- {webcli => api/webcli}/app/app.go | 80 +------- {webcli => api/webcli}/app/app_test.go | 0 {webcli => api/webcli}/app/exec.go | 0 {webcli => api/webcli}/app/http_logger.go | 0 {webcli => api/webcli}/app/monitor.go | 2 +- {webcli => api/webcli}/app/out.go | 2 +- {webcli => api/webcli}/app/tty_test.go | 0 {webcli => api/webcli}/app/ws_wrapper.go | 0 {webcli => api/webcli}/term/BUILD | 0 {webcli => api/webcli}/term/resize.go | 0 {webcli => api/webcli}/term/resizeevents.go | 0 .../webcli}/term/resizeevents_windows.go | 0 {webcli => api/webcli}/term/term.go | 0 {webcli => api/webcli}/term/term_writer.go | 0 .../webcli}/term/term_writer_test.go | 0 cmd/api/server/server.go | 29 ++- cmd/webcli/option/option.go | 77 -------- cmd/webcli/server/server.go | 77 -------- cmd/webcli/webcli.go | 44 ----- cmd/windowsutil/windowsutil.go | 2 + db/3rd_party_db_test.go | 178 ------------------ gateway/annotations/cookie/cookie_test.go | 61 ------ gateway/annotations/header/header_test.go | 61 ------ gateway/annotations/l4/l4_test.go | 61 ------ gateway/annotations/proxy/proxy_test.go | 178 ------------------ gateway/annotations/rewrite/rewrite_test.go | 29 +-- hack/contrib/docker/README.md | 0 .../docker/{ => addon}/grctl/Dockerfile | 0 .../docker/{ => addon}/grctl/README.md | 0 .../docker/{ => addon}/grctl/entrypoint.sh | 0 .../docker/{ => addon}/grctl/grctl.yaml | 0 .../docker/{ => addon}/init-probe/Dockerfile | 0 .../{ => addon}/init-probe/entrypoint.sh | 0 .../{ => addon}/mesh-data-panel/Dockerfile | 0 .../{ => addon}/mesh-data-panel/Makefile | 0 .../{ => addon}/mesh-data-panel/README.md | 0 .../mesh-data-panel/envoy_config.yaml | 0 .../{ => addon}/mesh-data-panel/start.sh | 0 .../docker/{ => addon}/monitor/Dockerfile | 0 .../docker/{ => addon}/monitor/entrypoint.sh | 0 .../{ => addon}/resource-proxy/Dockerfile | 0 .../{ => addon}/resource-proxy/README.md | 0 .../resource-proxy/docker-entrypoint.sh | 0 .../{ => addon}/resource-proxy/ignorebuild | 0 .../resource-proxy/resource-proxy.conf | 0 .../docker/{ => addon}/resource-proxy/test.sh | 0 hack/contrib/docker/{ => core}/api/Dockerfile | 0 .../docker/{ => core}/api/entrypoint.sh | 0 .../docker/{ => core}/chaos/Dockerfile | 0 .../docker/{ => core}/chaos/entrypoint.sh | 0 .../docker/{ => core}/chaos/export-app/run.sh | 0 .../docker/{ => core}/eventlog/Dockerfile | 0 .../{ => core}/eventlog/build/Dockerfile | 0 .../eventlog/build/libzmq/bin/curve_keygen | Bin .../eventlog/build/libzmq/include/zmq.h | 0 .../eventlog/build/libzmq/include/zmq_utils.h | 0 .../eventlog/build/libzmq/lib/libzmq.a | Bin .../eventlog/build/libzmq/lib/libzmq.la | 0 .../eventlog/build/libzmq/lib/libzmq.so | Bin .../eventlog/build/libzmq/lib/libzmq.so.3 | Bin .../eventlog/build/libzmq/lib/libzmq.so.3.1.0 | Bin .../build/libzmq/lib/pkgconfig/libzmq.pc | 0 .../build/libzmq/share/man/man3/zmq_bind.3 | 0 .../build/libzmq/share/man/man3/zmq_close.3 | 0 .../build/libzmq/share/man/man3/zmq_connect.3 | 0 .../libzmq/share/man/man3/zmq_ctx_destroy.3 | 0 .../build/libzmq/share/man/man3/zmq_ctx_get.3 | 0 .../build/libzmq/share/man/man3/zmq_ctx_new.3 | 0 .../build/libzmq/share/man/man3/zmq_ctx_set.3 | 0 .../libzmq/share/man/man3/zmq_ctx_term.3 | 0 .../libzmq/share/man/man3/zmq_curve_keypair.3 | 0 .../libzmq/share/man/man3/zmq_disconnect.3 | 0 .../build/libzmq/share/man/man3/zmq_errno.3 | 0 .../libzmq/share/man/man3/zmq_getsockopt.3 | 0 .../build/libzmq/share/man/man3/zmq_init.3 | 0 .../libzmq/share/man/man3/zmq_msg_close.3 | 0 .../libzmq/share/man/man3/zmq_msg_copy.3 | 0 .../libzmq/share/man/man3/zmq_msg_data.3 | 0 .../build/libzmq/share/man/man3/zmq_msg_get.3 | 0 .../libzmq/share/man/man3/zmq_msg_init.3 | 0 .../libzmq/share/man/man3/zmq_msg_init_data.3 | 0 .../libzmq/share/man/man3/zmq_msg_init_size.3 | 0 .../libzmq/share/man/man3/zmq_msg_more.3 | 0 .../libzmq/share/man/man3/zmq_msg_move.3 | 0 .../libzmq/share/man/man3/zmq_msg_recv.3 | 0 .../libzmq/share/man/man3/zmq_msg_send.3 | 0 .../build/libzmq/share/man/man3/zmq_msg_set.3 | 0 .../libzmq/share/man/man3/zmq_msg_size.3 | 0 .../build/libzmq/share/man/man3/zmq_poll.3 | 0 .../build/libzmq/share/man/man3/zmq_proxy.3 | 0 .../build/libzmq/share/man/man3/zmq_recv.3 | 0 .../build/libzmq/share/man/man3/zmq_recvmsg.3 | 0 .../build/libzmq/share/man/man3/zmq_send.3 | 0 .../libzmq/share/man/man3/zmq_send_const.3 | 0 .../build/libzmq/share/man/man3/zmq_sendmsg.3 | 0 .../libzmq/share/man/man3/zmq_setsockopt.3 | 0 .../build/libzmq/share/man/man3/zmq_socket.3 | 0 .../share/man/man3/zmq_socket_monitor.3 | 0 .../libzmq/share/man/man3/zmq_strerror.3 | 0 .../build/libzmq/share/man/man3/zmq_term.3 | 0 .../build/libzmq/share/man/man3/zmq_unbind.3 | 0 .../build/libzmq/share/man/man3/zmq_version.3 | 0 .../libzmq/share/man/man3/zmq_z85_decode.3 | 0 .../libzmq/share/man/man3/zmq_z85_encode.3 | 0 .../build/libzmq/share/man/man7/zmq.7 | 0 .../build/libzmq/share/man/man7/zmq_curve.7 | 0 .../build/libzmq/share/man/man7/zmq_epgm.7 | 0 .../build/libzmq/share/man/man7/zmq_inproc.7 | 0 .../build/libzmq/share/man/man7/zmq_ipc.7 | 0 .../build/libzmq/share/man/man7/zmq_null.7 | 0 .../build/libzmq/share/man/man7/zmq_pgm.7 | 0 .../build/libzmq/share/man/man7/zmq_plain.7 | 0 .../build/libzmq/share/man/man7/zmq_tcp.7 | 0 .../docker/{ => core}/eventlog/entrypoint.sh | 0 .../docker/{ => core}/gateway/.dockerignore | 0 .../docker/{ => core}/gateway/Dockerfile | 0 .../gateway/build-openresty/Dockerfile | 0 .../docker/{ => core}/gateway/entrypoint.sh | 0 .../ingress-controller/clean-nginx-conf.sh | 0 .../gateway/ingress-controller/indent.sh | 0 .../gateway/nginx/conf/default-server.crt | 0 .../gateway/nginx/conf/default-server.key | 0 .../{ => core}/gateway/nginx/conf/mime.types | 0 .../{ => core}/gateway/nginx/lua/balancer.lua | 0 .../gateway/nginx/lua/balancer/chash.lua | 0 .../gateway/nginx/lua/balancer/ewma.lua | 0 .../gateway/nginx/lua/balancer/resty.lua | 0 .../nginx/lua/balancer/round_robin.lua | 0 .../gateway/nginx/lua/balancer/sticky.lua | 0 .../{ => core}/gateway/nginx/lua/config.lua | 0 .../gateway/nginx/lua/defaultPage.lua | 0 .../gateway/nginx/lua/html/default.html | 0 .../{ => core}/gateway/nginx/lua/monitor.lua | 0 .../gateway/nginx/lua/resty/chash.lua | 0 .../gateway/nginx/lua/resty/cookie.lua | 0 .../gateway/nginx/lua/resty/roundrobin.lua | 0 .../gateway/nginx/lua/tcp_udp_balancer.lua | 0 .../nginx/lua/tcp_udp_configuration.lua | 0 .../{ => core}/gateway/nginx/lua/util.lua | 0 .../{ => core}/gateway/nginx/lua/util/dns.lua | 0 .../gateway/nginx/lua/util/nodemap.lua | 0 .../gateway/nginx/lua/util/resolv_conf.lua | 0 .../gateway/nginx/lua/util/split.lua | 0 .../{ => core}/gateway/nginxtmp/nginx.tmpl | 0 .../{ => core}/gateway/nginxtmp/servers.tmpl | 0 .../gateway/nginxtmp/tcp_udp_servers.tmpl | 0 .../gateway/nginxtmp/upstreams-tcp.tmpl | 0 hack/contrib/docker/{ => core}/mq/Dockerfile | 0 .../docker/{ => core}/mq/entrypoint.sh | 0 .../{ => core}/node-proxy/.dockerignore | 0 .../docker/{ => core}/node-proxy/Dockerfile | 0 .../{ => core}/node-proxy/entrypoint.sh | 0 .../docker/{ => core}/worker/Dockerfile | 0 .../docker/{ => core}/worker/entrypoint.sh | 0 .../nginx/lua/vendor/so/librestychash.so | Bin 23912 -> 0 bytes hack/contrib/docker/webcli/Dockerfile | 10 - hack/contrib/docker/webcli/entrypoint.sh | 8 - localbuild.sh | 2 +- monitor/callback/webcli.go | 87 --------- monitor/monitor.go | 1 - monitor/prometheus/rules_manager.go | 121 +++++------- node/nodem/logger/streamlog/streamlog.go | 126 +------------ node/nodem/monitor/monitor_manager.go | 2 +- release.sh | 55 ++++-- webcli/cmd/main.go | 60 ------ worker/appm/thirdparty/endpoints.go | 143 -------------- 170 files changed, 164 insertions(+), 1399 deletions(-) rename {webcli => api/webcli}/app/app.go (80%) rename {webcli => api/webcli}/app/app_test.go (100%) rename {webcli => api/webcli}/app/exec.go (100%) rename {webcli => api/webcli}/app/http_logger.go (100%) rename {webcli => api/webcli}/app/monitor.go (98%) rename {webcli => api/webcli}/app/out.go (96%) rename {webcli => api/webcli}/app/tty_test.go (100%) rename {webcli => api/webcli}/app/ws_wrapper.go (100%) rename {webcli => api/webcli}/term/BUILD (100%) rename {webcli => api/webcli}/term/resize.go (100%) rename {webcli => api/webcli}/term/resizeevents.go (100%) rename {webcli => api/webcli}/term/resizeevents_windows.go (100%) rename {webcli => api/webcli}/term/term.go (100%) rename {webcli => api/webcli}/term/term_writer.go (100%) rename {webcli => api/webcli}/term/term_writer_test.go (100%) delete mode 100644 cmd/webcli/option/option.go delete mode 100644 cmd/webcli/server/server.go delete mode 100644 cmd/webcli/webcli.go delete mode 100644 db/3rd_party_db_test.go delete mode 100644 gateway/annotations/cookie/cookie_test.go delete mode 100644 gateway/annotations/header/header_test.go delete mode 100644 gateway/annotations/l4/l4_test.go delete mode 100644 gateway/annotations/proxy/proxy_test.go delete mode 100644 hack/contrib/docker/README.md rename hack/contrib/docker/{ => addon}/grctl/Dockerfile (100%) rename hack/contrib/docker/{ => addon}/grctl/README.md (100%) rename hack/contrib/docker/{ => addon}/grctl/entrypoint.sh (100%) rename hack/contrib/docker/{ => addon}/grctl/grctl.yaml (100%) rename hack/contrib/docker/{ => addon}/init-probe/Dockerfile (100%) rename hack/contrib/docker/{ => addon}/init-probe/entrypoint.sh (100%) rename hack/contrib/docker/{ => addon}/mesh-data-panel/Dockerfile (100%) rename hack/contrib/docker/{ => addon}/mesh-data-panel/Makefile (100%) rename hack/contrib/docker/{ => addon}/mesh-data-panel/README.md (100%) rename hack/contrib/docker/{ => addon}/mesh-data-panel/envoy_config.yaml (100%) rename hack/contrib/docker/{ => addon}/mesh-data-panel/start.sh (100%) rename hack/contrib/docker/{ => addon}/monitor/Dockerfile (100%) rename hack/contrib/docker/{ => addon}/monitor/entrypoint.sh (100%) rename hack/contrib/docker/{ => addon}/resource-proxy/Dockerfile (100%) rename hack/contrib/docker/{ => addon}/resource-proxy/README.md (100%) rename hack/contrib/docker/{ => addon}/resource-proxy/docker-entrypoint.sh (100%) rename hack/contrib/docker/{ => addon}/resource-proxy/ignorebuild (100%) rename hack/contrib/docker/{ => addon}/resource-proxy/resource-proxy.conf (100%) rename hack/contrib/docker/{ => addon}/resource-proxy/test.sh (100%) rename hack/contrib/docker/{ => core}/api/Dockerfile (100%) rename hack/contrib/docker/{ => core}/api/entrypoint.sh (100%) rename hack/contrib/docker/{ => core}/chaos/Dockerfile (100%) rename hack/contrib/docker/{ => core}/chaos/entrypoint.sh (100%) rename hack/contrib/docker/{ => core}/chaos/export-app/run.sh (100%) rename hack/contrib/docker/{ => core}/eventlog/Dockerfile (100%) rename hack/contrib/docker/{ => core}/eventlog/build/Dockerfile (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/bin/curve_keygen (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/include/zmq.h (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/include/zmq_utils.h (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/lib/libzmq.a (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/lib/libzmq.la (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/lib/libzmq.so (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/lib/libzmq.so.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/lib/libzmq.so.3.1.0 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/lib/pkgconfig/libzmq.pc (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_bind.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_close.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_connect.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_ctx_destroy.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_ctx_get.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_ctx_new.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_ctx_set.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_ctx_term.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_curve_keypair.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_disconnect.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_errno.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_getsockopt.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_init.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_close.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_copy.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_data.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_get.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_init.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_init_data.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_init_size.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_more.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_move.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_recv.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_send.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_set.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_msg_size.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_poll.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_proxy.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_recv.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_recvmsg.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_send.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_send_const.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_sendmsg.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_setsockopt.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_socket.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_socket_monitor.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_strerror.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_term.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_unbind.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_version.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_z85_decode.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man3/zmq_z85_encode.3 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_curve.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_epgm.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_inproc.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_ipc.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_null.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_pgm.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_plain.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/build/libzmq/share/man/man7/zmq_tcp.7 (100%) rename hack/contrib/docker/{ => core}/eventlog/entrypoint.sh (100%) rename hack/contrib/docker/{ => core}/gateway/.dockerignore (100%) rename hack/contrib/docker/{ => core}/gateway/Dockerfile (100%) rename hack/contrib/docker/{ => core}/gateway/build-openresty/Dockerfile (100%) rename hack/contrib/docker/{ => core}/gateway/entrypoint.sh (100%) rename hack/contrib/docker/{ => core}/gateway/ingress-controller/clean-nginx-conf.sh (100%) rename hack/contrib/docker/{ => core}/gateway/ingress-controller/indent.sh (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/conf/default-server.crt (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/conf/default-server.key (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/conf/mime.types (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/balancer.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/balancer/chash.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/balancer/ewma.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/balancer/resty.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/balancer/round_robin.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/balancer/sticky.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/config.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/defaultPage.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/html/default.html (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/monitor.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/resty/chash.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/resty/cookie.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/resty/roundrobin.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/tcp_udp_balancer.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/tcp_udp_configuration.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/util.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/util/dns.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/util/nodemap.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/util/resolv_conf.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginx/lua/util/split.lua (100%) rename hack/contrib/docker/{ => core}/gateway/nginxtmp/nginx.tmpl (100%) rename hack/contrib/docker/{ => core}/gateway/nginxtmp/servers.tmpl (100%) rename hack/contrib/docker/{ => core}/gateway/nginxtmp/tcp_udp_servers.tmpl (100%) rename hack/contrib/docker/{ => core}/gateway/nginxtmp/upstreams-tcp.tmpl (100%) rename hack/contrib/docker/{ => core}/mq/Dockerfile (100%) rename hack/contrib/docker/{ => core}/mq/entrypoint.sh (100%) rename hack/contrib/docker/{ => core}/node-proxy/.dockerignore (100%) rename hack/contrib/docker/{ => core}/node-proxy/Dockerfile (100%) rename hack/contrib/docker/{ => core}/node-proxy/entrypoint.sh (100%) rename hack/contrib/docker/{ => core}/worker/Dockerfile (100%) rename hack/contrib/docker/{ => core}/worker/entrypoint.sh (100%) delete mode 100755 hack/contrib/docker/gateway/nginx/lua/vendor/so/librestychash.so delete mode 100644 hack/contrib/docker/webcli/Dockerfile delete mode 100755 hack/contrib/docker/webcli/entrypoint.sh delete mode 100644 monitor/callback/webcli.go delete mode 100644 webcli/cmd/main.go delete mode 100644 worker/appm/thirdparty/endpoints.go diff --git a/Makefile b/Makefile index eae508844..cd918b588 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,6 @@ GO_LDFLAGS=-ldflags " -w" VERSION=$(shell git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3) WORK_DIR=/go/src/github.com/goodrain/rainbond BASE_NAME=rainbond -BASE_DOCKER=./hack/contrib/docker default: help all: image ## build linux binaries, build images for docker diff --git a/api/api_routers/websocket/websocket.go b/api/api_routers/websocket/websocket.go index 638bcefb8..1745ee199 100644 --- a/api/api_routers/websocket/websocket.go +++ b/api/api_routers/websocket/websocket.go @@ -27,7 +27,6 @@ import ( //Routes routes func Routes() chi.Router { r := chi.NewRouter() - r.Get("/docker_console", controller.GetDockerConsole().Get) r.Get("/docker_log", controller.GetDockerLog().Get) r.Get("/monitor_message", controller.GetMonitorMessage().Get) r.Get("/new_monitor_message", controller.GetMonitorMessage().Get) diff --git a/api/controller/websocket.go b/api/controller/websocket.go index 4818ba6ad..be38f6d60 100644 --- a/api/controller/websocket.go +++ b/api/controller/websocket.go @@ -33,33 +33,8 @@ import ( "github.com/sirupsen/logrus" ) -//DockerConsole docker console -type DockerConsole struct { - socketproxy proxy.Proxy -} - -var defaultDockerConsoleEndpoints = []string{"127.0.0.1:7171"} var defaultEventLogEndpoints = []string{"local=>rbd-eventlog:6363"} -var dockerConsole *DockerConsole - -//GetDockerConsole get Docker console -func GetDockerConsole() *DockerConsole { - if dockerConsole != nil { - return dockerConsole - } - dockerConsole = &DockerConsole{ - socketproxy: proxy.CreateProxy("dockerconsole", "websocket", defaultDockerConsoleEndpoints), - } - discover.GetEndpointDiscover().AddProject("acp_webcli", dockerConsole.socketproxy) - return dockerConsole -} - -//Get get -func (d DockerConsole) Get(w http.ResponseWriter, r *http.Request) { - d.socketproxy.Proxy(w, r) -} - var dockerLog *DockerLog //DockerLog docker log diff --git a/api/server/api.go b/api/server/api.go index bf8b9e155..6587aea10 100644 --- a/api/server/api.go +++ b/api/server/api.go @@ -22,6 +22,7 @@ import ( "context" "crypto/tls" "crypto/x509" + "fmt" "io/ioutil" "log" "net/http" @@ -30,6 +31,7 @@ import ( "time" "github.com/goodrain/rainbond/api/handler" + "github.com/goodrain/rainbond/api/webcli/app" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/common/version" @@ -65,17 +67,23 @@ type Manager struct { prometheusProxy proxy.Proxy etcdcli *clientv3.Client exporter *metric.Exporter + websocketModuls map[string]CustomModule +} + +type CustomModule interface { + SetRoute(*chi.Mux) error } //NewManager newManager -func NewManager(c option.Config, etcdcli *clientv3.Client) *Manager { +func NewManager(c option.Config, etcdcli *clientv3.Client, webapp *app.App) *Manager { ctx, cancel := context.WithCancel(context.Background()) manager := &Manager{ - ctx: ctx, - cancel: cancel, - conf: c, - stopChan: make(chan struct{}), - etcdcli: etcdcli, + ctx: ctx, + cancel: cancel, + conf: c, + stopChan: make(chan struct{}), + etcdcli: etcdcli, + websocketModuls: map[string]CustomModule{"webapp": webapp}, } r := chi.NewRouter() manager.r = r @@ -144,7 +152,7 @@ func (m *Manager) Stop() error { } //Run run -func (m *Manager) Run() { +func (m *Manager) Run() error { v2R := &version2.V2{ Cfg: &m.conf, } @@ -161,17 +169,22 @@ func (m *Manager) Run() { m.r.Mount("/license", license.Routes()) //兼容老版docker m.r.Get("/v1/etcd/event-log/instances", m.EventLogInstance) - m.r.Get("/kubernetes/dashboard", m.KuberntesDashboardAPI) //prometheus单节点代理 m.r.Get("/api/v1/query", m.PrometheusAPI) m.r.Get("/api/v1/query_range", m.PrometheusAPI) - //开启对浏览器的websocket服务和文件服务 + + //set websocket route + websocketRouter := chi.NewRouter() + websocketRouter.Mount("/", websocket.Routes()) + websocketRouter.Mount("/logs", websocket.LogRoutes()) + websocketRouter.Mount("/app", websocket.AppRoutes()) + for _, c := range m.websocketModuls { + if err := c.SetRoute(websocketRouter); err != nil { + return fmt.Errorf("set websocket custom route failire %s", err.Error()) + } + } go func() { - websocketRouter := chi.NewRouter() - websocketRouter.Mount("/", websocket.Routes()) - websocketRouter.Mount("/logs", websocket.LogRoutes()) - websocketRouter.Mount("/app", websocket.AppRoutes()) if m.conf.WebsocketSSL { logrus.Infof("websocket listen on (HTTPs) %s", m.conf.WebsocketAddr) logrus.Fatal(http.ListenAndServeTLS(m.conf.WebsocketAddr, m.conf.WebsocketCertFile, m.conf.WebsocketKeyFile, websocketRouter)) @@ -203,6 +216,7 @@ func (m *Manager) Run() { } logrus.Infof("api listen on (HTTP) %s", m.conf.APIAddr) logrus.Fatal(http.ListenAndServe(m.conf.APIAddr, m.r)) + return nil } //EventLogInstance 查询event server instance diff --git a/webcli/app/app.go b/api/webcli/app/app.go similarity index 80% rename from webcli/app/app.go rename to api/webcli/app/app.go index ed07d33ee..296733786 100644 --- a/webcli/app/app.go +++ b/api/webcli/app/app.go @@ -23,24 +23,20 @@ import ( "crypto/md5" "encoding/hex" "encoding/json" - "errors" "fmt" - "net" "net/http" "strings" "text/template" + "github.com/go-chi/chi" "github.com/sirupsen/logrus" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "github.com/barnettZQG/gotty/server" "github.com/barnettZQG/gotty/webtty" - httputil "github.com/goodrain/rainbond/util/http" k8sutil "github.com/goodrain/rainbond/util/k8s" "github.com/gorilla/websocket" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/yudai/umutex" api "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -92,11 +88,9 @@ var Version = "0.0.2" //DefaultOptions - var DefaultOptions = Options{ - Address: "", - Port: "8080", PermitWrite: true, IndexFile: "", - TitleFormat: "GRTTY Command", + TitleFormat: "GRTTY Command For Component Instance", EnableReconnect: true, ReconnectTime: 10, CloseSignal: 1, // syscall.SIGHUP @@ -138,57 +132,11 @@ func New(options *Options) (*App, error) { } //Run Run -func (app *App) Run() error { - - endpoint := net.JoinHostPort(app.options.Address, app.options.Port) - - wsHandler := http.HandlerFunc(app.handleWS) - health := http.HandlerFunc(app.healthCheck) - - var siteMux = http.NewServeMux() - - siteHandler := http.Handler(siteMux) - - siteHandler = wrapHeaders(siteHandler) - - exporter := NewExporter() - prometheus.MustRegister(exporter) - - wsMux := http.NewServeMux() - wsMux.Handle("/", siteHandler) - wsMux.Handle("/docker_console", wsHandler) - wsMux.Handle("/health", health) - wsMux.Handle("/metrics", promhttp.Handler()) - - siteHandler = (http.Handler(wsMux)) - - siteHandler = wrapLogger(siteHandler) - - server, err := app.makeServer(endpoint, &siteHandler) - if err != nil { - return errors.New("Failed to build server: " + err.Error()) - } - go func() { - logrus.Printf("webcli listen %s", endpoint) - logrus.Fatal(server.ListenAndServe()) - logrus.Printf("Exiting...") - }() +func (app *App) SetRoute(route *chi.Mux) error { + route.Handle("/docker_console", http.HandlerFunc(app.handleWS)) return nil } -func (app *App) makeServer(addr string, handler *http.Handler) (*http.Server, error) { - server := &http.Server{ - Addr: addr, - Handler: *handler, - } - - return server, nil -} - -func (app *App) healthCheck(w http.ResponseWriter, r *http.Request) { - httputil.ReturnSuccess(r, w, map[string]string{"status": "health", "info": "webcli service health"}) -} - func (app *App) handleWS(w http.ResponseWriter, r *http.Request) { logrus.Printf("New client connected: %s", r.RemoteAddr) @@ -278,11 +226,6 @@ func (app *App) handleWS(w http.ResponseWriter, r *http.Request) { } } -//Exit - -func (app *App) Exit() (firstCall bool) { - return true -} - func (app *App) createKubeClient() error { config, err := k8sutil.NewRestConfig(app.options.K8SConfPath) if err != nil { @@ -360,21 +303,6 @@ func (app *App) NewRequest(podName, namespace, containerName string, command []s return req } -func wrapLogger(handler http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - rw := &responseWrapper{w, 200} - handler.ServeHTTP(rw, r) - logrus.Printf("%s %d %s %s", r.RemoteAddr, rw.status, r.Method, r.URL.Path) - }) -} - -func wrapHeaders(handler http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Server", "GoTTY/"+Version) - handler.ServeHTTP(w, r) - }) -} - func md5Func(str string) string { h := md5.New() h.Write([]byte(str)) diff --git a/webcli/app/app_test.go b/api/webcli/app/app_test.go similarity index 100% rename from webcli/app/app_test.go rename to api/webcli/app/app_test.go diff --git a/webcli/app/exec.go b/api/webcli/app/exec.go similarity index 100% rename from webcli/app/exec.go rename to api/webcli/app/exec.go diff --git a/webcli/app/http_logger.go b/api/webcli/app/http_logger.go similarity index 100% rename from webcli/app/http_logger.go rename to api/webcli/app/http_logger.go diff --git a/webcli/app/monitor.go b/api/webcli/app/monitor.go similarity index 98% rename from webcli/app/monitor.go rename to api/webcli/app/monitor.go index 89426f01b..8d2bab147 100644 --- a/webcli/app/monitor.go +++ b/api/webcli/app/monitor.go @@ -7,7 +7,7 @@ import ( // Metric name parts. const ( // Namespace for all metrics. - namespace = "webcli" + namespace = "api" // Subsystem(s). exporter = "exporter" ) diff --git a/webcli/app/out.go b/api/webcli/app/out.go similarity index 96% rename from webcli/app/out.go rename to api/webcli/app/out.go index e599d84dc..5dea79624 100644 --- a/webcli/app/out.go +++ b/api/webcli/app/out.go @@ -22,7 +22,7 @@ import ( "io" "os" - "github.com/goodrain/rainbond/webcli/term" + "github.com/goodrain/rainbond/api/webcli/term" "github.com/sirupsen/logrus" ) diff --git a/webcli/app/tty_test.go b/api/webcli/app/tty_test.go similarity index 100% rename from webcli/app/tty_test.go rename to api/webcli/app/tty_test.go diff --git a/webcli/app/ws_wrapper.go b/api/webcli/app/ws_wrapper.go similarity index 100% rename from webcli/app/ws_wrapper.go rename to api/webcli/app/ws_wrapper.go diff --git a/webcli/term/BUILD b/api/webcli/term/BUILD similarity index 100% rename from webcli/term/BUILD rename to api/webcli/term/BUILD diff --git a/webcli/term/resize.go b/api/webcli/term/resize.go similarity index 100% rename from webcli/term/resize.go rename to api/webcli/term/resize.go diff --git a/webcli/term/resizeevents.go b/api/webcli/term/resizeevents.go similarity index 100% rename from webcli/term/resizeevents.go rename to api/webcli/term/resizeevents.go diff --git a/webcli/term/resizeevents_windows.go b/api/webcli/term/resizeevents_windows.go similarity index 100% rename from webcli/term/resizeevents_windows.go rename to api/webcli/term/resizeevents_windows.go diff --git a/webcli/term/term.go b/api/webcli/term/term.go similarity index 100% rename from webcli/term/term.go rename to api/webcli/term/term.go diff --git a/webcli/term/term_writer.go b/api/webcli/term/term_writer.go similarity index 100% rename from webcli/term/term_writer.go rename to api/webcli/term/term_writer.go diff --git a/webcli/term/term_writer_test.go b/api/webcli/term/term_writer_test.go similarity index 100% rename from webcli/term/term_writer_test.go rename to api/webcli/term/term_writer_test.go diff --git a/cmd/api/server/server.go b/cmd/api/server/server.go index 88566e1cf..82bd425de 100644 --- a/cmd/api/server/server.go +++ b/cmd/api/server/server.go @@ -23,17 +23,17 @@ import ( "os" "os/signal" "syscall" - - - rainbondscheme "github.com/goodrain/rainbond/pkg/generated/clientset/versioned/scheme" + "github.com/goodrain/rainbond/api/controller" "github.com/goodrain/rainbond/api/db" "github.com/goodrain/rainbond/api/discover" "github.com/goodrain/rainbond/api/handler" "github.com/goodrain/rainbond/api/server" + "github.com/goodrain/rainbond/api/webcli/app" "github.com/goodrain/rainbond/cmd/api/option" "github.com/goodrain/rainbond/event" "github.com/goodrain/rainbond/pkg/generated/clientset/versioned" + rainbondscheme "github.com/goodrain/rainbond/pkg/generated/clientset/versioned/scheme" etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" "github.com/goodrain/rainbond/worker/client" @@ -118,19 +118,30 @@ func Run(s *option.APIServer) error { return err } - //初始化 middleware + //init middleware handler.InitProxy(s.Config) - //创建handle + + //create handle if err := handler.InitHandle(s.Config, etcdClientArgs, cli, etcdcli, clientset, rainbondClient, k8sClient); err != nil { logrus.Errorf("init all handle error, %v", err) return err } - //创建v2Router manager + + // webcli modul + option := app.DefaultOptions + option.K8SConfPath = s.Config.KubeConfigPath + cliapp, err := app.New(&option) + if err != nil { + logrus.Errorf("new webcli app failure %v", err) + return err + } + + // create v2Router manager if err := controller.CreateV2RouterManager(s.Config, cli); err != nil { logrus.Errorf("create v2 route manager error, %v", err) } - // 启动api - apiManager := server.NewManager(s.Config, etcdcli) + // start server listen + apiManager := server.NewManager(s.Config, etcdcli, cliapp) if err := apiManager.Start(); err != nil { return err } @@ -138,7 +149,7 @@ func Run(s *option.APIServer) error { logrus.Info("api router is running...") //step finally: listen Signal - term := make(chan os.Signal) + term := make(chan os.Signal, 1) signal.Notify(term, os.Interrupt, syscall.SIGTERM) select { case s := <-term: diff --git a/cmd/webcli/option/option.go b/cmd/webcli/option/option.go deleted file mode 100644 index 1929a1dca..000000000 --- a/cmd/webcli/option/option.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package option - -import ( - "fmt" - - "github.com/sirupsen/logrus" - "github.com/spf13/pflag" -) - -//Config config server -type Config struct { - EtcdEndPoints []string - EtcdCaFile string - EtcdCertFile string - EtcdKeyFile string - Address string - HostIP string - HostName string - Port int - SessionKey string - PrometheusMetricPath string - K8SConfPath string -} - -//WebCliServer container webcli server -type WebCliServer struct { - Config - LogLevel string -} - -//NewWebCliServer new server -func NewWebCliServer() *WebCliServer { - return &WebCliServer{} -} - -//AddFlags config -func (a *WebCliServer) AddFlags(fs *pflag.FlagSet) { - fs.StringVar(&a.LogLevel, "log-level", "info", "the webcli log level") - fs.StringSliceVar(&a.EtcdEndPoints, "etcd-endpoints", []string{"http://127.0.0.1:2379"}, "etcd v3 cluster endpoints.") - fs.StringVar(&a.EtcdCaFile, "etcd-ca", "", "etcd tls ca file ") - fs.StringVar(&a.EtcdCertFile, "etcd-cert", "", "etcd tls cert file") - fs.StringVar(&a.EtcdKeyFile, "etcd-key", "", "etcd http tls cert key file") - fs.StringVar(&a.Address, "address", "0.0.0.0", "server listen address") - fs.StringVar(&a.HostIP, "hostIP", "", "Current node Intranet IP") - fs.StringVar(&a.HostName, "hostName", "", "Current node host name") - fs.StringVar(&a.K8SConfPath, "kube-conf", "", "absolute path to the kubeconfig file") - fs.IntVar(&a.Port, "port", 7171, "server listen port") - fs.StringVar(&a.PrometheusMetricPath, "metric", "/metrics", "prometheus metrics path") -} - -//SetLog 设置log -func (a *WebCliServer) SetLog() { - level, err := logrus.ParseLevel(a.LogLevel) - if err != nil { - fmt.Println("set log level error." + err.Error()) - return - } - logrus.SetLevel(level) -} diff --git a/cmd/webcli/server/server.go b/cmd/webcli/server/server.go deleted file mode 100644 index 8fc198ca3..000000000 --- a/cmd/webcli/server/server.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package server - -import ( - "os" - "os/signal" - "strconv" - "syscall" - - "github.com/goodrain/rainbond/cmd/webcli/option" - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/webcli/app" - - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" -) - -//Run start run -func Run(s *option.WebCliServer) error { - errChan := make(chan error) - option := app.DefaultOptions - option.Address = s.Address - option.Port = strconv.Itoa(s.Port) - option.SessionKey = s.SessionKey - option.K8SConfPath = s.K8SConfPath - ap, err := app.New(&option) - if err != nil { - return err - } - err = ap.Run() - if err != nil { - return err - } - defer ap.Exit() - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: s.EtcdEndPoints, - CaFile: s.EtcdCaFile, - CertFile: s.EtcdCertFile, - KeyFile: s.EtcdKeyFile, - } - keepalive, err := discover.CreateKeepAlive(etcdClientArgs, "acp_webcli", s.HostName, s.HostIP, s.Port) - if err != nil { - return err - } - if err := keepalive.Start(); err != nil { - return err - } - defer keepalive.Stop() - //step finally: listen Signal - term := make(chan os.Signal) - signal.Notify(term, os.Interrupt, syscall.SIGTERM) - select { - case <-term: - logrus.Warn("Received SIGTERM, exiting gracefully...") - case err := <-errChan: - logrus.Errorf("Received a error %s, exiting gracefully...", err.Error()) - } - logrus.Info("See you next time!") - return nil -} diff --git a/cmd/webcli/webcli.go b/cmd/webcli/webcli.go deleted file mode 100644 index 4da25ea23..000000000 --- a/cmd/webcli/webcli.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package main - -import ( - "fmt" - "os" - - "github.com/goodrain/rainbond/cmd" - "github.com/goodrain/rainbond/cmd/webcli/option" - "github.com/goodrain/rainbond/cmd/webcli/server" - - "github.com/spf13/pflag" -) - -func main() { - if len(os.Args) > 1 && os.Args[1] == "version" { - cmd.ShowVersion("webcli") - } - s := option.NewWebCliServer() - s.AddFlags(pflag.CommandLine) - pflag.Parse() - s.SetLog() - if err := server.Run(s); err != nil { - fmt.Fprintf(os.Stderr, "error: %v\n", err) - os.Exit(1) - } -} diff --git a/cmd/windowsutil/windowsutil.go b/cmd/windowsutil/windowsutil.go index 364191e06..a5d0b15e2 100644 --- a/cmd/windowsutil/windowsutil.go +++ b/cmd/windowsutil/windowsutil.go @@ -16,6 +16,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +// +build windows + package main import ( diff --git a/db/3rd_party_db_test.go b/db/3rd_party_db_test.go deleted file mode 100644 index 2c265a837..000000000 --- a/db/3rd_party_db_test.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package db - -import ( - "context" - "fmt" - dbconfig "github.com/goodrain/rainbond/db/config" - "github.com/goodrain/rainbond/db/model" - "github.com/goodrain/rainbond/util" - "github.com/testcontainers/testcontainers-go" - "testing" - "time" -) - -func TestEndpointDaoImpl_UpdateModel(t *testing.T) { - dbname := "region" - rootpw := "rainbond" - - ctx := context.Background() - req := testcontainers.ContainerRequest{ - Image: "mariadb", - ExposedPorts: []string{"3306/tcp"}, - Env: map[string]string{ - "MYSQL_ROOT_PASSWORD": rootpw, - "MYSQL_DATABASE": dbname, - }, - Cmd: []string{"character-set-server=utf8mb4", "collation-server=utf8mb4_unicode_ci"}, - } - mariadb, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ - ContainerRequest: req, - Started: true, - }) - if err != nil { - t.Fatal(err) - } - defer mariadb.Terminate(ctx) - - host, err := mariadb.Host(ctx) - if err != nil { - t.Error(err) - } - port, err := mariadb.MappedPort(ctx, "3306") - if err != nil { - t.Error(err) - } - - connInfo := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", "root", - rootpw, host, port.Int(), dbname) - tryTimes := 3 - for { - if err := CreateManager(dbconfig.Config{ - DBType: "mysql", - MysqlConnectionInfo: connInfo, - }); err != nil { - if tryTimes == 0 { - t.Fatalf("Connect info: %s; error creating db manager: %v", connInfo, err) - } else { - tryTimes = tryTimes - 1 - time.Sleep(10 * time.Second) - continue - } - } - break - } - - trueVal := true - falseVal := false - ep := &model.Endpoint{ - UUID: util.NewUUID(), - ServiceID: util.NewUUID(), - IP: "10.10.10.10", - IsOnline: &trueVal, - } - err = GetManager().EndpointsDao().AddModel(ep) - if err != nil { - t.Fatalf("error adding endpoint: %v", err) - } - ep.IsOnline = &falseVal - err = GetManager().EndpointsDao().UpdateModel(ep) - if err != nil { - t.Fatalf("error updating endpoint: %v", err) - } - e, err := GetManager().EndpointsDao().GetByUUID(ep.UUID) - if err != nil { - t.Fatalf("error getting endpoint: %v", err) - } - if *e.IsOnline != false { - t.Errorf("Expected %v for e.IsOnline, but returned %v", false, e.IsOnline) - } -} - -func TestEndpointDaoImpl_AddModel(t *testing.T) { - dbname := "region" - rootpw := "rainbond" - - ctx := context.Background() - req := testcontainers.ContainerRequest{ - Image: "mariadb", - ExposedPorts: []string{"3306/tcp"}, - Env: map[string]string{ - "MYSQL_ROOT_PASSWORD": rootpw, - "MYSQL_DATABASE": dbname, - }, - Cmd: []string{"character-set-server=utf8mb4", "collation-server=utf8mb4_unicode_ci"}, - } - mariadb, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ - ContainerRequest: req, - Started: true, - }) - if err != nil { - t.Fatal(err) - } - defer mariadb.Terminate(ctx) - - host, err := mariadb.Host(ctx) - if err != nil { - t.Fatal(err) - } - port, err := mariadb.MappedPort(ctx, "3306") - if err != nil { - t.Fatal(err) - } - - connInfo := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", "root", - rootpw, host, port.Int(), dbname) - tryTimes := 3 - for { - if err := CreateManager(dbconfig.Config{ - DBType: "mysql", - MysqlConnectionInfo: connInfo, - }); err != nil { - if tryTimes == 0 { - t.Fatalf("Connect info: %s; error creating db manager: %v", connInfo, err) - } else { - tryTimes = tryTimes - 1 - time.Sleep(10 * time.Second) - continue - } - } - break - } - - falseVal := false - ep := &model.Endpoint{ - UUID: util.NewUUID(), - ServiceID: util.NewUUID(), - IP: "10.10.10.10", - IsOnline: &falseVal, - } - err = GetManager().EndpointsDao().AddModel(ep) - if err != nil { - t.Fatalf("error adding endpoint: %v", err) - } - e, err := GetManager().EndpointsDao().GetByUUID(ep.UUID) - if err != nil { - t.Fatalf("error getting endpoint: %v", err) - } - if *e.IsOnline != false { - t.Errorf("Expected %v for e.IsOnline, but returned %v", false, e.IsOnline) - } -} diff --git a/gateway/annotations/cookie/cookie_test.go b/gateway/annotations/cookie/cookie_test.go deleted file mode 100644 index 716ad5576..000000000 --- a/gateway/annotations/cookie/cookie_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package cookie - -import ( - api "k8s.io/api/core/v1" - networkingv1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -func buildIngress() *networkingv1.Ingress { - defaultBackend := extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - } - - return &networkingv1.Ingress{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "foo", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.IngressSpec{ - Backend: &extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - }, - Rules: []extensions.IngressRule{ - { - Host: "foo.bar.com", - IngressRuleValue: extensions.IngressRuleValue{ - HTTP: &extensions.HTTPIngressRuleValue{ - Paths: []extensions.HTTPIngressPath{ - { - Path: "/foo", - Backend: defaultBackend, - }, - }, - }, - }, - }, - }, - }, - } -} diff --git a/gateway/annotations/header/header_test.go b/gateway/annotations/header/header_test.go deleted file mode 100644 index bcd09819e..000000000 --- a/gateway/annotations/header/header_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package header - -import ( - api "k8s.io/api/core/v1" - networkingv1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -func buildIngress() *networkingv1.Ingress { - defaultBackend := extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - } - - return &networkingv1.Ingress{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "foo", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.IngressSpec{ - Backend: &extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - }, - Rules: []extensions.IngressRule{ - { - Host: "foo.bar.com", - IngressRuleValue: extensions.IngressRuleValue{ - HTTP: &extensions.HTTPIngressRuleValue{ - Paths: []extensions.HTTPIngressPath{ - { - Path: "/foo", - Backend: defaultBackend, - }, - }, - }, - }, - }, - }, - }, - } -} diff --git a/gateway/annotations/l4/l4_test.go b/gateway/annotations/l4/l4_test.go deleted file mode 100644 index 8c0b5f127..000000000 --- a/gateway/annotations/l4/l4_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package l4 - -import ( - api "k8s.io/api/core/v1" - networkingv1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -func buildIngress() *networkingv1.Ingress { - defaultBackend := extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - } - - return &networkingv1.Ingress{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "foo", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.IngressSpec{ - Backend: &extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - }, - Rules: []extensions.IngressRule{ - { - Host: "foo.bar.com", - IngressRuleValue: extensions.IngressRuleValue{ - HTTP: &extensions.HTTPIngressRuleValue{ - Paths: []extensions.HTTPIngressPath{ - { - Path: "/foo", - Backend: defaultBackend, - }, - }, - }, - }, - }, - }, - }, - } -} diff --git a/gateway/annotations/proxy/proxy_test.go b/gateway/annotations/proxy/proxy_test.go deleted file mode 100644 index fbe1bc7cd..000000000 --- a/gateway/annotations/proxy/proxy_test.go +++ /dev/null @@ -1,178 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package proxy - -import ( - "testing" - - api "k8s.io/api/core/v1" - networkingv1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - - "github.com/goodrain/rainbond/gateway/annotations/parser" - "github.com/goodrain/rainbond/gateway/annotations/resolver" - "github.com/goodrain/rainbond/gateway/defaults" -) - -func buildIngress() *networkingv1.Ingress { - defaultBackend := extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - } - - return &networkingv1.Ingress{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "foo", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.IngressSpec{ - Backend: &extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), - }, - Rules: []extensions.IngressRule{ - { - Host: "foo.bar.com", - IngressRuleValue: extensions.IngressRuleValue{ - HTTP: &extensions.HTTPIngressRuleValue{ - Paths: []extensions.HTTPIngressPath{ - { - Path: "/foo", - Backend: defaultBackend, - }, - }, - }, - }, - }, - }, - }, - } -} - -type mockBackend struct { - resolver.Mock -} - -func (m mockBackend) GetDefaultBackend() defaults.Backend { - return defaults.Backend{ - ProxyConnectTimeout: 10, - ProxySendTimeout: 15, - ProxyReadTimeout: 20, - ProxyBuffersNumber: 4, - ProxyBufferSize: "10k", - ProxyBodySize: 3, - ProxyNextUpstream: "error timeout", - ProxyNextUpstreamTries: 3, - ProxyNextUpstreamTimeout: 0, - ProxyRequestBuffering: "on", - ProxyBuffering: "off", - } -} - -func TestProxy(t *testing.T) { - ing := buildIngress() - - data := map[string]string{} - data[parser.GetAnnotationWithPrefix("proxy-connect-timeout")] = "1" - data[parser.GetAnnotationWithPrefix("proxy-send-timeout")] = "2" - data[parser.GetAnnotationWithPrefix("proxy-read-timeout")] = "3" - data[parser.GetAnnotationWithPrefix("proxy-buffers-number")] = "8" - data[parser.GetAnnotationWithPrefix("proxy-buffer-size")] = "1k" - data[parser.GetAnnotationWithPrefix("proxy-body-size")] = "2" - data[parser.GetAnnotationWithPrefix("proxy-next-upstream")] = "off" - data[parser.GetAnnotationWithPrefix("proxy-next-upstream-tries")] = "3" - data[parser.GetAnnotationWithPrefix("proxy-request-buffering")] = "off" - data[parser.GetAnnotationWithPrefix("proxy-buffering")] = "on" - ing.SetAnnotations(data) - - i, err := NewParser(mockBackend{}).Parse(ing) - if err != nil { - t.Fatalf("unexpected error parsing a valid") - } - p, ok := i.(*Config) - if !ok { - t.Fatalf("expected a Config type") - } - if p.ConnectTimeout != 1 { - t.Errorf("expected 1 as connect-timeout but returned %v", p.ConnectTimeout) - } - if p.SendTimeout != 2 { - t.Errorf("expected 2 as send-timeout but returned %v", p.SendTimeout) - } - if p.ReadTimeout != 3 { - t.Errorf("expected 3 as read-timeout but returned %v", p.ReadTimeout) - } - if p.BuffersNumber != 8 { - t.Errorf("expected 8 as proxy-buffers-number but returned %v", p.BuffersNumber) - } - if p.BufferSize != "1k" { - t.Errorf("expected 1k as buffer-size but returned %v", p.BufferSize) - } - if p.BodySize != 2 { - t.Errorf("expected 2 as body-size but returned %v", p.BodySize) - } - if p.NextUpstreamTries != 3 { - t.Errorf("expected 3 as next-upstream-tries but returned %v", p.NextUpstreamTries) - } - if p.RequestBuffering != "off" { - t.Errorf("expected off as request-buffering but returned %v", p.RequestBuffering) - } - if p.ProxyBuffering != "on" { - t.Errorf("expected on as proxy-buffering but returned %v", p.ProxyBuffering) - } -} - -func TestProxyWithNoAnnotation(t *testing.T) { - ing := buildIngress() - - data := map[string]string{} - ing.SetAnnotations(data) - - i, err := NewParser(mockBackend{}).Parse(ing) - if err != nil { - t.Fatalf("unexpected error parsing a valid") - } - p, ok := i.(*Config) - if !ok { - t.Fatalf("expected a Config type") - } - if p.ConnectTimeout != 10 { - t.Errorf("expected 10 as connect-timeout but returned %v", p.ConnectTimeout) - } - if p.SendTimeout != 15 { - t.Errorf("expected 15 as send-timeout but returned %v", p.SendTimeout) - } - if p.ReadTimeout != 20 { - t.Errorf("expected 20 as read-timeout but returned %v", p.ReadTimeout) - } - if p.BuffersNumber != 4 { - t.Errorf("expected 4 as buffer-number but returned %v", p.BuffersNumber) - } - if p.BufferSize != "10k" { - t.Errorf("expected 10k as buffer-size but returned %v", p.BufferSize) - } - if p.BodySize != 3 { - t.Errorf("expected 3k as body-size but returned %v", p.BodySize) - } - if p.NextUpstreamTries != 3 { - t.Errorf("expected 3 as next-upstream-tries but returned %v", p.NextUpstreamTries) - } - if p.RequestBuffering != "on" { - t.Errorf("expected on as request-buffering but returned %v", p.RequestBuffering) - } -} diff --git a/gateway/annotations/rewrite/rewrite_test.go b/gateway/annotations/rewrite/rewrite_test.go index 3ac4b707c..77757cbc7 100644 --- a/gateway/annotations/rewrite/rewrite_test.go +++ b/gateway/annotations/rewrite/rewrite_test.go @@ -17,15 +17,15 @@ limitations under the License. package rewrite import ( + "testing" + "github.com/goodrain/rainbond/gateway/annotations/parser" "github.com/goodrain/rainbond/gateway/annotations/resolver" "github.com/goodrain/rainbond/gateway/defaults" - "testing" api "k8s.io/api/core/v1" networkingv1 "k8s.io/api/networking/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" ) const ( @@ -33,9 +33,10 @@ const ( ) func buildIngress() *networkingv1.Ingress { - defaultBackend := extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), + defaultBackend := networkingv1.IngressBackend{ + Service: &networkingv1.IngressServiceBackend{ + Name: "default-backend", + }, } return &networkingv1.Ingress{ @@ -43,17 +44,19 @@ func buildIngress() *networkingv1.Ingress { Name: "foo", Namespace: api.NamespaceDefault, }, - Spec: extensions.IngressSpec{ - Backend: &extensions.IngressBackend{ - ServiceName: "default-backend", - ServicePort: intstr.FromInt(80), + Spec: networkingv1.IngressSpec{ + DefaultBackend: &networkingv1.IngressBackend{ + Service: &networkingv1.IngressServiceBackend{ + Name: "default-backend", + Port: networkingv1.ServiceBackendPort{Number: 80}, + }, }, - Rules: []extensions.IngressRule{ + Rules: []networkingv1.IngressRule{ { Host: "foo.bar.com", - IngressRuleValue: extensions.IngressRuleValue{ - HTTP: &extensions.HTTPIngressRuleValue{ - Paths: []extensions.HTTPIngressPath{ + IngressRuleValue: networkingv1.IngressRuleValue{ + HTTP: &networkingv1.HTTPIngressRuleValue{ + Paths: []networkingv1.HTTPIngressPath{ { Path: "/foo", Backend: defaultBackend, diff --git a/hack/contrib/docker/README.md b/hack/contrib/docker/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/hack/contrib/docker/grctl/Dockerfile b/hack/contrib/docker/addon/grctl/Dockerfile similarity index 100% rename from hack/contrib/docker/grctl/Dockerfile rename to hack/contrib/docker/addon/grctl/Dockerfile diff --git a/hack/contrib/docker/grctl/README.md b/hack/contrib/docker/addon/grctl/README.md similarity index 100% rename from hack/contrib/docker/grctl/README.md rename to hack/contrib/docker/addon/grctl/README.md diff --git a/hack/contrib/docker/grctl/entrypoint.sh b/hack/contrib/docker/addon/grctl/entrypoint.sh similarity index 100% rename from hack/contrib/docker/grctl/entrypoint.sh rename to hack/contrib/docker/addon/grctl/entrypoint.sh diff --git a/hack/contrib/docker/grctl/grctl.yaml b/hack/contrib/docker/addon/grctl/grctl.yaml similarity index 100% rename from hack/contrib/docker/grctl/grctl.yaml rename to hack/contrib/docker/addon/grctl/grctl.yaml diff --git a/hack/contrib/docker/init-probe/Dockerfile b/hack/contrib/docker/addon/init-probe/Dockerfile similarity index 100% rename from hack/contrib/docker/init-probe/Dockerfile rename to hack/contrib/docker/addon/init-probe/Dockerfile diff --git a/hack/contrib/docker/init-probe/entrypoint.sh b/hack/contrib/docker/addon/init-probe/entrypoint.sh similarity index 100% rename from hack/contrib/docker/init-probe/entrypoint.sh rename to hack/contrib/docker/addon/init-probe/entrypoint.sh diff --git a/hack/contrib/docker/mesh-data-panel/Dockerfile b/hack/contrib/docker/addon/mesh-data-panel/Dockerfile similarity index 100% rename from hack/contrib/docker/mesh-data-panel/Dockerfile rename to hack/contrib/docker/addon/mesh-data-panel/Dockerfile diff --git a/hack/contrib/docker/mesh-data-panel/Makefile b/hack/contrib/docker/addon/mesh-data-panel/Makefile similarity index 100% rename from hack/contrib/docker/mesh-data-panel/Makefile rename to hack/contrib/docker/addon/mesh-data-panel/Makefile diff --git a/hack/contrib/docker/mesh-data-panel/README.md b/hack/contrib/docker/addon/mesh-data-panel/README.md similarity index 100% rename from hack/contrib/docker/mesh-data-panel/README.md rename to hack/contrib/docker/addon/mesh-data-panel/README.md diff --git a/hack/contrib/docker/mesh-data-panel/envoy_config.yaml b/hack/contrib/docker/addon/mesh-data-panel/envoy_config.yaml similarity index 100% rename from hack/contrib/docker/mesh-data-panel/envoy_config.yaml rename to hack/contrib/docker/addon/mesh-data-panel/envoy_config.yaml diff --git a/hack/contrib/docker/mesh-data-panel/start.sh b/hack/contrib/docker/addon/mesh-data-panel/start.sh similarity index 100% rename from hack/contrib/docker/mesh-data-panel/start.sh rename to hack/contrib/docker/addon/mesh-data-panel/start.sh diff --git a/hack/contrib/docker/monitor/Dockerfile b/hack/contrib/docker/addon/monitor/Dockerfile similarity index 100% rename from hack/contrib/docker/monitor/Dockerfile rename to hack/contrib/docker/addon/monitor/Dockerfile diff --git a/hack/contrib/docker/monitor/entrypoint.sh b/hack/contrib/docker/addon/monitor/entrypoint.sh similarity index 100% rename from hack/contrib/docker/monitor/entrypoint.sh rename to hack/contrib/docker/addon/monitor/entrypoint.sh diff --git a/hack/contrib/docker/resource-proxy/Dockerfile b/hack/contrib/docker/addon/resource-proxy/Dockerfile similarity index 100% rename from hack/contrib/docker/resource-proxy/Dockerfile rename to hack/contrib/docker/addon/resource-proxy/Dockerfile diff --git a/hack/contrib/docker/resource-proxy/README.md b/hack/contrib/docker/addon/resource-proxy/README.md similarity index 100% rename from hack/contrib/docker/resource-proxy/README.md rename to hack/contrib/docker/addon/resource-proxy/README.md diff --git a/hack/contrib/docker/resource-proxy/docker-entrypoint.sh b/hack/contrib/docker/addon/resource-proxy/docker-entrypoint.sh similarity index 100% rename from hack/contrib/docker/resource-proxy/docker-entrypoint.sh rename to hack/contrib/docker/addon/resource-proxy/docker-entrypoint.sh diff --git a/hack/contrib/docker/resource-proxy/ignorebuild b/hack/contrib/docker/addon/resource-proxy/ignorebuild similarity index 100% rename from hack/contrib/docker/resource-proxy/ignorebuild rename to hack/contrib/docker/addon/resource-proxy/ignorebuild diff --git a/hack/contrib/docker/resource-proxy/resource-proxy.conf b/hack/contrib/docker/addon/resource-proxy/resource-proxy.conf similarity index 100% rename from hack/contrib/docker/resource-proxy/resource-proxy.conf rename to hack/contrib/docker/addon/resource-proxy/resource-proxy.conf diff --git a/hack/contrib/docker/resource-proxy/test.sh b/hack/contrib/docker/addon/resource-proxy/test.sh similarity index 100% rename from hack/contrib/docker/resource-proxy/test.sh rename to hack/contrib/docker/addon/resource-proxy/test.sh diff --git a/hack/contrib/docker/api/Dockerfile b/hack/contrib/docker/core/api/Dockerfile similarity index 100% rename from hack/contrib/docker/api/Dockerfile rename to hack/contrib/docker/core/api/Dockerfile diff --git a/hack/contrib/docker/api/entrypoint.sh b/hack/contrib/docker/core/api/entrypoint.sh similarity index 100% rename from hack/contrib/docker/api/entrypoint.sh rename to hack/contrib/docker/core/api/entrypoint.sh diff --git a/hack/contrib/docker/chaos/Dockerfile b/hack/contrib/docker/core/chaos/Dockerfile similarity index 100% rename from hack/contrib/docker/chaos/Dockerfile rename to hack/contrib/docker/core/chaos/Dockerfile diff --git a/hack/contrib/docker/chaos/entrypoint.sh b/hack/contrib/docker/core/chaos/entrypoint.sh similarity index 100% rename from hack/contrib/docker/chaos/entrypoint.sh rename to hack/contrib/docker/core/chaos/entrypoint.sh diff --git a/hack/contrib/docker/chaos/export-app/run.sh b/hack/contrib/docker/core/chaos/export-app/run.sh similarity index 100% rename from hack/contrib/docker/chaos/export-app/run.sh rename to hack/contrib/docker/core/chaos/export-app/run.sh diff --git a/hack/contrib/docker/eventlog/Dockerfile b/hack/contrib/docker/core/eventlog/Dockerfile similarity index 100% rename from hack/contrib/docker/eventlog/Dockerfile rename to hack/contrib/docker/core/eventlog/Dockerfile diff --git a/hack/contrib/docker/eventlog/build/Dockerfile b/hack/contrib/docker/core/eventlog/build/Dockerfile similarity index 100% rename from hack/contrib/docker/eventlog/build/Dockerfile rename to hack/contrib/docker/core/eventlog/build/Dockerfile diff --git a/hack/contrib/docker/eventlog/build/libzmq/bin/curve_keygen b/hack/contrib/docker/core/eventlog/build/libzmq/bin/curve_keygen similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/bin/curve_keygen rename to hack/contrib/docker/core/eventlog/build/libzmq/bin/curve_keygen diff --git a/hack/contrib/docker/eventlog/build/libzmq/include/zmq.h b/hack/contrib/docker/core/eventlog/build/libzmq/include/zmq.h similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/include/zmq.h rename to hack/contrib/docker/core/eventlog/build/libzmq/include/zmq.h diff --git a/hack/contrib/docker/eventlog/build/libzmq/include/zmq_utils.h b/hack/contrib/docker/core/eventlog/build/libzmq/include/zmq_utils.h similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/include/zmq_utils.h rename to hack/contrib/docker/core/eventlog/build/libzmq/include/zmq_utils.h diff --git a/hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.a b/hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.a similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.a rename to hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.a diff --git a/hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.la b/hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.la similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.la rename to hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.la diff --git a/hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.so b/hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.so similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.so rename to hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.so diff --git a/hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.so.3 b/hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.so.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.so.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.so.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.so.3.1.0 b/hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.so.3.1.0 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/lib/libzmq.so.3.1.0 rename to hack/contrib/docker/core/eventlog/build/libzmq/lib/libzmq.so.3.1.0 diff --git a/hack/contrib/docker/eventlog/build/libzmq/lib/pkgconfig/libzmq.pc b/hack/contrib/docker/core/eventlog/build/libzmq/lib/pkgconfig/libzmq.pc similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/lib/pkgconfig/libzmq.pc rename to hack/contrib/docker/core/eventlog/build/libzmq/lib/pkgconfig/libzmq.pc diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_bind.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_bind.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_bind.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_bind.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_close.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_close.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_close.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_close.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_connect.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_connect.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_connect.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_connect.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_destroy.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_destroy.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_destroy.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_destroy.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_get.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_get.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_get.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_get.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_new.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_new.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_new.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_new.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_set.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_set.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_set.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_set.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_term.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_term.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_ctx_term.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_ctx_term.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_curve_keypair.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_curve_keypair.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_curve_keypair.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_curve_keypair.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_disconnect.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_disconnect.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_disconnect.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_disconnect.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_errno.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_errno.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_errno.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_errno.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_getsockopt.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_getsockopt.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_getsockopt.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_getsockopt.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_init.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_init.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_init.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_init.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_close.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_close.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_close.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_close.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_copy.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_copy.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_copy.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_copy.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_data.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_data.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_data.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_data.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_get.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_get.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_get.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_get.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_init.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_init.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_init.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_init.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_init_data.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_init_data.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_init_data.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_init_data.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_init_size.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_init_size.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_init_size.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_init_size.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_more.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_more.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_more.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_more.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_move.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_move.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_move.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_move.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_recv.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_recv.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_recv.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_recv.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_send.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_send.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_send.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_send.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_set.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_set.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_set.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_set.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_size.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_size.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_msg_size.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_msg_size.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_poll.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_poll.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_poll.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_poll.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_proxy.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_proxy.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_proxy.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_proxy.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_recv.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_recv.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_recv.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_recv.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_recvmsg.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_recvmsg.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_recvmsg.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_recvmsg.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_send.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_send.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_send.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_send.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_send_const.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_send_const.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_send_const.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_send_const.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_sendmsg.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_sendmsg.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_sendmsg.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_sendmsg.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_setsockopt.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_setsockopt.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_setsockopt.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_setsockopt.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_socket.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_socket.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_socket.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_socket.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_socket_monitor.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_socket_monitor.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_socket_monitor.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_socket_monitor.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_strerror.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_strerror.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_strerror.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_strerror.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_term.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_term.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_term.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_term.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_unbind.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_unbind.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_unbind.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_unbind.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_version.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_version.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_version.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_version.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_z85_decode.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_z85_decode.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_z85_decode.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_z85_decode.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_z85_encode.3 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_z85_encode.3 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man3/zmq_z85_encode.3 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man3/zmq_z85_encode.3 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_curve.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_curve.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_curve.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_curve.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_epgm.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_epgm.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_epgm.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_epgm.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_inproc.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_inproc.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_inproc.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_inproc.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_ipc.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_ipc.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_ipc.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_ipc.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_null.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_null.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_null.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_null.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_pgm.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_pgm.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_pgm.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_pgm.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_plain.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_plain.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_plain.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_plain.7 diff --git a/hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_tcp.7 b/hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_tcp.7 similarity index 100% rename from hack/contrib/docker/eventlog/build/libzmq/share/man/man7/zmq_tcp.7 rename to hack/contrib/docker/core/eventlog/build/libzmq/share/man/man7/zmq_tcp.7 diff --git a/hack/contrib/docker/eventlog/entrypoint.sh b/hack/contrib/docker/core/eventlog/entrypoint.sh similarity index 100% rename from hack/contrib/docker/eventlog/entrypoint.sh rename to hack/contrib/docker/core/eventlog/entrypoint.sh diff --git a/hack/contrib/docker/gateway/.dockerignore b/hack/contrib/docker/core/gateway/.dockerignore similarity index 100% rename from hack/contrib/docker/gateway/.dockerignore rename to hack/contrib/docker/core/gateway/.dockerignore diff --git a/hack/contrib/docker/gateway/Dockerfile b/hack/contrib/docker/core/gateway/Dockerfile similarity index 100% rename from hack/contrib/docker/gateway/Dockerfile rename to hack/contrib/docker/core/gateway/Dockerfile diff --git a/hack/contrib/docker/gateway/build-openresty/Dockerfile b/hack/contrib/docker/core/gateway/build-openresty/Dockerfile similarity index 100% rename from hack/contrib/docker/gateway/build-openresty/Dockerfile rename to hack/contrib/docker/core/gateway/build-openresty/Dockerfile diff --git a/hack/contrib/docker/gateway/entrypoint.sh b/hack/contrib/docker/core/gateway/entrypoint.sh similarity index 100% rename from hack/contrib/docker/gateway/entrypoint.sh rename to hack/contrib/docker/core/gateway/entrypoint.sh diff --git a/hack/contrib/docker/gateway/ingress-controller/clean-nginx-conf.sh b/hack/contrib/docker/core/gateway/ingress-controller/clean-nginx-conf.sh similarity index 100% rename from hack/contrib/docker/gateway/ingress-controller/clean-nginx-conf.sh rename to hack/contrib/docker/core/gateway/ingress-controller/clean-nginx-conf.sh diff --git a/hack/contrib/docker/gateway/ingress-controller/indent.sh b/hack/contrib/docker/core/gateway/ingress-controller/indent.sh similarity index 100% rename from hack/contrib/docker/gateway/ingress-controller/indent.sh rename to hack/contrib/docker/core/gateway/ingress-controller/indent.sh diff --git a/hack/contrib/docker/gateway/nginx/conf/default-server.crt b/hack/contrib/docker/core/gateway/nginx/conf/default-server.crt similarity index 100% rename from hack/contrib/docker/gateway/nginx/conf/default-server.crt rename to hack/contrib/docker/core/gateway/nginx/conf/default-server.crt diff --git a/hack/contrib/docker/gateway/nginx/conf/default-server.key b/hack/contrib/docker/core/gateway/nginx/conf/default-server.key similarity index 100% rename from hack/contrib/docker/gateway/nginx/conf/default-server.key rename to hack/contrib/docker/core/gateway/nginx/conf/default-server.key diff --git a/hack/contrib/docker/gateway/nginx/conf/mime.types b/hack/contrib/docker/core/gateway/nginx/conf/mime.types similarity index 100% rename from hack/contrib/docker/gateway/nginx/conf/mime.types rename to hack/contrib/docker/core/gateway/nginx/conf/mime.types diff --git a/hack/contrib/docker/gateway/nginx/lua/balancer.lua b/hack/contrib/docker/core/gateway/nginx/lua/balancer.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/balancer.lua rename to hack/contrib/docker/core/gateway/nginx/lua/balancer.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/balancer/chash.lua b/hack/contrib/docker/core/gateway/nginx/lua/balancer/chash.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/balancer/chash.lua rename to hack/contrib/docker/core/gateway/nginx/lua/balancer/chash.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/balancer/ewma.lua b/hack/contrib/docker/core/gateway/nginx/lua/balancer/ewma.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/balancer/ewma.lua rename to hack/contrib/docker/core/gateway/nginx/lua/balancer/ewma.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/balancer/resty.lua b/hack/contrib/docker/core/gateway/nginx/lua/balancer/resty.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/balancer/resty.lua rename to hack/contrib/docker/core/gateway/nginx/lua/balancer/resty.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/balancer/round_robin.lua b/hack/contrib/docker/core/gateway/nginx/lua/balancer/round_robin.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/balancer/round_robin.lua rename to hack/contrib/docker/core/gateway/nginx/lua/balancer/round_robin.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/balancer/sticky.lua b/hack/contrib/docker/core/gateway/nginx/lua/balancer/sticky.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/balancer/sticky.lua rename to hack/contrib/docker/core/gateway/nginx/lua/balancer/sticky.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/config.lua b/hack/contrib/docker/core/gateway/nginx/lua/config.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/config.lua rename to hack/contrib/docker/core/gateway/nginx/lua/config.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/defaultPage.lua b/hack/contrib/docker/core/gateway/nginx/lua/defaultPage.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/defaultPage.lua rename to hack/contrib/docker/core/gateway/nginx/lua/defaultPage.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/html/default.html b/hack/contrib/docker/core/gateway/nginx/lua/html/default.html similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/html/default.html rename to hack/contrib/docker/core/gateway/nginx/lua/html/default.html diff --git a/hack/contrib/docker/gateway/nginx/lua/monitor.lua b/hack/contrib/docker/core/gateway/nginx/lua/monitor.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/monitor.lua rename to hack/contrib/docker/core/gateway/nginx/lua/monitor.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/resty/chash.lua b/hack/contrib/docker/core/gateway/nginx/lua/resty/chash.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/resty/chash.lua rename to hack/contrib/docker/core/gateway/nginx/lua/resty/chash.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/resty/cookie.lua b/hack/contrib/docker/core/gateway/nginx/lua/resty/cookie.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/resty/cookie.lua rename to hack/contrib/docker/core/gateway/nginx/lua/resty/cookie.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/resty/roundrobin.lua b/hack/contrib/docker/core/gateway/nginx/lua/resty/roundrobin.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/resty/roundrobin.lua rename to hack/contrib/docker/core/gateway/nginx/lua/resty/roundrobin.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/tcp_udp_balancer.lua b/hack/contrib/docker/core/gateway/nginx/lua/tcp_udp_balancer.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/tcp_udp_balancer.lua rename to hack/contrib/docker/core/gateway/nginx/lua/tcp_udp_balancer.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/tcp_udp_configuration.lua b/hack/contrib/docker/core/gateway/nginx/lua/tcp_udp_configuration.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/tcp_udp_configuration.lua rename to hack/contrib/docker/core/gateway/nginx/lua/tcp_udp_configuration.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/util.lua b/hack/contrib/docker/core/gateway/nginx/lua/util.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/util.lua rename to hack/contrib/docker/core/gateway/nginx/lua/util.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/util/dns.lua b/hack/contrib/docker/core/gateway/nginx/lua/util/dns.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/util/dns.lua rename to hack/contrib/docker/core/gateway/nginx/lua/util/dns.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/util/nodemap.lua b/hack/contrib/docker/core/gateway/nginx/lua/util/nodemap.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/util/nodemap.lua rename to hack/contrib/docker/core/gateway/nginx/lua/util/nodemap.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/util/resolv_conf.lua b/hack/contrib/docker/core/gateway/nginx/lua/util/resolv_conf.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/util/resolv_conf.lua rename to hack/contrib/docker/core/gateway/nginx/lua/util/resolv_conf.lua diff --git a/hack/contrib/docker/gateway/nginx/lua/util/split.lua b/hack/contrib/docker/core/gateway/nginx/lua/util/split.lua similarity index 100% rename from hack/contrib/docker/gateway/nginx/lua/util/split.lua rename to hack/contrib/docker/core/gateway/nginx/lua/util/split.lua diff --git a/hack/contrib/docker/gateway/nginxtmp/nginx.tmpl b/hack/contrib/docker/core/gateway/nginxtmp/nginx.tmpl similarity index 100% rename from hack/contrib/docker/gateway/nginxtmp/nginx.tmpl rename to hack/contrib/docker/core/gateway/nginxtmp/nginx.tmpl diff --git a/hack/contrib/docker/gateway/nginxtmp/servers.tmpl b/hack/contrib/docker/core/gateway/nginxtmp/servers.tmpl similarity index 100% rename from hack/contrib/docker/gateway/nginxtmp/servers.tmpl rename to hack/contrib/docker/core/gateway/nginxtmp/servers.tmpl diff --git a/hack/contrib/docker/gateway/nginxtmp/tcp_udp_servers.tmpl b/hack/contrib/docker/core/gateway/nginxtmp/tcp_udp_servers.tmpl similarity index 100% rename from hack/contrib/docker/gateway/nginxtmp/tcp_udp_servers.tmpl rename to hack/contrib/docker/core/gateway/nginxtmp/tcp_udp_servers.tmpl diff --git a/hack/contrib/docker/gateway/nginxtmp/upstreams-tcp.tmpl b/hack/contrib/docker/core/gateway/nginxtmp/upstreams-tcp.tmpl similarity index 100% rename from hack/contrib/docker/gateway/nginxtmp/upstreams-tcp.tmpl rename to hack/contrib/docker/core/gateway/nginxtmp/upstreams-tcp.tmpl diff --git a/hack/contrib/docker/mq/Dockerfile b/hack/contrib/docker/core/mq/Dockerfile similarity index 100% rename from hack/contrib/docker/mq/Dockerfile rename to hack/contrib/docker/core/mq/Dockerfile diff --git a/hack/contrib/docker/mq/entrypoint.sh b/hack/contrib/docker/core/mq/entrypoint.sh similarity index 100% rename from hack/contrib/docker/mq/entrypoint.sh rename to hack/contrib/docker/core/mq/entrypoint.sh diff --git a/hack/contrib/docker/node-proxy/.dockerignore b/hack/contrib/docker/core/node-proxy/.dockerignore similarity index 100% rename from hack/contrib/docker/node-proxy/.dockerignore rename to hack/contrib/docker/core/node-proxy/.dockerignore diff --git a/hack/contrib/docker/node-proxy/Dockerfile b/hack/contrib/docker/core/node-proxy/Dockerfile similarity index 100% rename from hack/contrib/docker/node-proxy/Dockerfile rename to hack/contrib/docker/core/node-proxy/Dockerfile diff --git a/hack/contrib/docker/node-proxy/entrypoint.sh b/hack/contrib/docker/core/node-proxy/entrypoint.sh similarity index 100% rename from hack/contrib/docker/node-proxy/entrypoint.sh rename to hack/contrib/docker/core/node-proxy/entrypoint.sh diff --git a/hack/contrib/docker/worker/Dockerfile b/hack/contrib/docker/core/worker/Dockerfile similarity index 100% rename from hack/contrib/docker/worker/Dockerfile rename to hack/contrib/docker/core/worker/Dockerfile diff --git a/hack/contrib/docker/worker/entrypoint.sh b/hack/contrib/docker/core/worker/entrypoint.sh similarity index 100% rename from hack/contrib/docker/worker/entrypoint.sh rename to hack/contrib/docker/core/worker/entrypoint.sh diff --git a/hack/contrib/docker/gateway/nginx/lua/vendor/so/librestychash.so b/hack/contrib/docker/gateway/nginx/lua/vendor/so/librestychash.so deleted file mode 100755 index c9610ab082977cf0fda10e547e4a0b2fb5a65329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23912 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 diff --git a/hack/contrib/docker/webcli/Dockerfile b/hack/contrib/docker/webcli/Dockerfile deleted file mode 100644 index 33901264e..000000000 --- a/hack/contrib/docker/webcli/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM goodrainapps/alpine:3.4 -ARG RELEASE_DESC -ENV PORT 7070 - -ADD rainbond-webcli /usr/bin/rainbond-webcli -ADD entrypoint.sh /entrypoint.sh -RUN mkdir /root/.kube - -ENV RELEASE_DESC=${RELEASE_DESC} -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/hack/contrib/docker/webcli/entrypoint.sh b/hack/contrib/docker/webcli/entrypoint.sh deleted file mode 100755 index 1f0c2db58..000000000 --- a/hack/contrib/docker/webcli/entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -if [ "$1" = "bash" ];then - exec /bin/bash -elif [ "$1" = "version" ];then - /usr/bin/rainbond-webcli version -else - exec /usr/bin/rainbond-webcli $@ -fi \ No newline at end of file diff --git a/localbuild.sh b/localbuild.sh index b65d238b0..735a54076 100755 --- a/localbuild.sh +++ b/localbuild.sh @@ -16,7 +16,7 @@ function prepare() { [ ! -d "$distdir/usr/local/" ] && mkdir -p $distdir/usr/local/bin } -build_items=(api builder grctl monitor mq node-proxy webcli worker eventlog init-probe mesh-data-panel) +build_items=(api builder grctl monitor mq node-proxy worker eventlog init-probe mesh-data-panel) function localbuild() { if [ "$1" = "all" ]; then diff --git a/monitor/callback/webcli.go b/monitor/callback/webcli.go deleted file mode 100644 index ced4543cc..000000000 --- a/monitor/callback/webcli.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" -) - -//Webcli webcli -type Webcli struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoints -func (w *Webcli) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(w.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", w.Name()) - return - } - - w.sortedEndpoints = newArr - - scrape := w.toScrape() - w.Prometheus.UpdateScrape(scrape) -} - -//Error handle error -func (w *Webcli) Error(err error) { - logrus.Error(err) -} - -//Name name -func (w *Webcli) Name() string { - return "webcli" -} - -func (w *Webcli) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(w.sortedEndpoints)) - for _, end := range w.sortedEndpoints { - ts = append(ts, end) - } - return &prometheus.ScrapeConfig{ - JobName: w.Name(), - ScrapeInterval: model.Duration(time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - HonorLabels: true, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "service_name": model.LabelValue(w.Name()), - "component": model.LabelValue(w.Name()), - }, - }, - }, - }, - } -} diff --git a/monitor/monitor.go b/monitor/monitor.go index ac5758bfa..d698eec16 100644 --- a/monitor/monitor.go +++ b/monitor/monitor.go @@ -54,7 +54,6 @@ type Monitor struct { func (d *Monitor) Start() { d.discoverv1.AddProject("prometheus", &callback.Prometheus{Prometheus: d.manager}) d.discoverv1.AddProject("event_log_event_http", &callback.EventLog{Prometheus: d.manager}) - d.discoverv1.AddProject("acp_webcli", &callback.Webcli{Prometheus: d.manager}) d.discoverv1.AddProject("gateway", &callback.GatewayNode{Prometheus: d.manager}) d.discoverv2.AddProject("builder", &callback.Builder{Prometheus: d.manager}) d.discoverv2.AddProject("mq", &callback.Mq{Prometheus: d.manager}) diff --git a/monitor/prometheus/rules_manager.go b/monitor/prometheus/rules_manager.go index f9d02da6c..e0a3184ad 100644 --- a/monitor/prometheus/rules_manager.go +++ b/monitor/prometheus/rules_manager.go @@ -55,10 +55,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { a := &AlertingRulesManager{ RulesConfig: &AlertingRulesConfig{ Groups: []*AlertingNameConfig{ - &AlertingNameConfig{ + { Name: "GatewayHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "GatewayDown", Expr: "absent(up{job=\"gateway\"}) or up{job=\"gateway\"}==0", For: "20s", @@ -68,7 +68,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "gateway is down", }, }, - &RulesConfig{ + { Alert: "RequestSizeTooMuch", Expr: "sum by (instance, host) (rate(gateway_request_size_sum[5m])) > 1024*1024*10", For: "20s", @@ -78,7 +78,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "Too much traffic", }, }, - &RulesConfig{ + { Alert: "ResponseSizeTooMuch", Expr: "sum by (instance, host) (rate(gateway_response_size_sum[5m])) > 1024*1024*10", For: "20s", @@ -88,14 +88,14 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "Too much traffic", }, }, - &RulesConfig{ + { Alert: "RequestMany", Expr: "rate(gateway_requests[5m]) > 200", For: "10s", Labels: commonLables, Annotations: map[string]string{"description": "http doamin {{ $labels.host }} per-second requests {{ humanize $value }}, more than 200"}, }, - &RulesConfig{ + { Alert: "FailureRequestMany", Expr: "rate(gateway_requests{status=~\"5..\"}[5m]) > 5", For: "10s", @@ -104,10 +104,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "BuilderHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "BuilderDown", Expr: "absent(up{component=\"builder\"}) or up{component=\"builder\"}==0", For: "1m", @@ -117,14 +117,14 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "builder(rbd-chaos) is down", }, }, - &RulesConfig{ + { Alert: "BuilderUnhealthy", Expr: "builder_exporter_health_status == 0", For: "3m", Labels: commonLables, Annotations: map[string]string{"description": "builder unhealthy"}, }, - &RulesConfig{ + { Alert: "BuilderTaskError", Expr: "builder_exporter_builder_current_concurrent_task == builder_exporter_builder_max_concurrent_task", For: "20s", @@ -133,10 +133,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "WorkerHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "WorkerDown", Expr: "absent(up{component=\"worker\"}) or up{component=\"worker\"}==0", For: "5m", @@ -146,7 +146,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "worker is down", }, }, - &RulesConfig{ + { Alert: "WorkerUnhealthy", Expr: "app_resource_exporter_health_status == 0", For: "5m", @@ -156,7 +156,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "description": "worker node {{ $labels.instance }} is unhealthy", }, }, - &RulesConfig{ + { Alert: "WorkerTaskError", Expr: "app_resource_exporter_worker_task_error > 50", For: "5m", @@ -167,10 +167,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "MqHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "MqDown", Expr: "absent(up{component=\"mq\"}) or up{component=\"mq\"}==0", For: "2m", @@ -180,14 +180,14 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "mq is down", }, }, - &RulesConfig{ + { Alert: "MqUnhealthy", Expr: "acp_mq_exporter_health_status == 0", For: "3m", Labels: commonLables, Annotations: map[string]string{"summary": "mq unhealthy"}, }, - &RulesConfig{ + { Alert: "MqMessageQueueBlock", Expr: "acp_mq_queue_message_number > 0", For: "1m", @@ -199,17 +199,17 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "EventlogHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "EventLogUnhealthy", Expr: "event_log_exporter_health_status == 0", For: "3m", Labels: commonLables, Annotations: map[string]string{"summary": "eventlog unhealthy"}, }, - &RulesConfig{ + { Alert: "EventLogDown", Expr: "absent(up{component=\"eventlog\"}) or up{component=\"eventlog\"}==0", For: "3m", @@ -221,39 +221,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ - Name: "WebcliHealth", - Rules: []*RulesConfig{ - &RulesConfig{ - Alert: "WebcliDown", - Expr: "absent(up{component=\"webcli\"}) or up{component=\"webcli\"}==0", - For: "20s", - Labels: commonLables, - Annotations: map[string]string{ - "description": "webcli node {{ $labels.instance }} maybe down", - "summary": "webcli is down", - }, - }, - &RulesConfig{ - Alert: "WebcliUnhealthy", - Expr: "webcli_exporter_health_status == 0", - For: "3m", - Labels: commonLables, - Annotations: map[string]string{"summary": "webcli unhealthy"}, - }, - &RulesConfig{ - Alert: "WebcliUnhealthy", - Expr: "rate(webcli_exporter_execute_command_failed[5m]) > 5", - For: "3m", - Labels: commonLables, - Annotations: map[string]string{"summary": "The number of errors that occurred while executing the command was greater than 5 per-second."}, - }, - }, - }, - &AlertingNameConfig{ + { Name: "NodeHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "NodeDown", Expr: "absent(up{component=\"rbd_node\"}) or up{component=\"rbd_node\"} == 0", For: "30s", @@ -263,42 +234,42 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "rbd_node is down", }, }, - &RulesConfig{ + { Alert: "HighCpuUsageOnNode", Expr: "sum by(instance) (rate(process_cpu_seconds_total[5m])) * 100 > 70", For: "5m", Labels: commonLables, Annotations: map[string]string{"description": "{{ $labels.instance }} is using a LOT of CPU. CPU usage is {{ humanize $value}}%.", "summary": "HIGH CPU USAGE WARNING ON '{{ $labels.instance }}'"}, }, - &RulesConfig{ + { Alert: "HighLoadOnNode", Expr: "count by (instance) (node_load5) > count by(instance)(count by(job, instance, cpu)(node_cpu))", For: "5m", Labels: commonLables, Annotations: map[string]string{"description": "{{ $labels.instance }} has a high load average. Load Average 5m is {{ humanize $value}}.", "summary": "HIGH LOAD AVERAGE WARNING ON '{{ $labels.instance }}'"}, }, - &RulesConfig{ + { Alert: "InodeFreerateLow", Expr: "node_filesystem_files_free{fstype=~\"ext4|xfs\"} / node_filesystem_files{fstype=~\"ext4|xfs\"} < 0.3", For: "5m", Labels: commonLables, Annotations: map[string]string{"description": "the inode free rate is low of node {{ $labels.instance }}, current value is {{ humanize $value}}."}, }, - &RulesConfig{ + { Alert: "HighRootdiskUsageOnNode", Expr: "(node_filesystem_size{mountpoint='/'} - node_filesystem_free{mountpoint='/'}) * 100 / node_filesystem_size{mountpoint='/'} > 85", For: "5m", Labels: commonLables, Annotations: map[string]string{"description": "More than 85% of disk used. Disk usage {{ humanize $value }} mountpoint {{ $labels.mountpoint }}%.", "summary": "LOW DISK SPACE WARING:NODE '{{ $labels.instance }}"}, }, - &RulesConfig{ + { Alert: "HighDockerdiskUsageOnNode", Expr: "(node_filesystem_size{mountpoint='/var/lib/docker'} - node_filesystem_free{mountpoint='/var/lib/docker'}) * 100 / node_filesystem_size{mountpoint='/var/lib/docker'} > 85", For: "5m", Labels: commonLables, Annotations: map[string]string{"description": "More than 85% of disk used. Disk usage {{ humanize $value }} mountpoint {{ $labels.mountpoint }}%.", "summary": "LOW DISK SPACE WARING:NODE '{{ $labels.instance }}"}, }, - &RulesConfig{ + { Alert: "HighMemoryUsageOnNode", Expr: "((node_memory_MemTotal - node_memory_MemAvailable) / node_memory_MemTotal) * 100 > 80", For: "5m", @@ -307,10 +278,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "ClusterHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "InsufficientClusteMemoryResources", Expr: "max(rbd_api_exporter_cluster_memory_total) - max(sum(namespace_resource_memory_request) by (instance)) < 2048", For: "2m", @@ -320,7 +291,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "Insufficient Cluster Memory Resources", }, }, - &RulesConfig{ + { Alert: "InsufficientClusteCPUResources", Expr: "max(rbd_api_exporter_cluster_cpu_total) - max(sum(namespace_resource_cpu_request) by (instance)) < 500", For: "2m", @@ -330,7 +301,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "Insufficient Cluster CPU Resources", }, }, - &RulesConfig{ + { Alert: "InsufficientTenantResources", Expr: "sum(rbd_api_exporter_tenant_memory_limit) by(namespace) - sum(namespace_resource_memory_request)by (namespace) < sum(rbd_api_exporter_tenant_memory_limit) by(namespace) *0.2 and sum(rbd_api_exporter_tenant_memory_limit) by(namespace) > 0", For: "2m", @@ -342,10 +313,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "EtcdHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "EtcdDown", Expr: "absent(up{component=\"etcd\"}) or up{component=\"etcd\"}==0", For: "1m", @@ -355,7 +326,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "etcd node is down", }, }, - &RulesConfig{ + { Alert: "EtcdLoseLeader", Expr: "etcd_server_has_leader == 0", For: "1m", @@ -365,7 +336,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "etcd lose leader", }, }, - &RulesConfig{ + { Alert: "InsufficientMembers", Expr: "count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)", For: "1m", @@ -375,7 +346,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "etcd cluster insufficient members", }, }, - &RulesConfig{ + { Alert: "HighNumberOfLeaderChanges", Expr: "increase(etcd_server_leader_changes_seen_total{job=\"etcd\"}[1h]) > 3", For: "1m", @@ -385,7 +356,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "a high number of leader changes within the etcd cluster are happening", }, }, - &RulesConfig{ + { Alert: "HighNumberOfFailedGRPCRequests", Expr: "sum(rate(etcd_grpc_requests_failed_total{job=\"etcd\"}[5m])) BY (grpc_method) / sum(rate(etcd_grpc_total{job=\"etcd\"}[5m])) BY (grpc_method) > 0.05", For: "5m", @@ -395,7 +366,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "a high number of gRPC requests are failing", }, }, - &RulesConfig{ + { Alert: "HighNumberOfFailedHTTPRequests", Expr: "sum(rate(etcd_http_failed_total{job=\"etcd\"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job=\"etcd\"}[5m]))BY (method) > 0.05", For: "1m", @@ -405,7 +376,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "a high number of HTTP requests are failing", }, }, - &RulesConfig{ + { Alert: "GRPCRequestsSlow", Expr: "histogram_quantile(0.99, rate(etcd_grpc_unary_requests_duration_seconds_bucket[5m])) > 0.15", For: "1m", @@ -415,7 +386,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "slow gRPC requests", }, }, - &RulesConfig{ + { Alert: "HighNumberOfFailedHTTPRequests", Expr: "sum(rate(etcd_http_failed_total{job=\"etcd\"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job=\"etcd\"}[5m]))BY (method) > 0.05", For: "1m", @@ -425,7 +396,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "a high number of HTTP requests are failing", }, }, - &RulesConfig{ + { Alert: "HighNumberOfFailedHTTPRequests", Expr: "sum(rate(etcd_http_failed_total{job=\"etcd\"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job=\"etcd\"}[5m]))BY (method) > 0.05", For: "1m", @@ -435,7 +406,7 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { "summary": "a high number of HTTP requests are failing", }, }, - &RulesConfig{ + { Alert: "DatabaseSpaceExceeded", Expr: "etcd_mvcc_db_total_size_in_bytes/etcd_server_quota_backend_bytes > 0.80", For: "1m", @@ -448,10 +419,10 @@ func NewRulesManager(config *option.Config) *AlertingRulesManager { }, }, }, - &AlertingNameConfig{ + { Name: "APIHealth", Rules: []*RulesConfig{ - &RulesConfig{ + { Alert: "APIDown", Expr: "absent(up{job=\"rbdapi\"}) or up{job=\"rbdapi\"}==0", For: "1m", diff --git a/node/nodem/logger/streamlog/streamlog.go b/node/nodem/logger/streamlog/streamlog.go index 23af54b4c..6ec630e9f 100644 --- a/node/nodem/logger/streamlog/streamlog.go +++ b/node/nodem/logger/streamlog/streamlog.go @@ -11,7 +11,6 @@ import ( "net/url" "strings" "time" - "unicode/utf8" "golang.org/x/net/context" @@ -28,45 +27,8 @@ const name = "streamlog" const defaultClusterAddress = "http://rbd-eventlog:6363/docker-instance" const defaultAddress = "rbd-eventlog:6362" -var etcdV3Endpoints = []string{"rbd-etcd:2379"} var clusterAddress = []string{defaultClusterAddress} -//Dis dis manage -type Dis struct { - discoverAddress string -} - -func (c *Dis) discoverEventServer() { - for { - res, err := http.DefaultClient.Get(c.discoverAddress) - if err != nil { - logrus.Error("discover event_log_event_http app endpoints error, ", err.Error()) - } - if res != nil && res.Body != nil { - re, err := ParseResponseBody(res.Body) - if err != nil { - logrus.Error("discover event_log_event_http app endpoints parse body error, ", err.Error()) - } - if re.List != nil { - var servers []string - for _, en := range re.List { - if en.URL != "" { - if strings.HasPrefix(en.URL, "http") { - servers = append(servers, en.URL+"/docker-instance") - } else { - servers = append(servers, "http://"+en.URL+"/docker-instance") - } - } - } - if len(servers) > 0 { - clusterAddress = servers - } - } - } - time.Sleep(time.Second * 10) - } -} - //ResponseBody api返回数据格式 type ResponseBody struct { ValidationError url.Values `json:"validation_error,omitempty"` @@ -105,8 +67,6 @@ func init() { if err := logger.RegisterLogOptValidator(name, ValidateLogOpt); err != nil { logrus.Fatal(err) } - dis := Dis{discoverAddress: "http://127.0.0.1:6100/v2/apps/event_log_event_http/discover"} - go dis.discoverEventServer() } //StreamLog 消息流log @@ -115,14 +75,12 @@ type StreamLog struct { serviceID string tenantID string containerID string - errorQueue [][]byte reConnecting chan bool serverAddress string ctx context.Context cancel context.CancelFunc cacheSize int cacheQueue chan string - lock sync.Mutex config map[string]string intervalSendMicrosecondTime int64 minIntervalSendMicrosecondTime int64 @@ -196,10 +154,7 @@ func getTCPConnConfig(serviceID, address string) string { if address == "" { address = GetLogAddress(serviceID) } - if strings.HasPrefix(address, "tcp://") { - address = address[6:] - } - return address + return strings.TrimPrefix(address, "tcp://") } //ValidateLogOpt 验证参数 @@ -239,7 +194,6 @@ func (s *StreamLog) send() { continue } s.sendMsg(msg) - break case <-s.ctx.Done(): close(s.closedChan) return @@ -293,21 +247,6 @@ func (s *StreamLog) Log(msg *logger.Message) error { return nil } -func isConnectionClosed(err error) bool { - if err == errClosed || err == errNoConnect { - return true - } - if strings.HasSuffix(err.Error(), "i/o timeout") { - return true - } - errMsg := err.Error() - ok := strings.HasSuffix(errMsg, "connection refused") || strings.HasSuffix(errMsg, "use of closed network connection") - if !ok { - return strings.HasSuffix(errMsg, "broken pipe") || strings.HasSuffix(errMsg, "connection reset by peer") - } - return ok -} - func (s *StreamLog) reConect() { s.reConnecting <- true defer func() { @@ -404,66 +343,3 @@ func getLogAddress(clusterAddress []string) string { logrus.Warning("no cluster is running. return default address") return defaultAddress } - -func ffjsonWriteJSONBytesAsString(buf *bytes.Buffer, s []byte) { - const hex = "0123456789abcdef" - - buf.WriteByte('"') - start := 0 - for i := 0; i < len(s); { - if b := s[i]; b < utf8.RuneSelf { - if 0x20 <= b && b != '\\' && b != '"' && b != '<' && b != '>' && b != '&' { - i++ - continue - } - if start < i { - buf.Write(s[start:i]) - } - switch b { - case '\\', '"': - buf.WriteByte('\\') - buf.WriteByte(b) - case '\n': - buf.WriteByte('\\') - buf.WriteByte('n') - case '\r': - buf.WriteByte('\\') - buf.WriteByte('r') - default: - - buf.WriteString(`\u00`) - buf.WriteByte(hex[b>>4]) - buf.WriteByte(hex[b&0xF]) - } - i++ - start = i - continue - } - c, size := utf8.DecodeRune(s[i:]) - if c == utf8.RuneError && size == 1 { - if start < i { - buf.Write(s[start:i]) - } - buf.WriteString(`\ufffd`) - i += size - start = i - continue - } - - if c == '\u2028' || c == '\u2029' { - if start < i { - buf.Write(s[start:i]) - } - buf.WriteString(`\u202`) - buf.WriteByte(hex[c&0xF]) - i += size - start = i - continue - } - i += size - } - if start < len(s) { - buf.Write(s[start:]) - } - buf.WriteByte('"') -} diff --git a/node/nodem/monitor/monitor_manager.go b/node/nodem/monitor/monitor_manager.go index 0b4938d6f..a53f9e98d 100644 --- a/node/nodem/monitor/monitor_manager.go +++ b/node/nodem/monitor/monitor_manager.go @@ -60,7 +60,7 @@ func createNodeExporterRestry() (*prometheus.Registry, error) { if runtime.GOOS == "linux" { filters = append(filters, "ipvs", "netclass", "netstat", "nfs", "xfs", "zfs", "mountstats", "arp", "btrfs", "bonding", - "schedstat", "pressure", "softnet", "sockstat", "stat", "os", "thermal_zone") + "schedstat", "pressure", "softnet", "sockstat", "stat", "thermal_zone") } // init kingpin parse kingpin.CommandLine.Parse([]string{"--collector.mountstats=true"}) diff --git a/release.sh b/release.sh index 4425b43d1..28f5ede1a 100755 --- a/release.sh +++ b/release.sh @@ -37,14 +37,15 @@ buildTime=$(date +%F-%H) git_commit=$(git log -n 1 --pretty --format=%h) release_desc=${VERSION}-${git_commit}-${buildTime} -build_items=(api chaos gateway monitor mq webcli worker eventlog init-probe mesh-data-panel grctl node-proxy resource-proxy) +core_modul_items=(api chaos gateway worker node-proxy eventlog mq) +addon_modul_items=(monitor init-probe mesh-data-panel grctl resource-proxy) build::binary() { echo "---> build binary:$1" home=$(pwd) local go_mod_cache="${home}/.cache" local OUTPATH="./_output/binary/$GOOS/${BASE_NAME}-$1" - local DOCKER_PATH="./hack/contrib/docker/$1" + local DOCKER_PATH="./hack/contrib/docker/$2/$1" local build_image="golang:${GO_VERSION}" local build_args="-w -s -X github.com/goodrain/rainbond/cmd.version=${release_desc}" local build_dir="./cmd/$1" @@ -72,12 +73,12 @@ build::binary() { build::image() { local OUTPATH="./_output/binary/$GOOS/${BASE_NAME}-$1" local build_image_dir="./_output/image/$1/" - local source_dir="./hack/contrib/docker/$1" + local source_dir="./hack/contrib/docker/$3/$1" mkdir -p "${build_image_dir}" chmod 777 "${build_image_dir}" if [ ! -f "${source_dir}/ignorebuild" ]; then - if [ !${CACHE} ] || [ ! -f "${OUTPATH}" ]; then - build::binary "$1" + if [ ! ${CACHE} ] || [ ! -f "${OUTPATH}" ]; then + build::binary "$1" "$3" fi cp "${OUTPATH}" "${build_image_dir}" fi @@ -109,14 +110,34 @@ build::image() { } build::image::all() { - for item in "${build_items[@]}"; do - build::image "$item" "$1" + for item in "${core_modul_items[@]}"; do + build::image "$item" "$1" "core" + done + + for item in "${addon_modul_items[@]}"; do + build::image "$item" "$1" "addon" + done +} + +build::image::core() { + for item in "${core_modul_items[@]}"; do + build::image "$item" "$1" "core" done } build::binary::all() { - for item in "${build_items[@]}"; do - build::binary "$item" "$1" + for item in "${core_modul_items[@]}"; do + build::binary "$item" "core" + done + + for item in "${addon_modul_items[@]}"; do + build::binary "$item" "addon" + done +} + +build::binary::core() { + for item in "${core_modul_items[@]}"; do + build::binary "$item" "core" done } @@ -124,15 +145,27 @@ case $1 in binary) if [ "$2" = "all" ]; then build::binary::all "$2" + elif [ "$2" = "core" ]; then + build::binary::core "$2" else - build::binary "$2" + if [[ "${core_modul_items[*]}" =~ "${1}" ]]; then + build::binary "$1" "$2" "core" + else + build::binary "$1" "$2" "addon" + fi fi ;; *) if [ "$1" = "all" ]; then build::image::all "$2" + elif [ "$1" = "core" ]; then + build::image::core "$2" else - build::image "$1" "$2" + if [[ "${core_modul_items[*]}" =~ "${1}" ]]; then + build::image "$1" "$2" "core" + else + build::image "$1" "$2" "addon" + fi fi ;; esac diff --git a/webcli/cmd/main.go b/webcli/cmd/main.go deleted file mode 100644 index e140f397a..000000000 --- a/webcli/cmd/main.go +++ /dev/null @@ -1,60 +0,0 @@ -package main - -import ( - "fmt" - "os" - - k8sutil "github.com/goodrain/rainbond/util/k8s" - "github.com/goodrain/rainbond/webcli/app" - "github.com/sirupsen/logrus" - restclient "k8s.io/client-go/rest" -) - -func main() { - option := app.DefaultOptions - option.K8SConfPath = "/root/.kube/config" - config, err := k8sutil.NewRestConfig(option.K8SConfPath) - if err != nil { - logrus.Error(err) - } - config.UserAgent = "rainbond/webcli" - app.SetConfigDefaults(config) - restClient, err := restclient.RESTClientFor(config) - if err != nil { - logrus.Error(err) - } - namespace := os.Getenv("RBD_NAMESPACE") - if namespace == "" { - namespace = "rbd-system" - } - commands := []string{"sh"} - req := restClient.Post(). - Resource("pods"). - Name("rainbond-operator-0"). - Namespace(namespace). - SubResource("exec"). - Param("container", "operator"). - Param("stdin", "true"). - Param("stdout", "true"). - Param("tty", "true") - for _, c := range commands { - req.Param("command", c) - } - - slave, err := app.NewExecContext(req, config) - if err != nil { - logrus.Error(err) - return - } - slave.ResizeTerminal(100, 60) - defer slave.Close() - for { - buffer := make([]byte, 1024) - n, err := slave.Read(buffer) - if err != nil { - logrus.Error(err) - return - } - fmt.Print(string(buffer[:n])) - } -} diff --git a/worker/appm/thirdparty/endpoints.go b/worker/appm/thirdparty/endpoints.go deleted file mode 100644 index eedf14130..000000000 --- a/worker/appm/thirdparty/endpoints.go +++ /dev/null @@ -1,143 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package thirdparty - -import ( - "github.com/eapache/channels" - "github.com/goodrain/rainbond/db" - "github.com/goodrain/rainbond/db/model" - "github.com/goodrain/rainbond/worker/appm/thirdparty/discovery" - v1 "github.com/goodrain/rainbond/worker/appm/types/v1" - "github.com/sirupsen/logrus" -) - -// Interacter is the interface that wraps the required methods to interact -// with DB or service registry that holds the endpoints information. -type Interacter interface { - List() ([]*v1.RbdEndpoint, error) - // if endpoints type is static, do nothing. - // if endpoints type is dynamic, watch the changes in endpoints. - Watch() -} - -// NewInteracter creates a new Interacter. -func NewInteracter(sid string, updateCh *channels.RingChannel, stopCh chan struct{}) Interacter { - cfg, err := db.GetManager().ThirdPartySvcDiscoveryCfgDao().GetByServiceID(sid) - if err != nil { - logrus.Warningf("ServiceID: %s;error getting third-party discovery configuration"+ - ": %s", sid, err.Error()) - } - if err == nil && cfg != nil { - d := &dynamic{ - cfg: cfg, - updateCh: updateCh, - stopCh: stopCh, - } - return d - } - return &static{ - sid: sid, - } -} - -// NewStaticInteracter creates a new static interacter. -func NewStaticInteracter(sid string) Interacter { - return &static{ - sid: sid, - } -} - -type static struct { - sid string -} - -func (s *static) List() ([]*v1.RbdEndpoint, error) { - eps, err := db.GetManager().EndpointsDao().List(s.sid) - if err != nil { - return nil, err - } - var res []*v1.RbdEndpoint - for _, ep := range eps { - res = append(res, &v1.RbdEndpoint{ - UUID: ep.UUID, - Sid: ep.ServiceID, - IP: ep.IP, - Port: ep.Port, - IsOnline: *ep.IsOnline, - }) - } - return res, nil -} - -func (s *static) Watch() { - // do nothing -} - -// NewDynamicInteracter creates a new static interacter. -func NewDynamicInteracter(sid string, updateCh *channels.RingChannel, stopCh chan struct{}) Interacter { - cfg, err := db.GetManager().ThirdPartySvcDiscoveryCfgDao().GetByServiceID(sid) - if err != nil { - logrus.Warningf("ServiceID: %s;error getting third-party discovery configuration"+ - ": %s", sid, err.Error()) - return nil - } - if cfg == nil { - return nil - } - d := &dynamic{ - cfg: cfg, - updateCh: updateCh, - stopCh: stopCh, - } - return d - -} - -type dynamic struct { - cfg *model.ThirdPartySvcDiscoveryCfg - - updateCh *channels.RingChannel - stopCh chan struct{} -} - -func (d *dynamic) List() ([]*v1.RbdEndpoint, error) { - discoverier, err := discovery.NewDiscoverier(d.cfg, d.updateCh, d.stopCh) - if err != nil { - return nil, err - } - if err := discoverier.Connect(); err != nil { - return nil, err - } - defer discoverier.Close() - return discoverier.Fetch() -} - -func (d *dynamic) Watch() { - discoverier, err := discovery.NewDiscoverier(d.cfg, d.updateCh, d.stopCh) - if err != nil { - logrus.Warningf("error creating discoverier: %s", err.Error()) - return - } - if err := discoverier.Connect(); err != nil { - logrus.Warningf("error connecting service discovery center: %s", err.Error()) - return - } - defer discoverier.Close() - discoverier.Watch() -} From e36fc42bfed3686f8e2c037ff3d10b6a4396853a Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Tue, 24 Aug 2021 16:21:19 +0800 Subject: [PATCH 4/8] reconstructing the monitor module --- cmd/monitor/main.go | 61 +-- cmd/monitor/option/option.go | 47 +- cmd/windowsutil/option/options.go | 2 + docs/bell-outline-badge.svg | 5 - docs/buildfromsourcecode.gif | Bin 1972974 -> 0 bytes docs/rainbond_architecture.png | Bin 121996 -> 0 bytes docs/rainbond_architecture.svg | 373 ------------- docs/rainbond_logo.png | Bin 41259 -> 0 bytes docs/topology.gif | Bin 1447198 -> 0 bytes go.mod | 2 + go.sum | 45 +- monitor/api/controller/rules.go | 125 ----- monitor/api/router.go | 49 -- monitor/callback/api.go | 85 --- monitor/callback/app.go | 138 ----- monitor/callback/appstatus.go | 111 ---- monitor/callback/builder.go | 100 ---- monitor/callback/cadvisor.go | 175 ------ monitor/callback/cadvisor_test.go | 29 - monitor/callback/etcd.go | 94 ---- monitor/callback/eventlog.go | 87 --- monitor/callback/gateway.go | 91 ---- monitor/callback/mq.go | 98 ---- monitor/callback/node.go | 154 ------ monitor/callback/promethes.go | 87 --- monitor/custom/custom.go | 40 -- monitor/monitor.go | 262 ++------- monitor/prometheus/etcd_alert.yaml | 144 ----- monitor/prometheus/manager.go | 207 ++++---- ...vice_monitor.go => prometheus_operator.go} | 102 ++-- monitor/prometheus/rules_manager.go | 499 ------------------ monitor/prometheus/service_monitor_test.go | 94 ---- node/api/manager.go | 18 - node/monitormessage/udpserver.go | 10 +- 34 files changed, 216 insertions(+), 3118 deletions(-) delete mode 100644 docs/bell-outline-badge.svg delete mode 100755 docs/buildfromsourcecode.gif delete mode 100644 docs/rainbond_architecture.png delete mode 100644 docs/rainbond_architecture.svg delete mode 100644 docs/rainbond_logo.png delete mode 100644 docs/topology.gif delete mode 100644 monitor/api/controller/rules.go delete mode 100644 monitor/api/router.go delete mode 100644 monitor/callback/api.go delete mode 100644 monitor/callback/app.go delete mode 100644 monitor/callback/appstatus.go delete mode 100644 monitor/callback/builder.go delete mode 100644 monitor/callback/cadvisor.go delete mode 100644 monitor/callback/cadvisor_test.go delete mode 100644 monitor/callback/etcd.go delete mode 100644 monitor/callback/eventlog.go delete mode 100644 monitor/callback/gateway.go delete mode 100644 monitor/callback/mq.go delete mode 100644 monitor/callback/node.go delete mode 100644 monitor/callback/promethes.go delete mode 100644 monitor/custom/custom.go delete mode 100644 monitor/prometheus/etcd_alert.yaml rename monitor/prometheus/{service_monitor.go => prometheus_operator.go} (81%) delete mode 100644 monitor/prometheus/rules_manager.go delete mode 100644 monitor/prometheus/service_monitor_test.go diff --git a/cmd/monitor/main.go b/cmd/monitor/main.go index 12928b31b..339c3b938 100644 --- a/cmd/monitor/main.go +++ b/cmd/monitor/main.go @@ -19,21 +19,14 @@ package main import ( - "net/http" "os" "os/signal" - "strings" "syscall" - "time" "github.com/goodrain/rainbond/cmd" - "github.com/goodrain/rainbond/monitor/custom" - "github.com/goodrain/rainbond/cmd/monitor/option" "github.com/goodrain/rainbond/monitor" - "github.com/goodrain/rainbond/monitor/api" - "github.com/goodrain/rainbond/monitor/api/controller" "github.com/goodrain/rainbond/monitor/prometheus" "github.com/sirupsen/logrus" "github.com/spf13/pflag" @@ -51,33 +44,23 @@ func main() { c.CompleteConfig() // start prometheus daemon and watching tis status in all time, exit monitor process if start failed - a := prometheus.NewRulesManager(c) - p := prometheus.NewManager(c, a) - controllerManager := controller.NewControllerManager(a, p) + p := prometheus.NewManager(c) - monitorMysql(c, p) - monitorKSM(c, p) + // start watching prometheus config from kube api, and update modify to prometheus config + m, err := monitor.NewMonitor(c, p) + if err != nil { + logrus.Fatalf("new monitor module failure %s", err.Error()) + } + m.Start() + defer m.Stop() errChan := make(chan error, 1) defer close(errChan) p.StartDaemon(errChan) defer p.StopDaemon() - // register prometheus address to etcd cluster - p.Registry.Start() - defer p.Registry.Stop() - - // start watching components from etcd, and update modify to prometheus config - m := monitor.NewMonitor(c, p) - m.Start() - defer m.Stop() - - r := api.Server(controllerManager) - logrus.Info("monitor api listen port 3329") - go http.ListenAndServe(":3329", r) - //step finally: listen Signal - term := make(chan os.Signal) + term := make(chan os.Signal, 1) defer close(term) signal.Notify(term, os.Interrupt, syscall.SIGTERM) @@ -91,29 +74,3 @@ func main() { } logrus.Info("See you next time!") } - -func monitorMysql(c *option.Config, p *prometheus.Manager) { - if strings.TrimSpace(c.MysqldExporter) != "" { - metrics := strings.TrimSpace(c.MysqldExporter) - logrus.Infof("add mysql metrics[%s] into prometheus", metrics) - custom.AddMetrics(p, custom.Metrics{Name: "mysql", Path: "/metrics", Metrics: []string{metrics}, Interval: 30 * time.Second, Timeout: 15 * time.Second}) - } -} - -func monitorKSM(c *option.Config, p *prometheus.Manager) { - if strings.TrimSpace(c.KSMExporter) != "" { - metrics := strings.TrimSpace(c.KSMExporter) - logrus.Infof("add kube-state-metrics[%s] into prometheus", metrics) - custom.AddMetrics(p, custom.Metrics{ - Name: "kubernetes", - Path: "/metrics", - Scheme: func() string { - if strings.HasSuffix(metrics, "443") { - return "https" - } - return "http" - }(), - Metrics: []string{metrics}, Interval: 30 * time.Second, Timeout: 10 * time.Second}, - ) - } -} diff --git a/cmd/monitor/option/option.go b/cmd/monitor/option/option.go index 38b8af74d..87145242b 100644 --- a/cmd/monitor/option/option.go +++ b/cmd/monitor/option/option.go @@ -21,7 +21,6 @@ package option import ( "fmt" "os" - "strconv" "strings" "time" @@ -31,18 +30,12 @@ import ( // Config config type Config struct { - EtcdEndpointsLine string - EtcdEndpoints []string - EtcdCaFile string - EtcdCertFile string - EtcdKeyFile string LogLevel string - AdvertiseAddr string BindIP string Port int StartArgs []string ConfigFile string - AlertingRulesFile string + AlertingRulesFileDir string AlertManagerURL []string LocalStoragePath string Web Web @@ -54,9 +47,6 @@ type Config struct { QueryLookbackDelta string QueryTimeout string QueryMaxConcurrency string - CadvisorListenPort int - MysqldExporter string - KSMExporter string KubeConfig string } @@ -99,15 +89,12 @@ func NewConfig() *Config { host, _ := os.Hostname() config := &Config{ - EtcdEndpointsLine: "http://127.0.0.1:2379", - EtcdEndpoints: []string{}, - AdvertiseAddr: host + ":9999", BindIP: host, Port: 9999, LogLevel: "info", KubeConfig: "", ConfigFile: "/etc/prometheus/prometheus.yml", - AlertingRulesFile: "/etc/prometheus/rules.yml", + AlertingRulesFileDir: "/etc/prometheus/rules", AlertManagerURL: []string{}, LocalStoragePath: "/prometheusdata", WebTimeout: "5m", @@ -128,7 +115,6 @@ func NewConfig() *Config { MinBlockDuration: "2h", Retention: "7d", }, - CadvisorListenPort: 10250, } return config @@ -136,15 +122,7 @@ func NewConfig() *Config { //AddFlag monitor flag func (c *Config) AddFlag(cmd *pflag.FlagSet) { - cmd.StringVar(&c.EtcdEndpointsLine, "etcd-endpoints", c.EtcdEndpointsLine, "etcd endpoints list.") - cmd.StringVar(&c.EtcdCaFile, "etcd-ca", "", "etcd tls ca file ") - cmd.StringVar(&c.EtcdCertFile, "etcd-cert", "", "etcd tls cert file") - cmd.StringVar(&c.EtcdKeyFile, "etcd-key", "", "etcd http tls cert key file") - cmd.StringVar(&c.AdvertiseAddr, "advertise-addr", c.AdvertiseAddr, "advertise address, and registry into etcd.") - cmd.IntVar(&c.CadvisorListenPort, "cadvisor-listen-port", c.CadvisorListenPort, "kubelet cadvisor listen port in all node") cmd.StringSliceVar(&c.AlertManagerURL, "alertmanager-address", c.AlertManagerURL, "AlertManager url.") - cmd.StringVar(&c.MysqldExporter, "mysqld-exporter", c.MysqldExporter, "mysqld exporter address. eg: 127.0.0.1:9104") - cmd.StringVar(&c.KSMExporter, "kube-state-metrics", c.KSMExporter, "kube-state-metrics, current server's kube-state-metrics address") cmd.StringVar(&c.KubeConfig, "kube-config", "", "kubernetes api server config file") } @@ -152,7 +130,7 @@ func (c *Config) AddFlag(cmd *pflag.FlagSet) { func (c *Config) AddPrometheusFlag(cmd *pflag.FlagSet) { cmd.StringVar(&c.ConfigFile, "config.file", c.ConfigFile, "Prometheus configuration file path.") - cmd.StringVar(&c.AlertingRulesFile, "rules-config.file", c.AlertingRulesFile, "Prometheus alerting rules config file path.") + cmd.StringVar(&c.AlertingRulesFileDir, "rules-config.dir", c.AlertingRulesFileDir, "Prometheus alerting rules config file path.") cmd.StringVar(&c.Web.ListenAddress, "web.listen-address", c.Web.ListenAddress, "Address to listen on for UI, API, and telemetry.") @@ -202,25 +180,6 @@ func (c *Config) AddPrometheusFlag(cmd *pflag.FlagSet) { // CompleteConfig complete config func (c *Config) CompleteConfig() { - // parse etcd urls line to array - for _, url := range strings.Split(c.EtcdEndpointsLine, ",") { - c.EtcdEndpoints = append(c.EtcdEndpoints, url) - } - - if len(c.EtcdEndpoints) < 1 { - logrus.Error("Must define the etcd endpoints by --etcd-endpoints") - os.Exit(17) - } - - // parse values from prometheus options to config - ipPort := strings.TrimLeft(c.AdvertiseAddr, "shttp://") - ipPortArr := strings.Split(ipPort, ":") - c.BindIP = ipPortArr[0] - port, err := strconv.Atoi(ipPortArr[1]) - if err == nil { - c.Port = port - } - defaultOptions := "--log.level=%s --web.listen-address=%s --config.file=%s --storage.tsdb.path=%s --storage.tsdb.retention.time=%s" defaultOptions = fmt.Sprintf(defaultOptions, c.LogLevel, c.Web.ListenAddress, c.ConfigFile, c.LocalStoragePath, c.Tsdb.Retention) if c.Tsdb.NoLockfile { diff --git a/cmd/windowsutil/option/options.go b/cmd/windowsutil/option/options.go index 33be6ee41..ef05e9888 100644 --- a/cmd/windowsutil/option/options.go +++ b/cmd/windowsutil/option/options.go @@ -16,6 +16,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +// +build windows + package option import ( diff --git a/docs/bell-outline-badge.svg b/docs/bell-outline-badge.svg deleted file mode 100644 index a8b0a96d0..000000000 --- a/docs/bell-outline-badge.svg +++ /dev/null @@ -1,5 +0,0 @@ - - bell-outline-badged - - - \ No newline at end of file diff --git a/docs/buildfromsourcecode.gif b/docs/buildfromsourcecode.gif deleted file mode 100755 index d74f1da8c9dd7af046eb8f3e4a9488a7c2affb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1972974 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 z z#K`KyvUD-t1W0IFrqWqj;yfjVPAD?oz?&Bn!{-z~06125VG(!9bk_r~y9TKD)C|rd z-rrAtxu5pB$HqR|XbzProw0o4V#$SLB|kRpzF%Jom{b~9H#+F#cCn-V)1Nx6HFD|h zRX8)WF%=HxNcGVn!Vv%&s=QNH*U<%ozG$cfYk-YFx|%vV>dJx2u;i5Fq_oV8?9`le z^z2wsR$)nT-am+KX-zqLcC4Wa(bQO1!v8OG&|_pI(?8TdI6Q*x*p7}(56=$GPtHsX ztSqiht!@6agNtJLS6{@7E@L-^~KPsnY~S{+*F98)@}X?Br)qr6to_1EO^5* zlE(P^@wrfSo?1FXOus0IboX-}f0BYGRa~KJ(Z>qDDZKN&iGnZnz9m$(oO4x%V`lH% z#$x_QVw;@qex2DBL#nLVY=gP+CuD&+IajoA-E=mAO^8yA-95P9ggQAD=kbTlKtoRc zv#0&*0cR9E*=&yOC*Okd*jx){C1_^HV#Wnn%`18Rs-O1rlY3#FFbSA7{<}NYSbw@b zn)RtH6fO`+uT@L1{7}+x`S<@Swy6JKj4kW(Pf9bvnWt_ZQ2}35FxnD==ua3j89^4u zAIL;BD%L|@;!OvW2ta~^83fni+RW)XTGFgE#$&ia8iE-g!1VJx0Z&zCAzc(*YdHSo zMmCrq$pqu`*W&e^b~h7@7%2LA)ae|<1j%y?wqQ23yIV>2-E7cDwBcp<-Q?*qjF>e_BBW7D6eM;j3WThpV+17DJZ}$QN#*jU- z#Vv=gn)x6G>(W>2UE~RD$DL(^!u!}{v6F$;=goRv!H3A6*QmQQ5j6wynQuKyb3~Va z(U9{0PHZI}O_g~n-$;=OKI3bq3HcpJ+1dLMlS3A#n^t>d@3tQp3>{P`bMxd#99dct0!-5l-%eY<&0FOd~meEdObaKbuX)YmL$2mrSSr8ejkN z24a$*I%s9F(^%rq$w!fWg!&ycspym@wmu9N#&=FCPbLw- zmpK-DqVS4c+fqieHaafPJ%@8-GvU^N<;yL87WePI0mGYcSagOugV}vTzb* zMr=sFDPS<&-kgMVf$#jf#)BEH*lwcoBv3-CUi^WS-QJl8MnQi^ zNZpFfdmp~59N-%M%0d2I91G+_wZ1*$B-D-T-7EWcV?dv z=vFNLzl<$fu?_8NGsZCwXAKB8#z~+phmbJb5C@4@w-dd4W3F%_g}xSFo>dT=342S0 zGFd>AJUDBG)1?Ga(o9URbbnRTBidpri9?$5Yo)nBV^4n$FtF!ORE~z1{@fhzWJwLF z{C}eePG5KXbzs_t7miXFg^;A@bH{vTY~-&z)n{_1Wq4m?N--(NQ{Iy+xW`*Y)93Qc zZ0LqQvv$uWDfeF0Hn4sjsY75%`I7p0w+j;K-L5VB2k_KQhu1vin~SXC^7GKy&TVPl z5S8Qtqkt2Jsj+Sf42xrjj_&f0GuRAsO6IV+? zp?It{U8%1wCzUy>$hw`lw;r%72oiaqq9}6d>Qora(J#(tL0O0{jua)-i_$re=gn@h zj<|H$4Lhc6(8N)+P;d`$9cNPC@5rej#uJ9m3{I|hodR7`i)hdc^U|JMH)68N^Ssni zY~S>g1)njYm2SfQK{2!2{MR9;s|!74A!oj-{htcJG#VhcD}IJ^p&lG^|e1 zIk#gyApPvzmI>3Y8qgDDzmJO?z)J7?C%R4`BaK@xzsyqpE!s{0Z^riFjC8(nFNXv< z)$njG`xZWz9end26rt(px7S(9ZR2(`(Zfg(k^4I8;i~<0^GTGQ`w2p@iAVe(%thsX zPY-qT&+b@2{rQpg{jK4p=T#f(*KtA`>TXM=h3}s8qDuF}v4^ba#x@bEedf!Ja$NMp**G-T&D$g6s+51A8LmC`N1`ouC2HMXCS_uaI=nZtb3Uts3a&`_PlnZjX3UX)l@rDQa&jz_#1p5UC z`{+D-JsTWx6%3)INMS*FX#J}q{KME40;c!TC^hVk<4@>@PhF zF24d-=KEL3g;wo=YX!N-5_&zlF4>aO$Zv=8S!U6~U z4~j5ryH*=2gY@sXio^gy9tlCPgFn*+QaU_C=@iL~{URxY*FUW6^J1V&3gWzs!xH zPejGMt&e#>7b6i8^I?)S|+$$CwLSj z9PcF9JYnOh`+=Vb1=mAkwsAkL`lJTwX#FR#bxD-#!PDNtPYN+rJWEUk!X6&Ove;lL zy0Cl~Sm7>SQ9)wyHLMhvlsO8k!cD4SOG3pbWy_<_$ir&qk_xVq8rYJXLy|fyle=7! zGU>rpL5aiH$)iBDTx;Tq=>T_5sR>T0gQhIjrz|Ii&f}&gBV!)~Q?^`CsXK|Od-c+> zlT1f*smSZp6JXkzP}&7Lu60SfNld$|PkWe4!?;O%M3s&$ockW`5a5DTw6r0K2@HcaGvpAu8nJ+11Qg4 zAPhoNAd@=l{xNR?gaz0uW=%IY+I9Uac*9vFWzfVW9RW zb=|Mq8vD>X?tpUlq;ikjI!|i2w+P%<5AN^w4~h`n0QcN44o1X@%9 zOR7(9s83y}Prt3tq(-3owYhqTd^bd45~8>PQM!OAzeQA1H&lx>)ao_B-5P2+3MLU) zvp0}<>c)1F#!k1yFtVSOcio!zLYt2knvny|Ck@SKx6P;4E$7rN*XYnTwB=!;1!J(~QDY1C zUCTjeh5kNda;Nq;N0y^?9dU6TVRG$rnzpB+Z3H%Lr0#80$!%nJZ8QY!)S~TloIdD! zFM7g`J-MB;v7LLdou?5#C6XWA*TnDMA(-5e0BsO0ZVBBgqZHa>qu=B1-s6$ni$ z)ytGz2hnejx@%=n?1OUl#f7!OlKbLC`%-B7(;E9|Is20pp}w z(tT(;d1#iig9tyayAv?}FN#om(DYcp6*FuY%YFDDdHAq#_=si%DLS&JKl0aRf27cVR$o1igIf7FU)G}UG_L6LN+Vl*pxH0N$Kmu3u)u>ZNo7@628dCC~^ z;iz%L&^*mJz1TQ|!8oJXK-8yU_NH;prEx6(!5*3k9VC>7 zyc-x=??ccNXfquWHXYPBZM8J*;681aGW}y{+VODuC&A2bt{E4l88_P*^gt(uLHyDz zZ3Gfa?VfhMl|q4mA^4C$ZHOWY` z{tUt8*Sthp9gf8rL-uwQbB=u>BXIPM&l17c`Hip7DDf7X3G3UMP=rU?%MDEgh^4VS z+J%Fr<)e}@WXbZe*w~@isJzFDLiox}%F3Nbsbb1Ff$^OG8s$f9x_WH!qDr9g9briZ zwhJjC7<)~G9>;HtiocawfJgofWQ|fBiyy-7`%+JJ6u5@1B_feQvCKr*jIF^V@x<_z zs4Au?a@~;du^p>lwz#NtQsKQg5RQsPS!DQNKHkJ2)xV)Gvr zWvsFAKboHxhDR~UMkAHPoh0e7rIr88Vs5I?Z5q(gX+bcplsC1OY2i)pdBrz2AFtwK zTda?5hwiBql6Ue>&wP`0h6g3f1IstjuiKg3)72k~) zM<`DYlD1O_NqxhQXZ%w0HKOU8Myu&fm#Np9SgKE_F^%Tv zR}Jzv2ml~9Td#GP?>Q+=ATdoUrdDc{9(;;Pokzlm`%$p?&IiMVQiH=_?nj2U*b|3S zW|_NVMmpWZM}eCJyce{5SA?@_1YUs>mWGS{7+aI2^9m6gBdu7|o`2t}VorqbTzWPs z9UU3jFX|6(&Dn397%l+qY43*r7N)Ro87@e+VhI{08u9$RUXxKcdZO6=Zb^a`oB9BrTzQ>E@d+3p6ScyvoO_XYgl4 zoB8jzHGQ%4ls62AvSbIbU(2lO@_`p^QsK}UeY0Q`G+EFd^AJS;LaIwUqCChk{M zVti6UT53j0R&q{yc3v_7p!|1KtQ>Zkt*WlAuc@zUY-(v}YVN4(Xwy)X`6SDw$S%VL z`%0qlN&1soy^icBMSf*|_0{#Q4P|wuPcls!`#Np5us{GSTtGTyFKg1);|YSe0m+z{jcASjojG@z&j#)R*Y^EG{+ps8oEm z97Vdt=hZ~=V$%Z5$kO{&yQDE&GVM&9uF^%V1x}%C@w;}$7>|x3|Aydu?!#NIec<= zRF=C8KWvIXa$lHYo9PSjz9aX;52hvuz-2%S{xY`v-$Iz$sP#kH#*FpDIMxdE!+B2k z^&|LSs0|{8(M$}Y#7GMbq9qv*3}OVFKhD$Tjw-MIQZ)?v&Mm_u*ZUdjn(2pc5S<9- z!XCWrMH4re981>ipvlLB2hO75UoT*MVYuXB221L|Z}#A*?{|G+P>XEz!G3je4v*`D zX6l2+E{sEkF0C6CNiVa4K|-JonJcx=JsmxytMx<49CL;QC|hDPMMwpv4rLp42X=57SGt321~Ar%AmEp{t4> zCMnyIE}X4rh0r0R;TrrdV-y^O(uI@;*Gfc55H1|47~Ww;jq|@|xSkNkXMm84(M4ZRiL;MhPfLsbgCa=X%qkm&-OQ;wjNZ&^2cX_A ze2bU5T{O%OyInF(ZWW@-A!Jy^2d%O?u*RcGkk`cVLo*i_AKuQhF9D`fEzH@RQJU$d_uJci%d}x-XHb#ogY8hMRVXceg zv=H4Df9dYOqg2LwtE+28%-;*G=z!8py?1Dn-8XY*911g)7@rMbsgE zOL(MQ*rF6y;!=%>M_sS$yUf%dxngSYumWcGrjfuu0;&FVocEFe_px+r-Ri+68ht`uVgGj z*d!NVkCXN07qy6JkzDl8nH! zpHB{?Re*zEHMU>C`u8t~}7c9`kqt|Q{A z;un9NyX==xgNg2B+)XAk0K`N2hCy$PCO42!EYL!hH@*soEL{+5Es~R&jfYowp1Eo) z?@efx24>~Sh(K6iS6wqPq*)}9QHA%1bR)ztGc_b=2I?;${i+iVtet2y6u_}Y9A+qn zD8K5kNwp^ZO*NPO6|A_6s}A?dlO_smfEc%^rm8?0l?xl+^~F-R)uoJr7&QcU#jeW# zp%E6)4wQFU%E`K=_@zf?#+uiDf-31X)gAb9p4C2kO^d%nAH*^Z z<~_Qpk6B$k)q8EGeoBoUkghQWf6?5+OE(H&8p{mTm)s^?Zs_A^s|>fH?q5iHb>>YcKczv9wUi7~U_p3Pqdt!wVw|8qR$6f0 z2Y{aJS3^zW`H!+@sQF194Z-@*{>nG)-;mo%H`0E{#cK)2q@EUqzJwzBk9l4?R;ivb zjsG6uQhD7_?L@`I87Cg#R1Q~Nh(%>Ye2^zBYNzls!!|sc9y&Zz%#=)D%fT!(o~kJ` z7eM&FnWdsxSmQyxoh~oV6WdfYc`E6GE40cIjxKhxIKHxH*C<1RkTW0su{E&{B-eWSchLH z2rq-P_SW?B+_9(o$eNM)U0qoO;PaF zvkpc`6I54-hN$nyX~Bk5Un`Kfcz8gTE8&ob}FC`c}eaIl54yWdmFGWudJ~*D4R#-`%2juoYsLjQrA*t3*1*|m!wc9BhI#Tj)*Z{4^x=GI8G(AgNie; z0xoy|hlUwb9U}pe3&L}6D1i?Ud+#lOPK`u8zrfHf!&_E~_skwEmplv{#!VtdiE*AC z=gfWE#G#5NzWMf4j>M(ep405aJedS7HeSQRUSlFm6LrkD?>?V)(RNTculTDSPIyrv zplsDSt2g**F8FER`RNk)vvso-$ogl>A{iO`=STXR!BB)if6D@YD~fC7c@- zoYD@WXl7NP9jJLdliCj|6d@x`2msWZgH^U6RE@zSACJuK5UR9k+?U{Wo*hE@D*XK? ze#Z;VugpYn3W{oa;bYW99+(m{SE20yev3|Ql|8)Fi_nc}^}tLn^?a^au%r||0XYIb z#l(k_S%Rs8$j7F5Mv!;oI=S`3X;eE$9SL;-gZ5h|u^36Zs+4;&fV8S}=s zc9MpB=GTG9{^X`i_jI+jAsB^$XihPo5@TBKBH0#WHVa}tHpXz!#PT1+G^)ma{u(Pz z7%OQK%aa%@h4@RFGgi(i7FXFt)yYLY@t0=fFW3`y-Nd)N@W!8OTy!VibDe{fbkX=L z;?^qSh(w{TivB3VGibwm@QJKn#w+3mC(*R{!Q%X2rHwDX--O-N;M?}V60umCI^8tc!Syv4?+&(gPpLeEVKg~AN5VF zN`Q$YzEg*%nLE4lfW5TB9Yed2tqg$^3!+6eCNlV*?p=acs0dRp{MYxBKe7^2x^RCS zRpCytxz!6}m)i5<3psx6|J(qFH&lpmTY!W2Hc4<_>Z_^_2;{ZZMG`DvW*-o#%jB1I z%doBwt3=bse|z7)^9K;YgwqUo^^8{!GSIk;XA#T5j107<40Kpu%aw_xo_W8E>LBo* zv<9lEIqN=io(Wmv?D~TG{Uc{tf|9lpyv_u^Ix~hcWmb4MhayIhF)r05Mv$VP_4<}I z)!t71aYZ>_6;_e4@(Kk6uM?zisNJ`yG;ZKsm0UH>4HfuB_nB1GJ;AGcU`Pyx{Q)$K zApo^YRIFOQbp!|c`m$xVfCZ1RD;Z&n##kc2fI@Yw2fr{CDQ}8 z!|Gyhe25_lERf!R=R2@(43+1eP(o(IEbo8koRe?%c3VmnkMY8kVCR|+Ld}p4CovEd zDo&nSR_LwA{(k#XA8ucw_DX6Jz&t4ks{PP)UU2W_%5eDDECx2<=Dg_ z#UAg!Oo^pTM5pF$~`?!5G-YM$k4zQ<~Q2}kg6Hr!tMFB%G>!wNXR*l1=mz7i|S zAS=rMQ1DyGP-w2fP^uLsmY1Vb)J~Q~{w}M`T_b^Ar!rh?{G-Msq~=F)jX5&37VV27 zVKBa;iC(oFd%7C3wl1il06BX**y5WKmI~KSC-MY4M%g|U7cGjXA4mtF8n zBWo1y<$G>IFSQBzdU?VYf+`#?%;wfdbt_<=205MwxsLXq&^};c0|s}KUW;mcWP%;< zpf^u}3G&BBVqOQe{cUrmAo}-+1lhz*5`@Gdb0I@EQ8Y9r?Q*~t;`~T_V+tCA=3K(5 zTKn}GQ@Ke(e)9CzPJE9jNP=C&5nYQ+VjBud3mQo$Do-bdWM|foPGov$CvHn8{zxZb zXr~fl*CBBisbm+#wd>6aQDJb=zc02=T@5OXpXZWBwyA{QLA+R9J32Ugs^EL-U3L85 z+Y1KGkO>P@1_ua~7@2^CeY;~5Kn(Tu!%3X=Ny1ze@X!isHBYcA6IhW6tV7bb+F$R) z?JVLczR$^nr5_Gftd8j{>k!0dLiGDwV>U40oASxy(Z{TAlMx-8x!|>vrU1$Z4T1J7 zqZWPRA^C#9&5BpPMl(O!&Q&E!uY770>}I~2_uuxzq~iD%@wq+^ohWC?0b@GuuWln| zFHKUY#c2T~1B~2K6;|ccgLaFC@39q#0`JT@lk)|LN4j{RBR!fUeUfZ=Nh4~kbvR2S zLp+F*#2*VbEQ=yPjXaHv!7jF;Y`}als9%62iF)Y|yBl_pTQQ|N6Gog5rIwkM-_JhR z%VO)A7sbGcdf!yb$Bs@r@dM;^~*kbzA6f)yP zGE7KcEUYDVVJ^GL^7A+|6D;ycdJtP@}&^d*m-f7tE7Y8_J>-?AHGgze(F`HsQJ&m z!hBMl1FiB?^yUseuVo0c@gY~?W9%{gDRZW+u(%dFXJJmu;;IiK1A@rj;_%N~mkQZP z0a@XI1pGjLEFkU%1uj3(PV1e+=v!|HFfeSM`Dwvvm7-B4?#_l4JfIek7?os8Qr3&^NSqi)7T19TZ(|k@k=ks zY^qkjL}iJ}?{e4*eL-EdxazNTNJ$g_C?4)xMK~b2)5OCp<(d9HBA{|Mz`A^h^7HV! zfno>a)+lo;o(jB~A(%IHN#v}Q*+-UIJ|*zA4JTLEQ#1V)ou@L9Cne5I*YHrS^M<#C z<0sR;oX?bZIc4CAWjJ1pY9?)K2}1L3&nKwnUJdh3sZ=J(&@R%5C1i_&Z|j}*madq; z8%Lmb!&WLk5CT|;Vghks08_{i=t%<=Bm!wpWkDEtxES@pOaNhlZ8mUSnDv5p7>J}} zAxL*Si5~&p3Pb|fmK6dpV(wt^1JtDFnZrR?p4+-*TikrRdhXlb*5v&Q!fhWrkPT4= zCY0Vh?2;z2NB#sURdD}#g8v9m(xVsFqyMgMg;JLAW!gFUA!E;x6Z369I)jl&(9~EK z0ac?PZpgw-NI1%?=b(0#04yFrm<99u>4o8|yF*Bj zZ5cn_VHfha9Lje0Ok+?RWl9&tCn!JRPBM)E{r0RHTY=^~4)yqW9{E*!)p@MjSggKR zqz~Ou#p+Y1K1bvYO?$n&9i*rAjYnU=_{~5`hf40oF}%D?H2Eq`FG{h>Es}6WqRAMk z7OO}i6Ksx5?B_IkrV5P(uda6O^9;1pR}ts0%RAxQ&nZgIF~-lgPS4XxFVH_+AVyr^ zte@lQTpSQDeo_Ro%L4s2C`dd(0ju-cG(Z9}AlL5vc@+g_B#)T=!!}q%_^2$k$99=X$0H z5wunMZL{EyHl&#sJJoAeC_}E? zYjeijVh&WM>4Ww6}G3z=p?q`uhf9yJMpx z<6~Vs{IJ9BoQUrKFt(c9viv%W8#?UV>Pv^phif{zIyxHs>JKvl%QIISevetb>2)7w zYs@$0&fbI*E1{Gj?@NU=LNJNLmj^1d`yBhJj^_yFRW^Y7Hh#n;6sne5T5#y1DL_DjpOE13IH85& zL<{eo)#lyV(fGJWJM;zcQ&|yXw!whRaMen0oOjuHhs=kllr@?cXAV|+s(ri*^CS96 zpy&6-J99$-*Mjw1&>vSv3h(&u)ZrmEod{^5ELFzaQXi|XrNRYIIP^r>UIyeM$u9_I zquA>b2%>b)RbyhliqQOyRa7?l4LjHt{{B~D>tDzoYM4qQNJ#;WD2UIaFf2>lO*AV~ z%S$n?$L&iQ*_Fbme^DEx3lFz?Oq&D3~tU z_)|ApxGgf!%18w5Q7<_VFiU5Z=PhwXU+|^UZ%Nw*R#|#z!zw^Cs-^yuBPDJs1A1 zct#J5wXcj^^FB_31}Y1tl@X$UwhhV9#96agl4ldqu3o zyA=nX2?%DA@%4Vtp)07ooH~-gKYqbzK>&c2NjjUwTJ%WK6Lf+B|7v$1aflbr zw!c~$!%{YRd97(Ln`n=#(8a^*O@?WD5cTBJYe?69To&Yzq<* z#I|BWW}xpFHEQ`UNo1`J)VH?zSS9W!UUQf_XR~Y$jC|)}b)HKgja?ASGL^qdS{TXu zRR4dV2-W}}`KTlXE>6EO`=aU8W7qsd3jrkFAn(^#U#aZZ2z&TiDQsgr1zdG+NWYL2 z<7SuzxQ-amNRm@v>!N{CG3i!wKCzf}E*Za_HM5n&1!lO`H zp4>ylB0;+%)lyUC@**0$sP`c!f*R{R5A2a%K4wM?bgMI5%C)PbmX_~-XhK(u>Kn^u z%gkGUXx;SAwQbFoyZHUk{mrG?gmhcs`=vw=dw8LjOSwGQ&rJXQ<3fu%UPV;vu@1Y2 z>X5T?bt>50keOR;GA^#>*OwC`r5{T(ZL^7^p$rg9t4V`2D-04b5@*RP;>Q*Y_6Vdk zD!c-ckS#PgoI5F6w&`Wjz8tPvS1}2FkeF**KWC{`1jAf)8k#(r&2;7d5mqAPXo8;#aA+-tY#v zoYGl?V}h-cFzcuKT^GSvg+KeqCYsA#HyPT+O_5kHRty2bpCf4|byg^XbfN9*r)|X= zb?1%%9&yRYj!v;R0?03FqJ?1F405u=eiEY%6(EWhkWSXm8P5kZiD@ppx4Q&wgzOVw zfPBy5PbUQu98Qk<9C-4Y_??8&>$AbkZEy8_(Fp}vy*6PhF~2eF>=uecwa+OdVb4?uKJNrv2PvZMCb1A!~MX<%aNj z>60z_^`RRd9A0|@Nn^)YF)^}!M#_sV=Ek$eMZS0VprSpBplef4`OVSD#)sP*O(ESY z>_C&3^d-rtJ_+RcPLbS@R2tuFz@?@R(qhgosL(}F#+3c{U<>`9i|y&=9sY`7eBRi1 zMzhJswOeg$``8jn)u zTLf8ay&6;BzDkx1+l$}OL`2M1QxhQHX7PHT71s@qLgH_>ROFYLfJH>z5*)dZIo~G^ zuCT96m%Nr)I>q~9pPQz(wa#)_A?wmq_%jDPN}mIMRcH4;nADywO;p_;Y3i6SXwcc0 zM?j7ZWnAWF+wAHb+)k`4|4D3{rk_v0r@O43v^liIJf9iQb8n1GJJ$bsKKEgF-2%UH zZ2Pcw5ms(i-v}XtS~J=vKBB$$%q5;Ac!ILkTiwtD8Iurv$1r*i^iAD`5R{VZqmS&$ znb`wkCpAyWeNx~7TRvX$wBm)`Gb6_dLSASiNB~dG)Fa!JlTqqrR==SYq+uUoRShRK zq7M{%)D!x`=8=~%=%4RE*XAa5k5BtD?GN+gFSpIm=X3V#w7qttZ%-WFQXkN`(7vP64Frhv0qz<-Db#iPu*a0bs^*1y;%0ve+Qh@GI^r z^wuE(1`s!UJ%m3(5s|)I^VdQIR0g9 z)f__uq9XI7um+>>3mtI@qe)Go-qA#paYn-i0jV1QGPcBn(H{{*-6 z)sj|k6A23=ZwhF+MgvogNE4Nbs@%Vt)c4^ zlubQ{%H!vJ?pEOO-=g}l^_dxyt1t7L@#Qb>?{e@6K*2dgdQs0AV>uQt5NF^|r3$An zce059hMTuR!cNqDUqC4v;#>^~HL@~fxFjEAO{`gLI<3M}It;l6sCj!3;dFhZa6D6; z($a#`?Bgh>J$*gu63+?KFFDh%)zWXB(oJ^~w(x;I6F)|oe`R!Vif7X$a{e*RteD~@7C&R^ zL_q9%PwEG!H4m1Ikkze8q%OWSUAakk7|h;aClfPvkF2DiyhIf)LKUT@5NXO;i_DQ8 zg61H?<*uCPNYUngQO{KkPXE{NnD#@iuJhY7N^f~1TN$Ig??iSi94RyMp|cA#Srz(P zO7tjdw&v=LLs@w@B1T%j8JHZtzleka&gH=!R7_-4dk8j#83Mz1bXgT%04sWNJL@2w15lj4@(VvfS%dZdz8+LE@W;$ET>?)&0F)4zS~aBvBaQ%Uzj$uv>vm}%(@ZRwJ8 z=}>TK=4^J13Q3S7@(UtSbyp@|lX*%u0-UbgmoJhf(`e$H@rnGxOJbRAoKTZm5ug_v zQpr_$gOA{mAIQ9rWK%#AE8{C36=HFBMNDMIMp79TF-Mjduby)yL2@Ngb0x`gWpP2; zfs>K2Fv@ThT~}njykg2^MwP;iFnzMXu`fTRuYkS?r3jAKAippvNA(+308U1@9iWIF(C=8miotBQ~P@Mdqq?wcmzoGZAp6 zSc5I2a(>F`nKhGJNT6FTqnabv+tSrr52L~YRJ)LRqAU#M$9hlLO9So(Uk#D+hDby; z*mhvUwLN8cGGpWq{@3>nZt9JS_>J*D8e@|i#RD2(m2HMZew+j}FG!;)w74NHxv8MJ z$;K3{+QW#%s!YSuT%*xk=hEDe+}zaM+_K!<_SoD(+|o?k42wV))mtW(N{4>5tTnX^ z4!4YHlukC6_G`3`BDXF)wk*-LE)KUYOSH~EwhkP%?jW~K50~mEw;43I9WJ*WKejF5 zB?>;^-2lLNc9A-5~z&UPbmu(rB>wgT;ueuDM3-TW!tpEkgxuDz-$z3MH!nopRgkGUE?U&BzccuqR0ea*ydfZV4yr24|F$O%% z1_E6Nf;C|W-GPXafheAV0GNn?G8j)km?$|IGBOyqG8h&*n1M1N9@(uRJ0!CKHXrFL zX&EY88LD_1sv;S#;Tf*e9ByzOZb}($X&L^%659dSk)f24k(QCMm63_3ktveV8J^KO z&Cvzd(WR8pm6p-9mC=o-(JhiOn1!&bIkxXQc9=4D4C`xG#?GI{E;WbsX`3pBphb6~ zMGwbC_aozvuH(>_B4AkFi{=Etd;%_P0^V%`C3OO|bpma*0U!(hGKqfL2>t?SCUC?5 z+Ayi=g-W_Q`6UAkd%z8|0N8b>WM!vlMyKdXrx+oB8(Rjc=?_}d9B$KG4AY#W)7<9M ze2^J_-Wgu0na{Aqwse}^)Ax-z85u+hf;uZRI;pTaqYRl%8;oyyxh=_w&5Z$-F;g z!8dgwKx-kebs>0lA#!vf`gtMdWFZc+7@N8nueF%ax|p=Om@x`n%z9qTK3U9zEajvw z!Jg>~~uFh$#F1W2OrLL~DuCA@FZalAULDqJ7*QOa(?=Z#>dB^`IwySIB z&uf>E^=sbsTdnmww|^4b*7cWF*i-s-IMNMxzKvJf8wlqG{(%Z~v z+aJTX+0(YT!?!<4Z*h)o^RI2QmTe2U?|e>!g|^TgL2Zin(-=VVEh_Tg0HNRKy1(Cs zW2uz=Rzr(Yb>C7L`>m_}``gQJLl|Rw`rCwb*K}>y>}A*Bbk`bfPlNIA-k4VSp1%8@ z&Dx&p%bwHeo)_A_3*WxK_I{xIuD$zyaM@lM<9<-vF08Wkl|Be%JopuU5Z|^RHFglU zb`V~6kimD5^>UD>eOPdMP)K@Mw02nXa+q^^Sc!I&$aqvMeUu!2l`^{a@2Tw z)QNW7%y-uLRn! z#n-Pz+OGxpu7uLBWzMb@J#Idy-zb#dh>hQfLT@B>ZoWm_Xz1K(S>Ebe-e|wMHSoB# zNWax@zcr1xHT&?#TIP=p^wuuok3;z%C-gt&=y&#S?p*$^kKMV-+)dBW+$ZZiq*^{?Sl*|-dC2j2C`*6HZht6> zcqsYsSSj;Z4SlGMc&smfY=n`v=udTTo|?}dTR;58Y}<972F@P#U!D$0pC>*)A0SBy z44osVKQFXDFReeXK%dv%{55R1bY6BmUUt)8_S;_$*I$mIFRf;qmmZr}I?#V5wv=(3 z&j17s0SysfUmX!0-N4YGkf6xmuow|d5#6Z7=%k34)Ts2(%<$OcwA}2xjDnJs()_Z@ zit41Q)cUN(oGREbX-#`;M{{>kXMa!E&_LhdNZ~~J@Yu}g++^GALhthQ{M7iy($@Oo z@0Fd^&E3Q8fM&Dq)^(6>hz!c}6S^sPJJ8plr!k_PkV`0N%!kp8j03f@~)=FVD3`OAcfrHT2 zP)}xy#87Az)zD1mOJ@tF($><>7AseOTP>=kQz_uF2W(>Y43RNuOcY5C+m|laS*;I+ zB`eEmHd|cO%@)U5YBjp!14&)ut+cycF#jk$)ibR&M!t~?764U3 z0N4|q(NnmVfIYq!Zl{Zl$@FnPQo;M%v+3%1%e7YL$E*4Ii1IftZZCJR3e)o*yszU0 zfaSHG2#k(oJ{Ww|igxp>-9~?Oqa$Vgl z1WJ=Zg14ccrX06JIk>X)!+9@Nvm*r7IC3Jni4u1rgh>nEMM|>-y^EE=qxl^prA(On zOS6sRdz_*_;%EQGUAH z?)_ex50ScYMj)wpK}I+&(m_@b%Y$)ttcYo0PJ;BINq&YlEp2|bg(=iDx4<;XG_S;6 z{jjJkn)ax$Xl}{0pt>uVuC%_*^hZexTyb%E>+Zu*SvQe}S;YXUL`lUME%Hg#Aj_j! z^$gm0kD1t@fep<0bJx}EKIJNm+jn$URIf=8@+ueT{TiEc}%PW-g4mfT4@0T0UbtDKWoeJ0nBKdowGmZ*DiI zX?bEdrOPUHv!EWpU^j25lKN@UI7ADEBBVbPrEs+m>!)tta<){a4g#) zTX1Z;;D_I>2W+o$tc#S;IW@(~SUCMo&?$4;g&~I)s`|fb{d#j0%$yGj(#xC=OUh53 zk1E<3U5;zUEnH3-*2`Q@Th2~h&Ypj|lDWf%$68!_-+DYb53;tqUQK-d(0Vz;t>bn* zFJt+9yI@o9_GiQ6gZu4{i;nxUoeP_O{PYF7NzH|~??+dYqymzyg~b12{` z9Z>wG!x(kK6Fd?Jcd^$F&%)%1HuDA^Q>+t48G7QG>4M(`3ZRL|`Vgk*B5*r)q6bg- z5Yy`+2?WAG+elw}#Y|)sM?u26bN^4!5j_+KRUy)@bCI;86bv7+9&)0}Krx;ytl8PJ zs-83Yj>lA-Y_VP%^~zw?mMpyLf!=?H$DXnXy2bjKlPW_McM^$Q>iRxaU4&VLz9reC z?&q4i2)7@3OYC6?ChPd&?x(u4K|(dqPZJ&)=&MPAUN|7aav2pA@@^aH>);phpON7$ zIpiPJ1|_AZqSLS6QIZpi%ZEqDWbk~ak)s)sD!cqu6q-x-eetWp*kxR;K`w(pRF5{} zMSL3yB~t*+$TteG?Wy+`VSJE?Ay;+cglisK_SaDp_3EUBmb_2ZgQMooF-eQ}szF@B z(pX9bDQHA;T)Z{Xw*LDmyNY{I?%$kaj#V~kumve@SOV*|Rh@pm0z(l@#<4qP+%>Ew z-x}X_`?sC{MG;V_f`#6Q*JSaI6bQW?k_$eR&BlM;7vVLX4F6`ELxpPc^(&HmOt4}u z!*?2Sox`bLc{O>=t%Z_$Tnfokw)q?pVY_2!V3tUY=MXkl@_m%S!l8J1?eez14VBRrX@9P1yNVzvgWry4#pJqiz1<%Axpt)8r_lUHP!q$v21QwG&3ikA|{^l-Diw7)8!b zLu(mz_yy+-v~qh#(+_B~ZLo`)`?kdT;{$v9Q}3C}Z@P_Vth;v5=?72r7F{q^LkCc# z!VAKqhroK*iDkcO_I(((JJ!%mcFVM{m@~0M@u!DUnmJgdWDBqQu9q>KIn;=L8)w?C z?4QJTWE=9>(9b`%{rGU#fA#9JCg+Q}Nqor;CDr|4iV{O?6v^*NWzJgVysEfd*YA`v ziNhLWED8PeyHFPW`w{Kas+ifQ@2vTpBgWd*)O?bA7|V??6v5_qBux|1^xe2S8e7I| zhJ8V7*gl^$TNXZK-^zI;Jra#t;5Ctnvv||geM?Oq!{~ve15rl$ZhiqxtBFi9(M&!g zH9*#2?Vf?H3$>2PPcLj!)#$DZx9z6HTIxu1`C+~mt*+c}_2}Ex!$PxkT}gcD4?~d4 z!o;V#s${7XBZ=k39ufPr`cfkcm*(Y-)31u@1^Yi)A69my*_-A|PwlH8S5L#)Tez>b zonPOt-Hx%h{V6?jPaY}z!uK;}naAoAG0B)ErA;R$qmdug$|!08N9UV1s{qlKEv(NC zy;Sbj!7k92ZL+$=Q;OI7!~KxL%Vpd+kLvTNleS$J0)+ zXyf1AvFQ1=8*-!PBfIp+#pRbj4FSC84rh-WSK4=dANVdT+g(|yUhV@T_^$KEV-m(S zub>P4Ew|O<&nGVJj~mdoyY6%%QA?ER0%>Rg)u{V*`TBDXn%$EEugA?i^f|ZAa6}_;z(8=sH1*%Up;Htdfr#9fHGvKR1?XSz> zuW0NKsr068@HbuXCpUECBnaT54zT42u>VIya83y5VzyQ4xAi2j^AfZ3xq}9HI|lj& z2KpxihH_}D{PEb$wY%Q-dS3wJcfI2|yyL`z62-hz8-fxBg0cvLa|(jq7zh7y3{K++ zF1QOSLI^G$2rgC)p4sxR8}M&%3=ykwRG)BkZ3yVN3+W;V?SUD#s-Xi57O<=1NJHq@ zLg>VPXr78ep#y?}W0;Yu|59L>!a|rzp#OS9*y2FgrdYT(LO2XXSW5`sCGg+A3qRTq zzX%M!Ou&Kxxp$5c4-H1Ovqpn=5&Z;_0M1A_wMclU$XAIXOV;jB4jyQY9+$79uBoCP zUVGpydSIJG5iLgI-$xQ3c$A1(l=&mTZoCy7A@38TsT-rI7Ng7WpwWc{F=f;-Rr}Fw zCecisF-=b_pykGzvKyjDRTZ&R{N#; z)pD}o*Z9I;##Vb!`3nb|D9mtB4L350yDA7bZj3t-i?AAuGhK|c<&3vii*O)}x1@=8 zT#R>4jB_81M*_Zks)!YLO7Krin4OPciT@Su^egf{A(}8TmNPM~(8*mjFsU#wc`-1x zF)-skF>5d}=OA(FCXk$lEjmFPQ8=!Q6TuIVTyBC;rIrj+Y+;0Lbz*W$V{)5Gaw}p= zdtq{yS_(|Dg%P&hi76wEDPtxnqll@n39Bi!)ETGL$slOzbmBiMf=TKsV%mCP>XusC zj#JuZP}+84+HqsrsY%)iV)|KO+NE0hwNv^VLF_82E20yFgOGB zFBHKv0~IL~y(k0L*uofF%-~Gyq)ZZ+h+vutL4rXD$-G&#!A@C$iCGT=A#H&qj+k$w zGw_&b2|iK~d@#*s3C{jVl+7)k&776}c_>@pFq_pmTTnfR(>aGfIEU9XN4P0RwkSs) z#vvT$C@1A8CgrLu<)}903LWN3KICd~`QGXUPR<3M!3A!n1-?xMkwpd34+SxY1#w9Q zu}OvTO9e2=*5?pr+ZLvB6{V;bWtkRbCKW{$6~bcMvZA72OGOn!MFmYo8K%Wm!Ns*i z#m(ZyTol-BIaW17|4Fe{q$m+k< zvBLXIRJO%cwxeFQ>s+>}QfyZ>fvi7Vi^E8sOMUb*~_ zVvF|pUy7~Ee-5_IZ;8CJ$cnQln!T+8Ngys&)X7z}%~kZv&??49n2J!%!d=a#QT@rK znj^WItNGuJ?Hy4m@>gw=`zS)S8nGjfKh}09oi&&yHMog2qK`H5#I=epwF)k#k<`)q zU!w7Z5w@HWw`uG2B+3kk%ZwhgOTN>m?TYIhhU=Y< z>RpEGJm?y{LJ-{~8l00GJd6Lj2;s{Okv|%I=otcr+;vX9li5ugV8v|e$+oQ%9 zx~5-`jX5EW`NfTe!;N{%P1#3Hx&J~DLYgXmG*^c-*A_R`4>va+H8&48wbQk95;wI< zv@|8RbQJ$}5yqBVCVsSZ)3x?CH_Z$~Tjn2I7KvNumRtLqTQ`niYh-P+Fc=}Eb+5Sf zV7PU6xo!KX?e}BbC2{+8NZa|3b{pif46Ldr?y8p%N2x{D9SA8MNG%;G zD;;Q09T+5?SUjCLnw@`$N*9tk=bAc+RyuRoo7SSNN?@w{tkCC>kkoKG5K1=$3>*GE0Z4uX-+vE$Ca7uy!)rC{fk!;g)PBTFr#D=VXGPoo?Epa?rCHDW%)`z6DNEsA`S zBmyLF&osv_dB(3b$8TN7?^4DeTE^+T8eajD~cc8k8l&LBb=y2i4)UVK?54^(+ zrBke}Q*4lF#^=GmN88nDrju!w*6B~YGat2P1kGpoQ>Q<-&IqK!4$U*-t246CGxA!q za&EJVVY9++Gnywe8Yi=2sLi!4?M;$E*t_-9No)ds5SA_u1`_~4HffzY_mg2>QVs}v z_OHbZ!14qU0Olou3+!@02pN!n639ljaMZG3i`PLpJRS*IjOJa8)mn^mTTDn@WS$zC zBw^ha0CLCz)#w4Ro)Hzo0*3*_Wdad&EHOS1=T2-g1K4C2 za7LF`nE|-6Kyy?efhP#eR0C%Pf>K$5Fnuyh!A5Ew*rJ`vC)URPO!25k~&5?#u)14 z)(!00Ufp7R*6|Bi_Ej+pz-o*dvJ z3V2$47f!Ol!O(xkt@%uzvWMVb9iE- zhi(5v>*LhkvnktN6PVh2?@8p_=ZOrR)8d`gVc6F*pH*|)_p#UyDx38i+xIHl4-4Oq zYTJ)~*$+qCPmtb^(>_Q6>RYmFylq?^- z^=Ws|+n04J(o@yWtTxTBIK(R3}*1O*UdH8`|&&#N(*dUB`%oA+4)CD#VY-l)WsSFzfuzoVS zAPiMM;UT#o8Gqk?ExCRz4ZW6qb8~w<9`R}d!W(tU3^G2gX)|8}cb#GBOrk(mPJuh$ z$0l4yCm`WK%+*_0*m*w<7<6*($P2<_0kB2_w=RxZ$#zlKm+_yM{oN*KvnN&1rvlzg z`G1%S(Rt&{7mevVRepMyJ9e1Ab{JQFn9zP7zkZ)|b{~^|pE-V?uJe$M{_soYA>Z<$ zFybNSC$r!L~@|u{iy)q5aXHXD4yyul{+8RIkG1}UOQ~AblI*{pn zV=w|}!T<%hJ+tyzKJ(~4>!R)Qc%HC9=WIsjuTs}uqt5^SJkKrn%)tbDS>3J=TW61a z<~UzAVmQ4;#~a-7{!D)ZYixDBeSH1=0|JABLqfyCBO;@sV`6{B#U~^tC8wmOrDtSj zW#{DPYCcRdVdYwrk3Wm)(!whS5J3e??C_1;K=aU=*0LK90rID zf;EWC!Oc2?1L4@*=HS_4-`?MYu!8#Fw^#|82w6!uNLUFjFF6P>yWqtNL?_nJ>qhdUg2IsiwA3pJ72Dm$WVwDMG=CLaN`)-V!m9Vf@r=W2z;Evd@RCKK zbp-ctyTfDYJZ?yNLjDSZIn9_g-Cj}GT#u;j{JteW|=Ppm!*3) z(C1Y+@veQsC%5hE&8b{O5C*Rcu^$lU<@*}%a`{<%yAS9MV++T{c3;d}ow62Ao2Gx? zi}7^ZtMu2)cpn%4i?RJL#a5-a^`+ck299VL{r}_Zt-qoS8-HDfp&7bU1Vum^lpzI0 zq(MYl1Oy}n0qO4UhM~Kgfgy(OuAx&Jq?BgP==*;6S?8?1_geE0%rEmibKTc{eSF%H z_h|di47>oO;59F7%3vnxr6ox?uZ@%e3E@X$8AX3Iq_NpBn$Y11Ng$RH4w@J>HI5YK zM`EnUAy_h12%|*@;#7<<5~dDuveqkAPm(rjDJ;U*{Vcvr+-7;cvaCgUA@8{7pTx<% z-ZPF@(UAL@@WGV*XCl5njwFTHbY6hcTdVh`y1rZS+iDiRQt@fc(18NwZ;VF%5NBGu z!VDM68WgN0JuA%eA>=R04k$=5gSfxME6VkM9a@wZsy4Wrn=F&MmzSoou$P}2I9Obi z5sSB9gnBRCFD_{q+%FAkrhQ%(Hfmv64%Kljt!VOWMzPw|o6@R|3X!tvp21Yk@|KtQ zWwqU}!^-Lg)rJmh5i)5vFWGwzMbT={WxM{y(=or@5OvlqQG-_$n zdZpu5*>>#-t8Bkdy{&`;Dn+Y0Fo)83TkmM?Sko;FXm-+Mz+X@8scucE2}(?Wb7<7w zy>Br4iU84gEl?N@Gm8|qD0FibBntOtS`PZr z)@3-6-%B8r`B|N5sc5MDe}FBrwC+vvhgIVOWf9yNN>$iF$9O00B(L;W`bp57nask1DbZ?XM1rNv>k%~@tkk9gZ ze~dLqlGb8nHy=3&>+@NZrU3`HeDq}mq`@Z2UzEa(UQ(JgId!Z%~s;9** zG?V8UxCtf);Hm)K5j${*6C_~j*83f$e4Cs$6%L?bR`&cXC$Hf~_hd#jje zhbds+wIF?u2^|d-M1XUWhJSIAM5wj34aU{r$ z2c32gOBAyPh`qdv6=InsJs^jQBGly!tovXTo05^M5nHl?ie=x)PsXNRY zJEAO}Ir4fy1RFX4xinvxY0UIiZF_y9h=W5Js^$fi>-@SY-UNYpOZcdFz_^E-jK=ii z?`fv8IgCf`R7*%e$L|FmjPtU={6phUcJsT^d)ZQ_jW)+Y_vy5x0yxs$2{KN()A7I`hDZS#`*xRJvph2$+TIV6!$fmMn0 zCDqZSBfrUzDd(*?LVw>zj{cuF)e37=5d9V<8BM<|rCp4D%NB!BQ=i<+v$&|TEjEGqLFHcl z_|jn$cAmksH4MHqTLn|}oywX#3LR0$KPf+C2>FYpl!T$*30yG9?a%2WB|Lz+S&s|o z%rZuzM96g}dolU1!Ac{JWcu{O2JXhA)_Kpk%opXA6g6(k3#x0El#y;XQ(1)dMemgM z)k@2oF11T_)@35BsgDau%!<}BU^7vw-at|xDNHtlT)+j94QSt77KdtP=eQ7-XSpl= zko#shh4598Fpl&*9kGApG3tD?zM*#H$lA^AX>FREl9gsb$6!L0{YM355sQ6C*zNL3 zWMj*Y(l6H!uU+>l81rrD%*IYwO=_3F4xZH&xi9 z^SQ`E%eE*|c+{=JKIfc%SB9#2%y0A}Pl#bp^^xmz((y%!iU*RKj*+a1OxQ?9LTz|m zF)Rt@Zc_7g{!o_@wlLK8r?yf2$SMl9_>=HI!()YKi@%kf+E$l;xn$O?)q}1&i5QOp zpWUrrwq3OeJ^YFya_4W|`%N5HyP16Hye(9DJ!=1OPCaAx11xqn3A_7m6yatTwnE9f z`nK^a@@Qd7f)=-}^~kC6cIBM0+?wH1cPzrjf$r6_*KF4ZNn>}Y?{GaH_0TeM1asE} zT_7(12iR^h{jxs%Bp(cxL;f$tw!P&-7d{s7IDGwP3i)t8<`r<-?sdPoioCn@x)<_B z*YXC)deKs{(rd6Xnz|5bAzkd%jM7P6LV}#hoqa-+d?<^2!uxz8cYLC;ePbJao*;al zUimzu_GJhAvLaC2)|UgvkMqh`klODB3fd<7fuVi@*rv>srgN7buMr-9hsU)1Wf4?K zGA~kIdba)a{9hScjVp@H9XFjTH(f-4-c^7;b)dnO$ojTM;~S6fZ^e7Ql6Tk#e7g#? zr4F(K2RT4-EVVpt68&AB{ZTa46A{!%;iyrx6ql|y`RNE%y60wN@7HzfTkBo7=~z!q9WjjGt%f6npN36gya@UOY@i+SQl zVHQRWMfx^6`@xF*TKoN)g2R}v!n&!$Tg<}Sg2Un9@IkG=8QW$=_#{q5Cw0WMbNF0x z`1~$cJe6YtcCgpKjO~V2Bu)K$9c(Y=zTiVdT34oN_TY*EbCXb+iSOp}Nj9y1e8 zG;K;Wclpa|t*#U8_7WXvl78SOIit93Q<95IlIwhu`*o7MP3ATYDrB39iTAH!8;Z;#bj`$~&BnjUdSK5+p zn!#*3kt|C2Y^H^5mYZzsl5A$zoCo1=vnkP${U8nO&{VC^VsLIDG?Y(17n~X*?3(*h zCs!OVPfR3_pEgg_6{H;`OW>SBMD6IXksQaK@|Hb+kvd;hBwrI{*}6KO&F3HNDGdxL9!xDB zS|}T&fj~qc4BBPWB4X{@

LkZK0BRyr9z5I516x0B*%5M}?3!YIv+-U%ukNqGBfD zvD`wO8GrF7s(7Qq*k^xykbvHk`n%@iRe7~e zZLRCy-7zpsqd4dcOcA537z84VSxxhTu2F!=Q7rl2 z*-bHF&@|EJY!t>Vb&A!gjF+!3v#dvDY{^V&KKj+be>5~$mekt8nh$V=s$rAwYDG(H zJLy`wQM+SqAZwFSzx>jG7j;SpuyGj07+veMDDISQYq3+=@GV*BY4Zv`Y?ZEU+^4?f zElf|e9Ff+h_MQx-*v5>*j)z=JZ-T4dv=eVUH4*&G%rAY3njU*@kD4AsSNx1DZGSBY z2PndE+>vm+B{=RK90cmPKY)|yb&zp(pjma$pfa{raQeFrI(k&Ywi8pY6Cc#clHSRB zi2B3+4c}Sxyrh|*Gwe-BV#@R8e7CLw{N}>NF0s3=8RII+mM-vN*ITh}k@RlJK{#1h zw}Mr-G<}b}V)F>1TFKRABduo*)}sSLt6B8dEq!q++N)#;HFoc1FmEt(cZJi5HhpF8 zqwDJt?L+ys60jd;h?c&0b%wBB&tbf|+dc$czb~has)FX9FTzQ``LN^rBZm9!Py0zo z2jWqvHe3j$*e16Oq%I943=d=;4y4cz=7|j!fCdXW2aEnyZ1aZ)D-Q>Y|0=e~p$5=U zBj*sbWvF>+2#8HJZqbIAs1MK^&LytxEo(!h46_M&I)C}#bv`_Kr$2?#Z2x6!$6H2b zhDQ*GBMVC-8+Rj{D9zS=bUS@?t!4D*@aXR0=>F2^+1=0K&^-Rg(qp!;#KJI>25n9aVTHZ$*`AHwo#Ffk>87A+jU zIb?@0d|bl@)|XAh1U>j8lLQ{!yj(pz1oD}5Q(Uc+VCyLXkEw+CX2sN@`r#p|qan$E zz!pViFB${ytRFGPj3MD(9RaECTaQEhWP{$6s)=ZLd1%#~K10-rF5+T)cpPL2 z*BA-E|A4qdM6@CzKh4Kj&(Cwtr$)@jd(3A*P&^Zni85`)7jjT?txIVF#fIg@ru&7KdsHb^Rx+!_Hoq?jMD8Dsa4^HzI9b|KMT-M2 zk8zZJlvto#|nnS${q3uxE?Tu5*c@`))N5iW%{EIf7&}^6@60vVcFYzE~D(v-hS5 zA(n_JQ>SQ_`7)^q!F%FP#!@-k6 z#MvSsObAXw8zcSgg6(1C(wJ4-_BY0H8^UqBm2F!Tv1QzG@Z53C*l~~C@od}is@Orh z|Il6j1M}WcAbp&KdLsOIl9X#IYIG|4I9x`O<%J<8Ed^^zcElH?cNPfNmzq*j)xlpvZkgq&fT76W1 zQ`^{_wsbHkaSKSFqGh`d#uQnoAucDDxv5&6fUtK4D zzE1YKPR+a~(BDu9-ngyU2!0jBNO0my{0x!R`<-;w=M_r>H=y#-t=#BbPUM{KiI)FV zjAi?rV5feV6!;4f)&?A3-2O7kdpLoK&~|$hmk(zo@}%h3JqcW zEjo#>e_()L$lr=B^8c8z&Cf0_EGeoeugdwmGo~Y@3w^6=@L8tC043*kz&pF!`@4Gj zb!EE8$Hph7re`|l5Ob3=OH(Ve%kyjfo7;;!8@mVlN2`0k4o{EQ&;R_s`gwM}aB=f+ ze|%3y9sQ`u7f8_g0m_s8#-Er-Uhm4*s4JM9PrnW)dQ+T*6we#imj#FKInY);m(RPe z9-Wj!osG%fv_Iv=bJ_lJB0XYiAjjHZ)s%JvNRVG0CsYt8f^a-I6{H5(f5igkUpv7e znCrDwj^UUY%;gYdRH=Mg|C;kKk&vQ0HQ|qj*=(M((rdRgsc*=sBIiC@%&sq1lO=xd z{)ndo0u?$vdM2HRtG>uoQ1Dnj49?qq^-X@^%1GcUus4|hDpwz({o`P&@fwp?p9&@30VA#sZma9v^T5R0aUzg zVpr!I6LFe060Ntte=T-p^0Z6b-kzRL&Dp#{5nJSM>@{z6%KlX!0JChCFBa?WnlI5y zoOOTFhQ2OB$!R-$9(v!2^&rMToQ+^+(=Qt#Yz0Ldp_~o78)3Y?Y@6YNvu2wS;O(N# zNU=Y=n^BTjxSNzBBpN>QjD*nuUdDatNJT}`I4MBBZURE@&W2O`ub>Mi>;|qtGOlQ&rmk4 zB`D_7oG`H($DDNnvlRb)RO8nED5aUj#JWc)r`qoa@9|9=yEm8S)_5*F8dB0 zL01AxxtcZ-!~O!>v}4#|C(NqlV$||i!||*x7qnIj&>aZ9vkT|JAmSYE=pt9N<-u|5 zIp`vO$9dXKu4#2zA>}WqrUxI-qcRjVVVOeqscG1n@;=VJQqY$Aeof5BEX#{V@CY9i zsNMu|P6{LJ)1n@kayO^sGtqvbqy`6n1Q4v?K%VI-C~s=$TFOBZ^2Qy|F7#y~DciH3 z=iJ%j!1OMse~Im%1*^lD3RCy8GSacW(*!&Ft{M8?qDjw;UKmuZ7SoND-P z)uwv+qqkjHI^nDlubMIG{Wu@#$x?!@T!OJ9t7Q=6!YO9(C`zd+bRuWefwPthI|FYV zU%~rAL5}yKMRkNovX3-xHPj{&ink1(n_SE5^pXab);;BPN=a{Aw@Yj`jPfM?8= z9dpRiv!+xX8G}V!O)Gu=o3XVx$wCw3iybnhQf2AymKLH>&@-k?3gmdo=H?To?9kbp zt~Jf7{{fHiN!0+9I-7?(n~`!PF!yD>Y}D2j4Wy30P23fSd%j;@vR#Oy1mnVD_zkV# zeo_%snw9^%q0TjV0-*eqNgjDnsFpN1U62?bqa0D9UO1@kmZw@IN@W(H;T_^ z=%pHS$e$l;LhH+}Ut4OyTxT08QCX4Puml0R&mtVo{z zYB7UFtXInHSjH&5qmWG|I5K-r7ovPmL-qD-kM?uwhfgh+lvU;t#y@fb>|SUWad$#IBq&*WA6QofiJYU#!%jP~C4QTDbG6hDhQMkTe|_BZQXJ&-AM=IP;{0lt zB&>;c`}w$t@VZ}CxhCXn=rLspae%UNc6_d)37hWqfL6v?LVfyA4kwo(ef_uXR*z+9 zHckS2B?X*p5v*q0lOyo(?X;itJHmezTS`{QZ}+bfJ1NPxS2;0y%&aA4A@po1R_b~d z>nRVwI)BD@-cCAb%Riu8^l_6uPM66Hy_5n1+$j@G=7J@yi0M<KuUfNXyusC^ z1{+O*V8Rpng0kK`ZLtFh;LTY7#g8hVWko}(G=%M++8VFcL&H@T12@x#I*9nu7a`>0 z!i=(GL$1=%w=au}?dhh3Q+i4)EwzvXMU-RfaqI{?U*30gYFQuo<~jshId@d`uUUb$hw&K5++Tg`erV^5+8tYb z%Y@n;bLjr#hVKNioIa4Bt5;s$R~r+Vsg#&4w`4fbClW>Ut^BAdtv@t-1zWhx=W4wP zTLsw5bhe3JwoWiqeTILVx*WZ1EA7YA^z9EO(tFEae__n@z3$cXGJ#NCU_BDm^q~6P zFZ)|cy#Y;=WcuZ`9+a4rXYhXNTbJF7pJ(y0GBaDBI?46+Ftd5jS#DU(6)9(sCfzE< zJ@%it1?O(>FX5lFR{T`%HWmqNR_b9qTSM+wBJJ1XUTqh-D))Q3?KeKpiFT!(R=wOZ zGj3nBUG;ex_Yw-m*_OP0$6|uvImLc5V{md3`jt7r{_MeY@D&Y7OF;M+K6QLY^YwEb zKTQYr8gYS*XCCVxQZOV6W>xjh467TSfp=6n3_-H?Y!dZ`55O06h^Nn=eQ(ZJ)sf;) z+ED%YogY$TzcuH}ZN?{m>B|rHBRY35bo4Vw^!wc4r#I^d?)Q7O>nFm7^p^ztzXF@m z)!>^Jn9izyQv`n-%d%eUwO-W-P%{fqcMi}=4$w2R(%lXCgdq8_0dg{=#`~xp)bX@E zi|hp%MfqFO>^!o34T3C8GAoB5>u#C+w}jdlUzWV_l}QQar@VOo(0X9dH^KE-Cp^RB z<$K5q4m^Z2D=J1;DAPOSi@Bq6eqmxKZ@m5HPIXXW5 z;d%ap+9if^;K!qZn8)mn47jm0aS zn;!Fe{*HS&MR`dc9|Crd21rW3v3oG~E-#GcHHsHO?T*RWs-hHI;e;2s`uKhxb94U` zTN;!&nP{Y)81v>cb*G2QyOVZi~d z{b8MEsXf7|eX^;A1F6M(sinAK)xxQnFH>uZQ=zzNO)hE8^Jy*DX$>^#`Fm-F{-Nc# z>0Ke|eeCH&D9!ddb#U+N#vgx`$=Ec1Or7JV zU!8anpL~3s!NV4Pf{G%fs1Tuut-1S4w%F%#JZV)ij+j}-mze+&{UzqCrvsUc^O@`^ zS!@GY#LZcxp_oIB5^K_N!QoeOsStf(&RkR$*~m3VNK0>!x~42r)7-G zy?L6mNs()+oy(8nw5hq^eW8V<#6LY5hv{9PE5#hq| z>jId0VK;l>kCH;$ed(b7LMOZ;7x_Yu=0bnkq9Bo?z~-WWX8LBfqKWyU;K8Cej^a>@ z;uxJ`qL^^Yg79sPjO{Jq1-lHyfb!BcQ=v#nmVC)}Q^{XqE1yBU7IA=^fBiELnp%qa zB(r&;v~A&e&^1b~{n)Vom~b!_hz6wQ1tvZP`0}C+%LD1Xsi@b=sN}fFQ9(g8AdM;x zzkL?EB!J$aJQ!66l;S!-)h%t2z=h@?8~ItR!r7?dF(Qu2-?Wva(^>jIV{Q6U_*4F> z%kADdT{=}*Y0pvHV|Z>=xUee1TM=!VsxHYyl+p$^sHW! zf&+z^0Dt8yNdRdT@Hs4ormBWd9!6Nv4qt zmFCLBaupWqQv4FL&vScHKfk`I(zq>UykW_+uh)ZBDK69-42gt=q)d_4aw?#tH~@JT z1&|n!?cZS4UBjV(#x4!m4n^gitGP?d1!~`;qX8+y04cm^LU2Gp6%KjU3+r1>pd`So zv;iZ!93>G7s3HN8r430is2>`XiVo8?tq~Fi%sFV%mM$K6d6pB%%?XX*mx^ep0K})iH zD-^$V2G%lP+G4;9v9th{;XNWntD~o5WYEPyMH>Tn8RHbV2uN$WpEn1JqOBV?_(=kC z7Rz&P7`R~M5a3^Fk(&6?Eq-}=UgNbBoC*ea#RrlSGXglFv<_X zeH-Il2?MB;;B~3wLWZGRC)+SfOKK-)dXDa5C-2hBTbD{&IUJ7CCVzMXF;jC62Pb_r z@+}8@l$2Ccq-rg>0S+l|xp;axO%*WWFvAQ7eFaVO_-V1`=Y3rQAB*JZy_0!~%XzO#27GN56 z(<~WOV@lKT@AjAoWJ*kYN+JT~)J{n)PyOGCt-8mI4rE48d`3TF=5y;En#|9%+D=lV)Wq68o{ZO8g9Ck$<(%h=jFRfF2@a2#doyy23bMs}! zCb(@=WCgh?_OL0zxFsop3L$Jsdv3{OY{|B5$**iFK5QwY>{^MR-1-|D+)qdr`@RTw zG?a#6BMr|s8{pXAmkQdRH)4C$#F6Rq@Yc8Zu2FqM-^tpHOI*? z$4xZHTRF*@Imz|t`~}ZBPt^HKm2ja-X?8&_3)pWdgoh-YXo_X5%_R&Tc=4l8%**c)>!S8f*n6hzEti#5&T z;gFIGh>@b6Wu#ys3N&;QdLi;ilp+fbBoPGziOB_pNFdZ;YGU++LSmXQ0eW7VymER0 znhHTtk|J113rewV@9g;hDz=jo-4p^sNfhMMQ^+-Wxni2GBatwi&Hz}GQ|grCG9JQy7yMXp7F!u{Boxw0%=_rG0S|)Jf`I1XVl7dmg z*9^BNU)I`1X4{9)?px!xl?yxUUq~+ZOG*~l`QyIEJAHe%v4gin6)ht62cy+*=C~oE zzYo@GgH|Ql+^&CZOreNvhWO3zlf^zS6tTU(9T?kjYWMQ=x<#%Fee%X2G|O_rWOmN- z#6O$M@*+Z~&i2OB=+6ouG{VUaB(;-W4`4E--UwuI)Y=GQE|AR$WvvO`2<2^{-VEcP zmEDZM%}CA-6CFk5M!ebp8~)uL%L{tT?2;F$aE8c>QbDK5kCxXM$V*T*!p%=qvqQ7E81`fjIMG`QfU*)+3vJZ)Cxhl84MY~N%Ar~4{Ez7^1XO(zFA5)jg$ zxrQ zoU)1s_T6&Z4O+8`mgD_{tY-AZ(yDeW%fqTZ%CN(l!Iuh$wNT%LlG=gS3bvQ`Hk zQFtPkb=`cg?zc`4B%lFt9xeWo+BB^d)B3jI=+FNUTkFeZ=biG)757V2@`4EhaYTH< z?;Ba~TMFswO;}?eBnT5S9oSgL(d{585Yzw=tl6HhVhJiTCu2Aps`lsGl$g#vDGGkE zpD*}C#2XU*svM`JIP10ib}>>;U<0nn?S6uaBDkOS)3tB^>U(~!1g=h)LM_w4a_QFo zcNtqerB!Ro(t0nl_aA=d*?xeaWy$v)i<-8h@vf;>bCX2(fa)f36>QOXjZft<4d8$V zCOlGgn4eX{g5V z1{nmL&!sUDriGD936quK2{{cn@n@zTNtWS8MG-8lHmQD6%ZNmhM56i#j62Xikw2%A zt{`JZ?16Vul(EsC+ zcdA&aV_jM`I*=FsOoD0xx5mH#3%RsIP}U$2vW|*7hOfD&p99D{g(DJRW^V(JtQ?TggWDO40;LFqvF zL&ofMp=iRMN&xM&vGE9=uI}RZ$PW#jFJ4%K{Vf&{+oL5qze}`6N;Db=XDVEOml`ZD z&gJb-7tua;fzx>x>NJHgbdTnQt;y?t(G;UL@O#dETQ~%EDeN*pck~j+#3T$B0e~F6 zP5As-*z$|(n}3i*2P{2h(u8^Pzov*{W<@T9B8BT-j@4$}mzlj$SeQs{ptkIs1?TN3 zIeQ+s8b*{`p)TPsEc|JJj+B3M(iNI(U zfq-hqJNh1I)E=8;DSqj+)&=`J0FPatCf%Sv87ckM_aw(j3aXE@82w&hz^l{!bIV2fVEiN5fpCg`?SRX?~OAm*=ifeQ?^cM zf7L}qc=||6%!q^q(Z%X$8=~oMMA``Mp$t3?GzmANEWPS^8Tmc(Ys)6>rq;VKt2}QS z?Ga{$v-b!Lji<~^K1*CYKj!?;N~1w0mPj2MHLZfPgt(TUY);ohGJounJBEMqseDMg z|7~q)-nsY^c0FPnS)0D2xFfPi1F=xXes909ORp08f^K*v$17D+{S6@b|q>3msLCmYjp}c z9PJq|@sGPrI=b{V?49o&B%`*dC<3yN$mx5xIp=BMo23m3CvY$O=qcmZyA4_*;r@3I zr?F1%>&z%4Sw-SB0Y?Ax$=B=NYVxheqOo98?%L7Ty8}p^_OQg5@OaR}c@F;au9S+% z#N&`{L^Nz+BeHqAQ2BR>?)|=2lt>emxVi%H_gL(MNEXlXZ$ zTOqfFRc@yme7`B>!V#?zyfy7}hUunki&<=yt4_LylVFvW4cO&g+YqhQXyjdO9QL8) zi`+B$hL-K8W7h-!q6l{t>Y_)5Fv`U+mDYXDF_dEa@VhFgfA)aE#(i#O1=`+vY(D0; zcqwt&zAEnd`)Jj3)gAsCNeCu3$*|k*yZgx%)HIm?>u&EI@2l*KDdKLXu++muOfay!8F*BLejkL-S%sDpoLdU~=2yMlv{oPtATgS~@;UHXFqaY7=s zg5wauVadU<&LL63A?eVNck1?oLH6io-nq%%1zMp+!QREPp(TjWvi?x~ekB5&ANpEh z4bEZE#N&-5bd&8`nN{uS@ke z$q}EU{a}cQm8*y~>c|c19}${<-k1K$$&tIz$bCfQ;ZpzQ@>2uEYFN8`{$V%dZ{x)XA&=T~Og}sOWX5_;p+< zPP`aRytHt9In;aUb(H07l;V86@^!o_O@h0hPd_T};2hqgmC$(=u4kU`3AH`;kJxJM zg?qB1@%7s%#?ZZu3%GY z(R^&le5wF$+DrDdvg_1_>)2YCwBnGo`hm2%>$K**)Ha&*YPs~LV%a=xgO10@cnR(J z5%c&l8pyCPWK<3!LldTsP>ODXEX_k!t|9A)FwNow6X6VPmkd+6#I2@`UGt1R?TpX3 znGVk)rlE-uwFVLFGaJ(+oWYf~C8M>?NQdY3k;e~>P8 zlf&PfE0~%KH_sId&6O(26&J~SwV%uFnkQ2d1a8W?!G_GTLuQ2YRps;5{`$4~v;OfU zBH}ctiY;w{kw}5T+k_*U%){#p^Zg8~(1NcViD$(bHXMZ(u1LqUf)_4MbP-9Jo)gtN|T~Q*W$m!V;nqmv^h_1idkq& zGB`?}>Xc-0ydl{8431A{Unp_b%B$kYtCr8J(J8HSEtMB3ZL%nZg_g?QluDMA!b9^q z21~n|^LqA62Np^>u|pl%Y~RzCYjBin%a`j|lp{pS=P|^$n8M=s3Df>3ity-h#y6e9 zeUu&CT(CD-;ec29U8M4OpvO;mS4y;~pu|C?o;NYgh$gHb3+_J$UEWs&M-9^MNcmef*D74+H zcTQ_`g*9$~8%<`ayl<;~>7f2YMMSR2|Zq`C-k4&+CNKn#)j3xwN_Fw)q_$tnQ$>Aq`dzYi`~v z`*9_!qFb+yQf!~sce=IoEFv9NLhD!1n?`S2#_3waf-0Ts)KOScMVkIG#Gq@YkxHtSx*0vXzEK;LU5*1NdbsG87j=H70R-fIQ2 z&YNq0%}HboLc;e98Xe2jo%AAHTh!gsQAvb8Px^jmv3?K5zYSYoz5Y=5{;>4^@Vov< z`hj4vfe6KcXsdx(y@6Esfwc62^t*u!`oUzeL5SjDmepX6-eA6>HKpO;&r9J?GHk(#X=?$O`@Fn%L-u-hUO_-Il*{?cv?%G5y$y*w~rge-+!S7L;5&c6T?n ztY`QjHjegb9HaH+)Kcd>eHVUfXXOE`Y`=>%qKmAxi(0lCzpwA3Bk^W8F2 ze7VPFV9^bKdh(O?26A(U^1aX+nPSg*x1%;P=G&-BgXN3KOMED(9F zo%&20oR#Dde2)@e#~odxXI!V@{!Y9+TnKTIp0igA+o&wsc-pqWy|N+NG_fmA_Isp$ z@zdrf1`JU3Vl&q&xZ)$1c+a5q(lB`GwddBy^d;GEQwpPBMaBEaBHBJs%)RO_iP5bS*ZvD&GL z8)-*7^TH;efz8@bYoeZZ`>k1&B!I&E)2r|A16OF!$tZcy1bKOP-9PQ!-ml`)tdZR{ z6|k=}KI{=6?`1P?N4QVEvYz{}PU<<&Xt$YPAww9sUy`xUG`e3s%96)`n530- z;|J1{KPx>uDC@HKA(aIB^Gcs`2=M}aB3-EA?7qwZU>;jz4qhHys_u+~+?yQfPeAJb zJkuLkGHzT1=U@VEmXsftGi*wx$J1Ny9EvlYMNW#e5sT?dT>z4>ZPcWR`{y#6 zqd)Eoju2JKWMai+7Cf73oDa1ibQ|h0Ns+TIc8ea0f;IeS_G%@z!g%eVi8f7Av}3|C zAgals^9mGQOOT9CZ35u`>Un9VFSZ>4we*~kc~zmFLF|LPJXG8HMSg+FcXh=`8mMx` z@@X!G9T0QE5h#Pl{7VDzmU1WHGr2cFMv5ItM&)e8PF{uMLnui>jEVQ?RdUTvRMu|J znp9{T-bc9D$H$cGi~zdIXPy3g_ttyuL?sZ>pph2j9^~6WPUKxv#T|6zj&1UfNMz^h zS25l1@B3^Rb;nU%2!?UagM9^=K&hXTQG{&a;{>D_o6(G$nRoRo4~@zP7l!Ln{_9$u z!1UTj2P%Y=Ef4(w94SEtgMdH-nIHoxuvDOoZa_$EOmJvyQeskESVDSGW>iXca$0U- zL2+naYH3kLNmgY|bxwVLRa0GaLkkoJZ|!LRyE|6iHPAcMUp7`dJl;4mGu1XbF}g56 zJvW&CHsf=A>{f6F8cOEfKRiALaW$%W`ij(|6&hsoc8*o3&iHA94yVMdqR z#R{Ozo8?V62+ScHuL?ke0|cGdh?~CTAu#|Xc%gd2q}Z5_re5C)6m*?e$d9b(T!LJcZFr(cg@%$VW@f3eEOV0)<&i?JCo$oKN^Z zeS}OJzTFYhREqzNA_&E;w*PO2$Npz`ELp%3E1c>bfY#%HV^G!S-|kr4_IGoIF~STi zlU+%cu0yE=MjOMQ$&MRb)CAV2T*>cFURQi~;4MmbSs5A6RmfCsZT@|Lcy9AOPgM4} zFZ%Fid&uv75MC95w&B2L1<7+7Gym12M&^UpV$S2d&~)T||Ds3IvNr~$*_sa$hqY+U z7jgPCOP_6^i%|4IkxeClRL1Oa0F7M{If2w$)eg^(>XHDWyJ7Ds5o+_i^)Nb9=P4x$ zkRaM?99#^bve+n;5F2c(y2$iYrYbu6^s%<;8{%*rV>x=bcSrQ=4OL8Qxmo|mnBb)< zW{~J1{0)Vu`npE4sPu$N5LHb`c7RO-&6jlg(YhTA^wvrMlW_OF@#SUS5| zfvlmsIX@T|%)%){%`x>>T(Cn(w%mR83R3Js*{M?lZ;FdPJNK;>7Zv=EVw=X*m@Zo* zuZm_r6q2Rq5~Z#xY0jG*NL*FuQ-@1{sr6V7K>u;AthU|mGPxMJcGRG2eX-Y*_IT$W zJJ7?2;GJKcZ}&U8L}*9JKVtjMWLm`0+*n31sG=-_TIh+4m{v!Kr}f1XiZ%Y^Oi5i(8?%ltQ7!DFuqV26uONcXxMpFD`}Rnw7razhrN1 zv6~q(naQ2&IZh-=7uf6B+R5fKSQI3cVSo4?r)A?(+Ppnvg+%si;^6?=ARpE3r3bdO zpuIqG*TVk(78KmkgQThp+m9NN9);6QEIHO43=W+=+)P-~SB%qVS;I4bb#rrNGiCY% z4s(0Bp40l_aTxmx__oby7|LqSc;2SglpJ2s?^_%;H zO6cno&-qps5h^9zn zQUsDaII%;0bV8TDD(YYHQo;QU@|Pj%eL495Q*1*{In|*0bz9^=A-l#0SxbdeMiF+D z)Zy0;fxJyrgVxS|5zcM76xFJOHWyrxUTZX9I6+y7iRmau^gL>`=AjS#+|glSc{Fq= z!*aScF-h0PRE?b8sMjpcC&M2Z#hB!kiL!Z@-}~2oGAE2mvIA$Z`gh7Va>_fD5_D8=Kp39)Hwk_TW7Bl%zNX$(#r(glA4P@2^(gu|DVq_hP?LKrRa{lqb?-%|nK z&*7pEL~Bx^9*-OA&ZcAc?~Cj*O$6)m=3w-jN%28lm4oeg(>mVX#~`@-XMV~+4l>VJcP};#qh;Zh^Ib)WW*zSskFhEg0I<`HG8Za9;JG_@>)$R zzbc&KOASs!v=T{d!V2xv3||%rUy1)sY|Fml^LnF0B02L*y{WxvIQQz$vC9;&uo$U@ z2j9Ix=Y@Q`ZQx5f>&th1{JUsMcj2(5Xp*0xARfh_?vPE zYkiy=k|WVb*9(Mj8e&eHNW-C4RVh;F%M%_TesB@NM&{UwL3@$#K|Q^Y0RvT$9lM$f z%FNz>h)xNxn8SwG8mB|6;F$D(i1r=x<_8nYrp{P!3$_2p*k-Mjew7dn>1Xk*4pSvF zCTU$7IJN#6VOh3IBp31t0FoJ$M&jnR8yU(W;c!hH`%N#bW0zJ2C(((Pq~S|l2ft(D zi~;aNWkdsmE+$MtTqxQkPFxrMVK`M%Nt?vA^>xYnCg!^kK4DGlO+KujnPUg<2!}G# zjM!4{tdd;hkSEt-HX21niG@a?F>YOLgh!k)5Z@Mh+7YzFzWbvCWf+P;EX-XDIj!za z)|GyqNx_o&q>(Z6+rsY(A_R9)TRtxI%?v>{vF;crM=+FzipglcPM!);m(ND3d>jEI zCa$ntmliCWTH7W~g95ilJ}P)y+(_PJWB;_efho{5$aZemIByG4OLIjT1rPZ={)ZxX z83U)O2C=hW3aJcO$o?tA0*`n5$duLZP4YY|_)>QY#xo_xFvYP64-@{JC9W(v*7O`L zIDtq|?tKzPkA$zV)8YY|v>?aQ_>_o)USY zJD&e`=vS&}bmH?NRQ6+w^Ws?(hXqcUY}j%0dtg3kRFuloxJtMq?HnqZ>mf^ zPCt7+ewWk{i9hs4>`+MA$f$|!^j)a({ZopH4rerk0*+udWSdx5vCpxVYKK&W@s3j9 zG?^dJjRd%xLM)rpG4^{#q{ilWuWl9#J&tFgs<*jcUdn%nJ)3esRfj4Gz4;6CsZ&OR zZ4!7VsG*8o*TUKHBt`1x^;`EMYZiwHe&Em*Tvfnyg>>@VMzz-W#IhV2N~d;~;B1c3~kp`WrM^5qtZ8HPhe% z`nhWanmGqrB>7pH1zINs{$M2V`u6d3zyT}A!8s|&6{sH`pwfCLl$j08iTzfvE7UIY zGdZ5L=qE*EjY{q8=kX;TQ43gl`~g#^z0FVd$1lABne z5>=9cTnaT)(pYh^C}-V10Of*d=t@(#tX7bdk8udMu_!$jZ1bmS`s?jJA2FBlDI=9W z51sgX7QSxUdU{;;Ix2AxHS;wdmkEt{^;^DJb?$CjJR?IRQzsr@CxWm1l<)xLZ9i2* zx~T!OX?yNn#t4ywXaUFQEub-JakTJlG&OMyEpY_7Ah#Gl;p7L498Hs40`8=k@HKEO zuTE^Kotq{n^_q|Tu@P&j;kO`fRviLJ4yPE+r|-u5LI+fK*?d2Jsbc+b6#KqlHfSo>)sBlEAi_jeB38_5g?2J#0OQo!~)(vezy&y2NE`_bQ39D zUCHHh$-mB!JYK%_N;XF-{N7=f5C~&z`Ao8XO<3h@3g`jP*x0>*O7+U{C07)=nef;1Lx6Li;1FKA{^G|Dtcl+lV`BD1M0$5$0(_E@>nG7+ZmWD}tl_aK|O^d0^6lOZt)^7j_h&2A{5j+6njR4 za++(u<6<6=oQ^6aXz?Iqr9;GeKqQ}F;83mOqY*Z4{}Z+W0TvPpGmxwX;WTf54lzU; zH4>9<%wlfIA)-lln05}9p@PE(@KP~+{$&`}NQF4{?G}k1-&+#a0%!DPd;n94Ny3rF za4SpkaD4jk9#53_>Vv+YIK{OgysfwdFQeC+T>X^Xh=Y8t|Dgyg`NkFnQ4B8MC0*E( zTrB)um;*3PG<~lNed&{Yotb?d9(`Ob3V)>(I{nW@&@J+@K-1L(whWToe1d}-xgQkD zkKKvX?0$>0KpND_IG}=e0HDY`0IRMu*5iCA0!;m~^nW%(F`}^FnrNb2s+uNleMIB? zJW7Z1^t;gAwaCAuw7CVgu`TVA_iaj1uvh(<#;<(A`*CnZ>4uu+12xO5U1=z#(gYqM zkWRENhphW6M|hNZ1YaS_JSuv<=K@2SA4!>;MMdCa>G4SE*+|6^No6l{Wk{DV`+Y&o zR^a0Z9Wf@OcdP0gE*1Vl zyf>Lfgi>9(`t7@V7;{UH-EC!s6a=#zSX%>GPHJHFKklcRPh3GU0_p4|nXE0fBCS~x z;G@c zA*>pLbL$Vr_X!qFZTM58i!u_*)+kzIMAA4-aX>{jSEyh1v$W|GY3^=jvBlecAB6r` zj&H5@J2zPtsZAkzl!C2DbVt#&IuSbZd?!l=WW+RjPE=2Z5y&`r5^6l+JE{0lANo+3 zD7*6r{)&sC0$|%(U@*wAF^ZC(oA!G&rFjfla%&@6b5m<8kzhJUn2rk!%bgK!zf3S}pc6(CCzLC8^Lqd`)NnL#v38n}4hZ~AMRMO{`QGr! zy>mv6$(3kYfv7QrbeFl4II6_3tEBEmVNwYC`T0rVaJpemxC{CHJNRe9OBNyg`9T8*atQRiIm93~RZwYj73L+Caex)^HVzpJmexHMcOUmzR;v7IFI<<^yR@Eh z!TwMB{p#-hnj+kA-ZpmGHsQkQ^Kw0~i*0ATTWb&*EicNK6P7QUIUdf0?M@k}K|chz zsmE|pkb6ZBxPrrfb{VefqavWt>gwi2qvTJM5F3$#rv`SuX4c6LM2S#N`FDCecVMS< zu@LI@n{{o)|0F@Rr<&GxRTY^D2q`;+hCKzpUCz%W2+E0m9;rgt0i#hFS`^@ej5KT! zQiJ`zjbIwq&|K|-{!-%F2LX6k6(?doU|LGxt03`D=V@qH$=1A8tupf4qQjp0!jnsF zyW=EmC|OT7Vahzw{=e{;)#x#qlzB;;sk)1eYvo@>lkP=3cUy=LMSDTcy4C zfKT6sl!Gych03W#J)(~%pY^BUF=i1lrnp}w*~zD#2tU0XC?_s_zH1ek9Vwa}Db9y` zyA%^&06^%>Az7x@htBA?;6YXDWJ-8H&kKB><*=UTDxc@^nAf+S)nhAS1r}O|0C_{T z(1OMH4>h>ZSdp`FG_Je4AHd{P@{O2EmOM1uFat_}}El-{$Ei!*WUNTHyGp zh-@QqKn&D163^J1RszuXe6bP}K{OwJ(KtI9zUdp6@8j)A-RRM4>$Yq|J>S~H*hZn) z#(?<;)Y9UVE-Waqp+{{L6HH0y8`ST1-t-8qp%5*xywk&G6H9Klai7_s0;SP>k4)>V zbVi~4t8X2+);U{#Pd{@olen7boeY=gsrr#Vgw2^hp;>81`PFm-qr^;)=%SlM+J@{z zA{4@J+De{42(h#K$(~5xz0Sg+`uf}KU2Mp340#8WPMSbsbDA<0AfFW97Ict+Vr1W= zE-ymWI~)l%G9>1<)OsBIqw3UKah0 z*hs%^w)+8qT;HF$^L042|9)1YLVf4og^!>7g&t(!h%|nQ-!PR~b%f8XidtbVd%X!qz3n{M)8LUf5 z=*6u_X>lX8%v&;Nb}{kY8JjPqDQFS!)93R&NF)bQ9*vLoG2-I^&h-f3y0mdxd;Hp} z^VX*G`p4vj?B=blSH&&Kq|NbCg3_{?^?_B+T|D`{x7fY=mwPv_d*2`TSBABw4o6|e z=TUDTW_w~QmckM~;z+s880hK5r*s5yf`VfOvv?lILDL|iy<|$WqVk8_jGuTCLI>|V za@J0=e>A$gW!C&4P2qTGgOZLI=u%-4jpTzXiU`+!0S77K>RaC3$;F4t+7IyNH2ol* z`|`qYe%hY-;tDzMd)gwH*joR%y)MQbaQD*Cx&>>H;dZLE3fh|)08lj4)F_;&@5?=s_dz)POr-W zlLtg~j0O!)iA=;))l`-jEw8Mut#52@ZEp;w`F3Sg>yh({Kw2RZr@_C27Wyh9ZWre> z_jmq36I&eOhZ=13-XILBcZdiQ;{BlnJYUy}s%ZuzDL(lAV{GLj;1o+ln*U>LjeF9V zYU#&Q`Ty4)`xpl^VynM>Q^?LWjAB+AaVVZGz{LH36x zb)@O{MMDG!m`K%+Jr+72^cRYaD?KCTbIxx%LbVV#gdZ-0M|R&=MtR&{UCg!$aEN)j zJ^eX3>Fg8}gF;`CWZ!xtpf*u>BGEe=dZCsaY`LR>h_ZdKsKG{l*qTFI0b~}8*+F>U z8FKOP4+PTfCOz!|z0skmPSkX0O`cQw&m23Q}w;P#98; z2bSp^n#>qJXUtc}e3J4)#Xig;#z8g9hES9gWd(D$6lF(9qaNjje|j{_Ps+jjltrY& zY+jIQz-&>J=W4-RR2Y$BQC!qe0)vq|m@UidDpD*|KCsE4nY6t}(lPErW;w0uBe1kG zR;MUEtr_EYD>DjcK4fLAQnWm)U;3_KRT-HdIQ@My5YguQwjJ-e*`A|AMdR;=(2Ca6 z4wfHn*AQ)l0{th!1mi=X*tvvlZ%9*)lNB7#NIGn+MP&7`~{ONUvalhqD=()D-L!;cZ6UcCWzY{5d`S3f&RI|Eb z@*Ac@rn}AJL&oBRF+;lPgt=>KUT5&*(XRsbgX5~k3D=|QS$4OxlFf?Nv$lhcr;|qe zqsPPACmWHAPTWZ0zk@8DZdbiBUqr6v2F-z@HuO*KH!~cS(2URthRv7T?GIue4{MoX z9rwqLe_kHI43102Jv zu*ya{JY}u@zEqqd?CF3TQVfsE^vfPy|%1p&n^{6(&^sr9Mjj55fIWfdX~g zJ=hJskV}<7!DlK=H|-Bp$Jh`_^c<{2ZAp6O>R`UIAx!mX7H#mLDfJW4RNW9)U|v;# zA$l&+AY({#^ktZtNCGjPYHedZSGaAM@kA35cht+6g>#!O#a+?hyT6x_p6IlcZqh*T8cBP30KYf~r%VEuD zhOwIJHGktP!swVylT$~H$^-*0b{xQjEl)1z;YYEVoWpNA4MDRWgJkqiam1Y_LiWj% zR`k4uOyd?Lv*KGU^p6e2<2KZ>DT{UV0-a3CKe(?_ROQub23(XKk>#9!qZf*-qbR#3 z@MPSk6$<7Se{?_R5xcJ4WcNDi0=~P*LRK=9AVif2q@K%0wJwr;D>M!HROcO3hs22g zfcMe$I+rq?0Qlh_W1C}{e*bk<-C`!81kjIVv!z`)xMNYvOAXTb8Oy1-3rM99;XK%?|JUx$`P#nRl4@ilq~R`yARJa0JK1>baq76Q=kUP)B^w5~ z?Icex^M13Ykt>1pnp#p8I`L18+CQ^kn4*GG%W%HQq(cOI2V%-T&Rea zZR3Q3`zT*80ws3ln0G*-jt-?^R6AQJtM>!ubAzIeB4HF)_k-^+xub$ue^cW=3`r|< z$NUSA@jMJGM{vg#vhFdfJ&b5ha3?gD?Xe>y#D+|Z53rbOnTd7`vd^y-?#Qm`H4GlV2&S33b;;3MDXS@lpo5A zt<1y>@aA*;>yEk3W?=Fa$&?>`@>-e8k>)G@IDV|&=sI5!!B=KleyrQMvQRU?SN`R5 zIYKENQzNEhML_$B5vdz=rUSFCW>|ZBCWfGHlAye{5X0I+p><`cqoKjnUYBLR#{Sid6w)ekz{wduI{&TlOFzMVcpnMr&oVHs%a#-=0HuUZP!`RM-|CUp& z4p!6uidUJmPdo7t{LSVnc@x$h!*ZPrQm!ocgi~^)Z68*wJ6O!Uw5JmJ|4eLoEm>wa zN3ez6(kBd|Ela)1x7BaURXo>u#&89-%UWN~Y$IFO4wUce`Gr@fCtB-oBJSFs+W&Y% zH*YtQI+JaL8R~a!&cwUJ)Ah;Lwh$skdI6XZ!(yJ>n4RvuESWCDP8)wS4%!a6#2&|E zU#|;3ited)y3Sj6+*H9xi4T*H;C!dc6Qt$=(T=CcD}%c(X#0i7$L9^wl1`cfd*qXe z|HIgJTx+#Bru}K#7nyu_+gNFT;`a7X^5FHR70dH1wv&cU`Vqh0W8(8t5nIVD#iM9Vk$jbiN^SLS;cR&Cd68MlfzejH7{>`72xHf=X6R-P3}$O={z?X9QFk~t&#$_ojiXm1?~j}+5>|uo7C~`xt_8d&K83}mk!^E zAiiLTzcwWBP=a$H=sk~jn5=jBJtTrCIMU1;xDA2kL)-2{VIo2UW0p1B{9Byld!z|lHnY2m=tl` z6mbf{9w!L0aSr;$7-S(EbYm8D3yi!XihN*O6h z{8nkmIcqk2>pmQ2*lr)j8!gA19Es~M!4TaTi{=EY}AU~3!Ng@AjY%}5@{>>0V!DJ%2FZ9pe&XgGDGIIeX#t;;2C6vpJrrS-~&Gnj=Nqa=K7PXCsizA>D>vYd|1 z8IfKro9~iwn4EFkoWXw;0kd|Wh%z0ABVjJW-{M41m&AwUuW%3Q@PbJpOAenMqE2

HrDcK|~*<>r(E4C?B%PCZkDW!5b)Vet| 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

  • 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

    PfDS`B@B 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

    kC>W@G0#$*WfsjXLx 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

    w5rZ2bywYZu$Y$?{O^np7XK*u;Vau0$ zD^+A`Y8*AdLw6ZO_n2PnG3)KIyJIpbyR1WdcX#$U-H{I%cOUBQ?xbvOac?t+ zYzwCDuMKW*Y%hx!?+fvi@ipI{aXT1LJrJ4OfA-=)ap>R$dSBwjp|a>BzWKVMJAbRYmcMO?3cG@|1 z!Qci)luz@qV=?-G<@TXiGfHLWAjthN)ao!|2Nhh5+73YxMjphuTf~r@L^B@3Ll2Wh zPtsqUq`03ZTHW7O+N0ImzeTcNvU7Tm=ZxpY+5H#$HFKx6=+i33vwG39X1%jk_p>^^ z^9IrLCad$7;`6ql^LF%ZZYnB`@g(cT={NMrXZMR7y^Cq9gRi3Z6VMlJs;57SubfP) zFD`zjULw%Ti#xo&Bq%=~^nobq%AdrDMqwnZBwzqG7M7QfpRcz+GyoP792OK27!`_H z9te+*O^8cLh9`Ya%t%eo%1rRdFDNW3E-5W5uc)l5uBol7Z)j|4ZfR}%(%#Y8)!ozE z*FS*%k98tTq{Zt+o2xs>|684ib=+q^(%W)LGNqq80;&H&CnDrfpj`Ay7M9r)%lp1J zNwz#|Ad%l@eY&SSdni@xE0#>9T=ZA?-*h6_axl5dyzlwyck689|4}Ehb!>g56Zw-( zXY(s_e|PcoQ%xHPq}bb$=z6x-rk5x!jX3pQ_YYcesHlN1qio)*tW8 zH|~L7G&P(+3WxIbhMF4Bj*&}=KWF!>+QG%hzPX|1X3Tc(H5i>iwj}GkCzv%ypGW^r zMF$TFH~WImv#(SDwd+PX3w}2lM)jdgevp?=%rPd5{_I&fivfljCb#~o6G<2D^A(5L zz{DJ`bRuiIKH`+71|mERxj+7}i2x(Of3b;}t$cRXuwVNbtM7N0RR=_VI2~t_mAjl^ zQKfM!mb3QmN|NoE=}PjMjQ>iC%hA<-xLG-iiRT{!TeO^UNID9UZWHjFV=W^}72hx- z#wc$sE6KhtH6_K5;<@LnhENQ1S-z=qD zqhh_1kaPQelvXNLGe3fBy4eOKR z+dBBBY$I_$bnG2k+jdmlxbSeS&7=QtTpwC^`2Ah1<HHgx+&W=Ce9NEe~%fA## zUVOgSA1mXyKP=62;ZXhJYGUiW;(Rpiu;XfxyMeku{fH%@+g#2rzC86%8M+$SG9r%l z#;wp7Z)sA`ch8r0Fh7Ae`}Q#dTa&Lv9$cRofmE3N@IfCp;vhJP4H1TX9Njq`1u_R_eT+!s2*}YwVWyv($beRs0P7;`E|7Xez+-IqeECTfjZ`T<>?$Zt` z2bn0mKex~6d{S3xukMn5bEUhUdt^5RQlU-38Pg?lx@-ITJe>)*r;49^FASEENKetz z{oE`#NKky1Ci0c%F8^LcT-0^ChZvp6Y=2k^VJ5pxRrkw;y(s#rbWi1;Ue!FVu%e($ zu6>+d4a~q6&B4O$(9`$v*~q)_O+6l{tb(g$SzNcma*0`PzmY(sdYwzwqwHJ`m3Ki2 zXhc72eGp2@(rG_2{2eQQm+YX7R5?Z`Vw~(ITlpYwKNREW zuWUIU;}G%E4M@DEm?LiJGvq69kjAvmCdnrE65eu@R}up-7g1jeF>Ceicy=ckBX zO?x`arpEN@pVqEs`FALcl&<>xAV2O*eQZwjl8l(LX3=+l|$t*W0_ z+_wB8uiNsfx?we$$yzIG#xV1^G3N0H-f)7sQ#aE3sE!RDhP z|rZ@NNmXR-)~8kVDS?2%rph9klU1EF+JK_V z%96Qg)7DWZM0eBMoVCPFBRY#Q@#mH0*{-~*1gwbB!J~4xV(feKvnlfa$2DCS?Yfa? z)8y?>>c)x0tjf=3j*oMnDK*$iXe2nHejYqD+e9&F z{qv%JfpjIg!Jl?FATeMn!6>bRZ?MVN=6osLnZH}QNZL96JmJoZ6BKdLUX1zR5_jm+ zc}ed5gcZxh){5G}OoyH1vuP_{bnWoK^ZhhBS95I9x{=3Sdzpgt7SG)4Mk7@Za|km_6=hFa1pRrnCj-i(>DZIm&2x`O_)Q(g7A8Pq9o<_ ze$vf&AL1Y#>N)5}u@8?B*hn~sJSRDrZBvz_#nOhAFp!PT3^@~vVKcVm~d*`135kXe_ zr|{E+q5MBn--zN5$UH`6vS5r!L~C(jg#Khlh%iz|Vr-i5>#~Hn8t8E96M~7j@SFZ5Xhb*@4G{%R#GR)ER2mWN zcmxFT5nLK1Boh(5ri8a?BH0}y9?3?~IYtVYh9%cTikuKWJc*<+jTDa$=hTRjG1VGS zC*Tc>QmQ3*b`nJ>8}-UR?5ReydJh3(e6$Env^HMYo0DjOW7Ip1m}X>z(L}UqZOk{) z7>n8vwUZe0+UQRj5xN?&E2}XO(-4E&ST{%gq@!4O$5^l0U?+{ZG3r>@-Dum|I5OF| zkh{T9n)o3^Y*c)ViDUc?y!ZsipvZ~%wwyS4ZDjD%1VB%G)>>d{d_uiRd_hl~{7HhS ze?r;QzO15&@`W`@1O?waGtvpd*ecAdTep+#tk6ila#iQUf~sG<7sS z=_o#ICqC7hJ@wq*Z|x*?r#l7c6nLfqH(X5x)A}9O!Z-X=iJd}mY16cG;Me7Rv7FLo zW#F`C0Th#IFHF*y>U@XvpP_mh_#z>bmOWFO z)>HO0GrK$Eou;3bW)|^krb!;!L!~ZDJ|OeMdVn!)Hcn2K?WFr#r|ijzM5pyM*MLy_ z)9j=1EH8m9Yt5WQ{%jbByJua_T5NU*ZK?}x?i0CO#}jCbK%h@Tt}|^)5=TJ5Y3{;! z&Sx{%FwHy@nXDWR@3gwSG3mUbQk~|7^nr=(Javs$OW5w zW7U`VN|z85K+b4Och}Ly*9Er zKdZQeR=mo$mDj2iXRA;TESIXU+?KA?J+o1xt9r0fVQ}X1)VT_dTV2^7zc4e3MB0?QEV%t<*KD$*{w2baF3 zQ1{NYF24eE_oQw-*6yGNJ;(EItNyNto7REaJ!e0=L?gV{i7ZW%gtc z>V~`YLKS-Q&OfA2_s$#kmK10w3-vA2wO0{Z7bo=%v-C9xY3H8zrS|u>6 z*R7yc+0dVNt#@$KsO#oHO=kb7w)V$wN>3dI?#ISYZ<>EQA1F2)SnSsr&>jrCHn8eq zxX>{8S!!@wTch>nkS*n(V)a*hZfpO8_S~+fCjZrYZhsw{{O_LI)z}2Gocout31-ht zNQ>~_i`8dvt4aOZb2E7eW^TEtl~NY78vTJR4N*7`rXm*o-peC&VhxouVaL#+OP z_uT$pNLYnENwt5)>USD%Rl8kDSmUVWF|qoqvB_rjpZ46EhlHk!-Dmj$kr$T$7aAPW zm+Xdb0M{=F;J_1BfX1*G8Id*|gjQ{N(_ltQ9S6U5f4o4F`t2Xx%Q@x1Fr-gB9ROdg z8#6U2(c`$&fukq$rL1F^4A;U3?>1Qz?dhj)#QpS8_crNov{qozJ3Pk{T0=(T=ZnJfZapwz5s9{wV|IAG{v| zX~3XU8R>^dWWnxl-ZO1=cL`B`3U!rj$T74<__Y|^dbHLp z@ALp2nL2I2E{NCrDqtikLnxEubx-dz>yhYm9~KV7S~<I-P66;mOE3N zEcX@UI$uR}5sG1c?J5`zlE)9dF?yIyqi8%vo-iI|^f)(u;N7+T#CgK(tEtI8*(dUq z>rw(Zrrnavq7MNhhCgZ(hRdt7j z{_%ITSL6!pm={w{+s%ddYsVY*9>bk*HuZ>T)!T?E({L3n-jda;cQA~Vx@G1Yu#6yj zMaIg)xAKi}5;X=tjFlwgY#GxyPmK7*RAl>ZnyAnX_h6!(J?D63n(TYk`>(_X}{t_cn<{1n?ao$32Ac!=oEoy}A5x37kZb>fSJURTyUl9%KoVZdkxH< zTY1WH|B47^&n-a0CfF+CedBf7VVF|IXDZB|+ti|8NQkZ8>gJSynmT6BZG`yYfayK@ zx^Hme%A91@)fYSMqv=(Tt!SffS9@;Nlrxw;x7RC(OJe@#Ey3C!*;MDjFKRIVok%~y^M(7R zeC=#Xy8&9~i_}9kov+2Mx#^PT=+ua)Der%ha^d}fS>);A3~!IBKYu921R}%V^_HkO z|H;2YKt)_?^K80-R1+*VfP)1Tzpg{d!Xydyxb#h}cKOK@0~svDK75no0lrTn_C0&> z|6=dGqncV2t=|yZ0z$FT1PQ2g1>K7DqJT6N8@-8ARYZCx(h_>;9YXIAdar_X2-16z z-lRw``Ihdz&pG?td*8kHd+&`q#vSLM1OjUWLIzox^Ec<*tv;zIiavm_GU}noZBExL z)TJN_n*<~m*$AS{tKb)D5G0`(q6etM*0O-T+IybgQA>w#w`m`I3ZWDQ!uDf}f5*Yx z(J3DXpY+^570Fd6DPnnQ$T&-neKXNH7>4vS9gtuz^Uh@rMdQe-Fm*T>c>PBrUnA}b zpYNqN6T9U`yez%mEfpe@kLVS5>??^|Zzk3_s` zu%+V!!tdE98WByWyJ1?~JSE+7`JI+H-0mEl)6@gooAE?a7&i?gS8+LjhtA_S6xr2# zmbca1IPksC35;cs*OCUAUq=!$ z&|m!pdD#j2-~@x&)PuifAi>zT7YZ02Cg&hUxZ_+1B>gW|1PKUHN-BF952HmZ(8`gX zt!S&;LI69?^`3obtDe0c2pej+Y?G~TJsF<314}W{FrAT*5LEncQJ_IzLl0R`s^tVW_ zLBNl8IG_M-mq6wmk{VR$O^2i-qExe|%J8;~KuciUWUzz?d2bKz@N--gEKQz6Bk{GH z#NiwcFn~k?Yvl&GHK+iXP87)d0CwV}wxgY3RPaus6e?1>wt73l1^gNHZ z%gZG^0x1NrVuHC)$)A>^`xrv=1e2xP$?uVqNMfxXFhD9>ooe<`SEGYtxnPp&DJtCL z58EBN`2j0ZTd>f4w9Uz?BKimwJTn3-vrRQ6C*Mm?L;%o-4*`86@5IG4y=f1ay#JDV zNGaArN$L*=$_SC1#@i@r zWZ`_W?{SAmao9KxCn-myPGWuMHS#2k-K3DYsq_#XW$O)Y%IhsiPekUHX%uw^~xiKnqn$9qU@M={GNa$Tt&HLnwFPr4|CG80I zM-+d-mihUXX&?$c;O@a9l$xq#VKJFkBcy|Y3USq>AaYo1G+;cY@_6-Qj}Ns_G~inW z>>XAROjiUs!ZIm5R*@KhJiat0n`tF`lay-tVFDy3VzsQIg2aM~RrO(J(lW*-2k?2& zQe8?yuuW1^2QLXmyiJ3D*Z{l~$q|dlns&y_>tn8y%P~AOIYzr>`046~%P=;@OfzFx zt3!^aDFEju5>u;-Qpj_cte;26hC6uO^{$OwtbvM>S!7eG#T0;Jrjl>X7@BJ8AtBVA zWNTz(N@G#yqvDbE@wbI6+~^v$2P#<)Dw(U#nX6U}>!En;@s=(OklQDXsz(LRW3bg@ zxBcwTs-`ySs;Prme|tNOS;Xi2N{M53wUx)fwknZhWQp5mH0FVoTA9yT|^?TlPIX{2(hZrHU7FhWd?5cR6iF>VjER$EFZ5Ly<; z>syp~?DKjt@zO;HS5#3d45L&HTX)ENAXuCm9WkJ0@m{dw<6*;zY4ST`&+9{$FPst{ zLRqw#^-eqr9TqqGH4DX~nW4zU;N&GkRkq35}aPmt(EkGW98l){J=@ zO+9C-!{(4-J<~ytjcs3`I;z(E2r!uAqwdS{tvDKKp(ymz48kga#KxyxgEZ8PG{>6U zh5Uv}@H;>Dg&sWCVtd?YQX_(r+vms@$E;~@o!N9o4xRDtru7eH*Rm2jiGQ&c8Qe-J zKJ54wnQPyccN+WkAwxrl9#O>Quta01V2z`+WYL>7n^d*XCDC@_30uSE%>5_{r5f_& zAvAommYUL`#sO$)%cRSBi5u?^DIk8s=uhp?L!n?J&ud$(o}te@_#LpjU15Kk4XYM* zDOZEGc(>ni22}mq>tI9oz>coDVXJn zR2~sE*rzL)0?+MIQXNOQ@Als8v!NFs3`gDN3~()-c?PIfK`j;G$yMJjVGq>>Sh+E>~Kgg$6nY^0gF zI*NW;ITmiaM&$Xf0`uSWCcl zi!TM4lcy_o&$b7IK2aqTLgDLZR|W(%i5}EPl+rD`VZIrAE{>d?R}>^uUmRrz62v)2 zJk-7iALXvPq>8SS-CGO-r_zm2JF;WHM~`Csu@hsYZ8bc3*Xu`;9&O4*+ufp@CsG@( zW`dkDlZkZ_z~crAnIK>NH_R`sJ`vHP!BaC#ts$ogBkH$3;XUNI(eVmL4&An8W=kpb z_S!?ouyX9({4bMnK(7&EO$`C85HeGLmtYy{(5NiKKoMeHftVi}Yfq@Ee;C|a!usuM z>NrHHT4{IfLOT~w)AL_j=JdZ8E+g0D_$_U8$X>X%qE*VDWNfewY~Vwwl2H4Xyon z$vSULL$%~lRDws5<58_YfrloH%4s)C0zF83Oig!qyH_&l$=|z|rRNSqI;k_MPm0E; zsNek2y-aR!40bPrvHIZ6cl}S=v971)>?aqyD24n8&9YCmw9ICyJ9Bk^j_G9Fl=VoK`^q1_E~vPXb~uZy#Sj|A0VrP;f|SSa?KaRCG*i zTzmp1F)2AEH7z|OGwVO$+-fg+LhXL4(rPPA?fCaNx4$X2d>T3BPfYsWkOoEB~JHv7%%s&GojQvCX8dBxX3hsv_=Q-9~&LU?q$t1EUEamkhxav2jF1!dMo zEsw)?t&8(Z78h>TiXQGv*QHYi>g4_aIk%34Cv~-_#|JyBe{yaabdJln<|k~310pc? z6r~TR9ah9RUwJ@PjAuOQe{pU$OEVzn#yN|+7Cs!K-xUdRZoH*Svw!2h>yUmud<{*YU!Bd?T%=MT>9S2CI9 z**%m*Hwn#pv5#`c|EB~Zv7i&Be%h1vg1q14e*T!BCv8TXVt7K6Wg&~wbQ8i zy`~EnlV5W@s~J~|-@c5k>w#)v>q#&0<~C4V9mh6qC-Hm?U3mQNqw_hfU!2=ofzX7@ zPtGmk-R)Zp9KnUGJak`gv+_}&w}kvQl!NNxp31T87A>kS>Jh6tDZ)v87A@|T>2NCk zD&JRK-1q1k>_@-!bG(1?fYNKqlEG)H>$?NGM$CI{Z+>!ae$(9Ra2iQX<}ou;+}@Z) zi`agVd7tzCsP*dm{V5mH0NW||?==B4_H7f-?bpSM0wb6?KH>y`OX+EJWM7 z2rVW!#@jEY1eyuYr6#)^eaq2w5gx_jJszwTyN}!*F87T)9(+BOcl^Ej`-bCYJ@to^ zzLtmnC)@4!dhYJ@h)jw6=u@n7TnCfMVnwVUekGGx-fj0r=++!IK2NCKZO)z&KW=Jy za(4J5Kk)2$zvFxD*=CPx%>e|4f!wk#gSvDhydS`4F1FSa3iE%W*3u)o3^b5~c-BQQ znEYF71DOM!#+_wc4-f$w&->s!u7PWL&s!VMd6^^l{Ssln%}bmN^my%6vEsK?KQpgj zk&@%OG{+oGZ0EO7qOrf$^2Dw4y_NmgcW>0;EU{|SHmLA*+ z5Astx0TnFcW`W8rf7NH2E7Iwe!lhJ}HdfkKw(K6_avujer@V$gzt<|UeGZKhO<_AN ze<({^804mua`k%KJwXkSbL)J@*i|ln$Kt6!W^Rr{hD`QJ__klh+8geNQEe)f+hM#8 zY`jK4gUQc?vO2HxsM;%N?^#6DY9(`dwkhh9SiUP$O1m9F7Dtr42~79UZ0;usJTQEzqLPgBu`3aSWhF70y#JK z&*bcPqePyAifv`F&qe1K+cDwK5l>1lRI>YP`#ITJ=)C=Y2?-;1v$6c%yilllk1cn!>>F`3J&hzv*aTQM%p#@ z3ZrIt4DWS}bZf|C<9{ZT$5;!!0*W&p<(fWtF*NW~v9%5`e62V(I!Y^!smV37?HKEV z+oX8-X?{Q|j?V_j7Jhk@XA!X)F>-sq0_VS>W5F}AqOo6j=T@#zLC3^~!#$2%X3{)k zN$)7<{puy{TuaT{g!irPx-9$WJH1xa-bqTS+3Cu6;X58HBpJdiVZXbODoszamDK}} zv2L#lCW%E38fXlOtyS5k0nLNP>jO9E_&aB)9M#UxoMKTAMW;wYz+ke?rpI$ou$3sQ z!yBad8Yz7{xl;Z`uzSnwQO>t3$HVniCk1HanmXlo|5mxj7N+px%E@A4Uh#nx5vN9<>r8jt$Mty_)g5Cl9AQzil513-uWC* zv9*tScUFXX9XcfS#IOS$o16$f-!*(d&duiQ>#K2e;?Ix14x)L|2rth)0+Y!GzQ1KW zd}O*lQPH0$ltmrKp`ikm;FHoY zU&L|9rL21KJ%{e|XA?iV%W7v*)||m$^83bn^`s!@cBdKS+@2hSROW(;?YPpci(TOB z8(WXbszJr}z@I8_E5I@K!Jf{XzQoNr3*V-RMoFPIzP|5aRVVXwm4cl{k1Zh|s}}@& zDlF*pcH)o6CC-7I8`6a_>cZ)g9KNe7r29vjBKuqj5w`Lu)bg3Zl0qy zzaqZL@vYQIe$44w@wCwBQ1@PaZ1n2;z^d^Yg8hoI(+v?ak;(mT+h9rU0_*Qp)1*%V zvM-!%qDUETTtgpx5s7DXaIK!>V1bo9KiiJP%i@0PIqV)|+l;5KS$cc!P*qRwN5;dG zsn?WJ-MJ>46_AM4Df>NZolJaH=4tUYLbQp+Kbf3h$p zzTX{q_T8QDbmh6ru9jKNZds2rvkm^Z4k>=nB4NK0fP!4bk8sS zh?h54@j*BSFQI zPS!ic&WG0ByG;OqGm+y1>DeaGnol4kuIxBO=90z&Qw ze17V`G#ub(?YBW6*jeJYtri$*5U>{+=#>;u+YoSc5U3yKpHGM;isCvMW|~$*lQVFV zE?+(bc-MQ6W$CL()D53m=9Yg$79qg^COWN!y14o*{A-p|=}D5@$k` z7{WS=gX`JDRHCjwR%cRevHON4R6Ps}4GK#nuuV6jsu=ww6}00uVS5eBEj$k0rt zpk)R(^{8kD)43NaF^5q$r4ksS==XP`QtYD*L!vS&qG?}8K5L1_jwsw_h$$u$NmGw0 z7rK=d6;sW?YcPlo@H#1PwLB2cCt+segT6&2g*&7DW~qKhGJ^0%0;>TzEzVh5w* z(hFlpN8-Y^V)#H=g;ufOf!yDsPM&iA;V@DU`w}s;Ug%b7{c$VxFj?_8V zDiY3wIHnI1pyb?hLKqT8&O>_)xdO*&1%^t2eKQI}Eu5%(KklMKq9a=(ePyElR}9lp z;?wgOxNwr|Gt4!IB)z0W&dQ{xvx&S%Nw?1@@(U-U^b_wmBx@uk305Za&nAf;CBuiJ z(uq@~+dq6(PmznhE*zbr)XpkCnxb6Ea+@*rg#){QMyi@An__gTmWJ1*kyJg#t89#E zZ&ujYHPVc;STv*YY46&Zo{XlMuUvl4m~LfyRaGP1PMGCwbh^`Mi0)`Qf;;torS>O{ zjK>Zs1=GA(qYOW8ddJZWv`L+dP|MWNK?z*sLa?Srohom%!-XGV^#`xx_jlT z)aWd8R7Tcl*6We;TFY65j2A+Lbm z<~TQ*vEZUF{=$Mr0euziMsxv_CKdHq0sJ!Tn6dDh2n9}~kW=wIMNA>DFN|fZke`C$ z>gA$4isW>fMS?NsFUJ&#Qo#7eiX@N8e!E;OeVL3yvslg%#uHPl zQWk$pWCBxWky&DQT;_)>MT`|$h?H|GmU_jMN1#i6G)vva%5Q0wqbUk)MJmF1$Xy&O z%#O>WH4B5sDrkH`&aKiDvGI==Be)F$!|Wc?rX35nq69_S;MtjJuH&fTUFEQ zQ$0CW(Q&!{Qj`h3lzuvPhU3Vn^%xF!dLivcU8?B}D@hEbGEaga1*? z86uBOsXWJ_QE0V+TPu@wywTINp%(&ShkXvJY!G0|=Z*dBcho4VmEM2+nRTrG{&P%BOY1STX((f!3)cR7l zf^P=@8NaIjqU_Ub2CLy>Y5}spSox)bN|(IC7l+saqw$th(-y>dioIy72ziT_Q?6!g zt3P+EpHhnFN$Z{VmSCmo7>%~GmDWhV%ImztWdZT`3BkqrBNI<6T;&UDMSGU83D9WL*ofO_s6Uq1@eTyb1Fs-Scf- z+vAy2T0QbB-3RaDx2k&vy}Qp~UsjoL&RIP~6LF_bxL)}l@`=w8<2bY_j^+kFj!dk# zfec3*m)aNG3+L`-@{hfA+FRX*W7AIG*ZRt_(#ts!!&>t-$Gi8Yf68U%KB}y*cOJ#u zaPCW&|0?__jbozkqAA#g8Z9K&A4b+E`zZOhxc+0Vex=hWnbZD&w!UY~sS?@)(3O6* z)5xba0}kH(I$}wR%!A9B18>A4wVem8{$ATb~X+Z5wp!O8THZJh424x)JuNW?0gDC}2I|HSK7r2)foO(KXrER3p8H3awt5_Z_KMg9V!H-dRkJiS; zWiyXsGRK)!{ zMtqOG<$J$hW*U@ zV*G6O;S}%VP{y;_WYp~KJQQ5#o3qHQpw766IOfjeH;?jJNu8*h;&V3`zRBjHB;w~R z?Y=2p38OfhqxGJ9wgJ8?pMS?Wr#2ZOQ#(&5Kd&Q>RK2pGx-|FZF@99oWx<+k!PLd; z_2j~{jCpgaaBcBLeCvXZi|2><#RtXH9Cen&ITuj@BXqS(Hu6gW z;vUE=%Qu%6Lu=8WT$XXba&)|V$mB9t#u8>D*jjw0w{1?cWtS?Ol4AgD}%57{=xh`J$KC!s|W5cJ- z<-0BL{m8{-XY%`C`Ud35w7>W!QQLQtDQA5AW}DG>Se^Ib*~;cC)aH3UXA0e|CXP+| z@4oA`Tl#WaR}!4)ShfomH?QH5=UlfHfo<;Zj#sC)lhe2OpZG9K>^yGW7MOAwiQQ>7 z-WKig;==C;p?277Ptv z{CCCFKSRU+o|r1SxAZeK%r%FWrZt%hl4H-D!~dQd{(r5e_DjkAmsX`x!dJ8|rv0pW zOrxy-DW+;LQB_NB$`KVVWc_2!W7E->2R~~bdG#*BzVcFb$nyLJe~l)T{5>>07ykBF zXxJ>OJnvsMj~mtd8~$~U=7hiy6y>;wS>Ynj)di(*tB-*$=M%MTp*GmywNHZ<@|wxnWp)e=2Zq& zH1?y2U?Mr!J@-psXc!bz+s|`;X8igXBGAb?^A6;fcpH&{!x(ly%x5;AF7i;$#H-JY zo7jW>-Mp09SR)0=;B2$*1kN5Rl=XY!T()}Nu_Km;rWPAcDepAifVE2Xf}fuUjH?I5&Y$~6x8HicheY6|;3 zFf{D2jSsT}2rv9vX{5$>%OXEk%cj`0lfT>|n zO>F~H!#hzpKQJ{c-({+?6FuCSCQ#PaWd??Z|G-}@qIba1@E@yEzl*7h@;wf}i>ZIs zJVGclz*Q-n8>5x{)On@*)a^L0pJHkl2h~*tP)sfUc&9o;*1H(z?*N8|=k*@`3=KzL ze9Q2@8Bo0SHKfu?y3g8o{H;Hp&ok=4hgv8Kna3SekB%tVW~{%M3M z2FAaeN#REDBAqe*_0!#~0elpvO4$k{l{uIirp#7r$$FX_yqoh`>gu2PE0`Jv@mDZ4 zyqjm&1*V4Ef2yhPr7ueBQQT5Hf3}PDR>!cGB8I=*{zBoW_6d%f9&S&P@o`gr2jS-- zqfy%{GGpL1B9&5q0!u88A3%@`qC&?-fM-5TA6+~(0nx#WY_~{8?Je*R5 z^#)A4ks=vw@)K6-Q+^CHFYLD ze68&g5#G@sOMJnul!i4!nudy1Q~u3<13V37c&TBMj~=XPK=Ccd0Q_e`}HMYpOEYT5`0M+$`fKo!*WF?YQ}d#oOG^5 z0%#zW-26mx@d!uBX?~N|PVeE;a1T13^qh&32dg{0TQ2;4ngj+x?NQ$mL}jfAPR(<; zOX9YeZ`x6InbKTjtxpQrRZvhP;>)Nf&G9O7qI|U^*r(oANM$3>$b?}0E{XFnyvu5X z7efs*Rub{=HPg@(EQ(Tqfo)8I?PUn`fvrX#!O|wY=?3Z%Awhpd{f!DjWv#2Pk0<)! z*wAy@OOQ2&bDobS3C$pHtg6^XH>nQp`9M6*YaQWMN%E^GKAAjz;>fU1Ti)dV)B~Jx z8rWUncd~UhCQ*vId=_8cs$1aZeszR~f^Q#Adu5TNUuX`D&$Sv&Qt(pGf`R}2Al6Sy z%$!1WO=%T4Z>gq91)GT@N(5BW910H|X_ejBB~_9ndi$Mi_Cb%s4F}&@=|~75pmOJ` zhQG#}I~uFTfz2KzdYdW8X;LZvTjo+&z0@L2nhC1?b|G!I1eW9t6KYXz1(+9}HD`EQ zaIhe}LD{W{?mjWQU{x$%fYbvbXPO8)=>^qWh7Xn`H!&>4j_XyPlV_!6HaDBT_BiX_ zFFqmUKpfs;VmTT$V(akWaDvfFpXPd8c)HN%-q5H# zw41!814Ybp3LxvzKB``Ts1dSb;w2iH-joJAx+PU}4LiSBM zFod6X5$EXL;>{5<_3sFjjq}pfRUX0$Iow#)Y!NN5YhS*KqciG9!c-RVwl|mDE^q=Z zVR}!Sv<1uFjoUc&OuLG3y3v)I$r|g5Ky>109dQshdEk?dp_|9FK6i$J42`z?rnT@A zMU1NF8#zNSWoHl1PY?D8CG}ih9ZcR+Uok$it@U&^a8P&hop7bfj5TUM_TF?3ak5p z(+9(08LkF|&{Gy8Jqh@|hK*!11S!)wffs7NcSu>?Gkk09DCxp2wy;*0_k7#Zp#js# z0ZB*I(iabQ$$BCwdg&dmd-&Pfcu(PcOTwIRv%mz(*?!OmB8c~2qPhR2m2yE<%m3g7 zmjO8sG3-0a$pxi7t>>X>AhV7O*e(aE)2T4D$VGZ|vmPgw6Rlom_C1Vh&=`1t@go^A zx}gUAIH2UB3);C9=&h&XkMVhl@>s&6%Q=DNee`*wKmv2$MTD17YS5(y8MKN$Hz_sz z@C9`GCBbxX14bnt5tO(o5oE}DS=RBz9NIw6_nJKg3kiCu-o*>z0c{C>n5n&6AId5l z@H7)>Ce|Udr=my+eZ2f!kPF6SA7;po^yd#6!v>U<_#_yFymtpdAU! zszo@ok*^B?3d>ZcV01V<;yeR27t!lN&PXG6zW@Y2STG|}eLoB>6je|kxdM+`lZA#d zyyNBqAjoi>o~8e$rFTWtfK2G3`3H8BXk%JkFYN1#HVWy(h#W5SPeN1`YBAqsiD)yy z$S~k%{Ysf0avbqKdnvN+&`h_@uNRJJBXi(=7~7?e>fy5Ti1O^%)UA2xuqJ~bH1--; zHj+uVypjpi1qoe{;>Ot3qyqd5@rmp*R`ziXlIG87A=i}+YFnj2?t zwP(8S4crQgIjwk8JOXn!1VnLh@fDZ>hF6+!YY$21G^6+P@`-5KurHg$x(H*BdV*@M zMBhyUZpnlzqq?pY(G4`Za$YEfA=~aYJitR6bK^+;rcF$z-YbTC0It-Tlo7IAk=!7l z1{VyzIP~6J1t_phmhtkRP)(5&*3Fm)N6q4!l|Nn+297cf2$c2wRiLY0j-9rtiX@n3 z$yd+Hbj^i{>aJtplF8irCNHDYOjnGASIF7-3=K+?G*tY&^<3>uQysH374C$0V4=b^ zMjRQse5w|=0unD$Ji!E~&-?z4wx z*WrH0)@Gv%R-VdG3+~jMO3fQ`ubY)$Uvv2I$yEQoO~Ph#oY!nt&5G(fZnefu;@d|l z9?G_|Y1s|)4qa)si(hiOvNU)d@DxE29|GXo6kk4ys~L+-=T42PTJL|ddH7KTXI^NH z^2VAs&%cH1eOh1fjrP>n9R&&u!uM>9=ZEr_?t(rREQ;Q_QZ{Fd8~LN%Bz@3#%?CSd zq~9y^fsq4Xig@dl2Gtvip?B1Yr-u<9z3LRcZ$@A?H? zILo2zr8>W@CM4~n{Pc)KHyvU#K1~W33&WvWjKw5eIdDy&!q9vr^K~m(3AJH*lYC*8 zp818UV#R%%kLe}UD)$960m=;Wm@<38hacb+Q13+powua}22m)iVFcz)wGV(j!n&8{ zYrr+0nUpokMqm&I4jTCIsFy_kM%Y#LGA~74g;L!^2cVJ>g1%nit@nD(J1MS;_=!qv zi0}K(a#Jt<&`9j7^$Sp?^c+$jGm0NY1d!J*a%HKGI%M2BzLJ#zi1?L<)|XdaNyk({ zTVlO2#wr3R1ru|QdS{erwegU+K`B<=79h&9Bgx6*_t?vNYzw~gyxnumN8)l19qYD6{L<=CJoRx?%XK%)t=^f|=n5v1 zoFHjwA(R?Gyk``pQ<%DD1AS}*V|4@5c*B*GhW!4z7Y3o|>2P?gld^qdi5kI;7ck)w zfIX-2I6b zC?4eiQkPonVq4A|kl)H_aXD#0Ftxggwt8r_dO5YCVnI2%)o;8t;G`AJ)D|q-7OK@2 z?$j0;+ZJ8j2G$D1pR{3^+LJ`vQ?%OCoZ2&D+iQPo$r^9ZJ88!@OBL-b+x|h8u9CD z&*_@z#CN@(>zaXet6%G$SL*I?>K>}@9_#F$;_cXE>QPAQsO1HAnIQYIJ>AtE$4V4O zC!G#CFP!f}isf)#dN@x6&I5yUug4`#;|L(V=e2PcopG1qaC9{|h6&u|8^DG4y>S0t z*4*B!UA@=WdzqPgxlVi8CcX+;w`?>0T9wl76QHDDu=|HqDdztBr|NQd`epyNDmBsn z_*4aY+W$;!;Dz>p%I~XEH3M1`13IUFS(U=pha5usj3)-oP6s!G?ptg1vBB!iA3e2p z9&)G|a+(-&>S}jk9(EHO_Rt>o`o~qNfYV_#^GLAR2;7Uud=1c58rk~cuNFEI&8!fw zO*M5evez`2^82ckHf>_fXx`~4mU*mDZ0v6}kCioJ)qk&f9B%7F)Mcpl0*Dd;lEylVnrm6qls?<^6GkEuo%Fd4D zUsk31CqYxGX#KIo-Qg>{bbUWwxbB)$?yB+emv2i6EK{h|?MnQ%tFOB!%QR;=b=zcZ z)`a>_uQ*^iu_w^?{#?(H7<={V9m0~#zmN*Rk9e+(YjIKL; z{CPSSe~4i@N|HEA(LGATi;OxSWz`+!{B>2T)b+Uh*Q!+Y)N$Xp!`gqdD%Cl4(*5VE zRKM=&pzG-aDg`D~@`?1sep8vbmP1-~80xgmky z`?V@HP9Wn7HVFM10#b$&oc{XYUl;#+1pe?P@Ql$9)wE*=Wg4RdFv|jB0HO_j*!0Tt9 zXjU{)-cQcDeFjIscTN<_lUu#FvYKE2H_p0c9r1GkN^v-kpx(i~=%1P~)+8Z+U4R-( zE8qCn0@Q!a8n6X9Yq!r7U^B*?;xnnkCC7xfM{68C4``}5$IecE{45kbSOi~&el0+~ z{wxLQCas6IKXwX(BM9hPB_HMFf1)`7`!YUd02-Ta^qp`bvWy0*ZrG<7I}GVVIj~QZ z-<%$_21M>5E>$X9aw&NLx^fS?KboJrk&{Su?%rpqIpqtNP%~6W&Qd~OqDpr||O;S*XUE`bygodb?BuM6|)s~Om9ZhOQsb>D@EwE4Yf1Ndun|OijHyncT zcg}j}@bfRuxZ87#Uz;ZjN^`bs_0U`+l`Wxx0|+wU-01y_1VtIdzWOW#UW3AW6g-;* z*Ds<+N4uL#@=ouclT;qPABs88uAHQ&`gUwq!!y79{rhtW9O6EX_5zG%otpRU_{y0F z1+v~uuPA1G@H_#K2FbT>Sv^0?K3hPrnSIXc*mIW+S|)4${+ta?OHq1=W}msqvZfyR z5xif=JK}b(7+h?jF9%Q>?`^|)CW+LNYP}91cmzjm$Sy5Gsf4l=8RI4a)jbT6H0~XQ zc5V1ZB!q}crOEQ%M<{t!`BgS5#H(|}9`Lp4CisCQnQ-SflC|mLt5=B3>d>0}G_Q&Y zAOyh_iEh^w*_sb?`OfPq83Y{cHu4;NA`^f?iJcGxEOL;*W|$%Ii6qU^^^Z=Pmp!;X z^R*&3zh71H1B6r$yJ5X%5TM$fW;49yx*P)OsAPQMg>vgP62c(nSCi5wd*@{Pe~agM zkKR2m)p7aCPQ<;gSGSS&efr>0H<^Yv!r3aj{LOs0x>meS>U-F6w-SY53sPeagR_?k z^A5R}<(ndD0tJXXNPEXrE|0Nvr0%9S;F(sQTu7?W-?J!chIztFG?A5Na9f>e;sOdGq_cj%B1Sbux8 z8D%^&*2OHqMssshHeq(cjoz+-gNpjcQ5YZ`S!!9OwPwV3+-Jz{@!9g+JD-@7%Wh&8 zNJ8apsXO+Qo~`@2LgU-|Cr5LF2_#OBv^0nja3T?i8!h(4{bY8(uU*CVM$%g=XHv-- zp}@*Je#07UjuF6htSL)6>;@QggA-%@r z!nhV~U796pX#8I7FS&a%@c&^?_EcyTh$OJ+nHKZz#X&{B>U5% zP6<9eINPCOy+ub0^RS`2Ps-}DmLr9QO7X^Dx++1`B=y8mtA41&O!xbTn472$(uNg| zjUQ>3lr7ctG_ek<(z9=SoL=$5OZ31M50X8{FM6K7 zcHZ7JP~LPvWLR6;@O>n`&+xRW;-J+#I{?uFd&udN(+d8Edi#qS$Wr%QHQ%Os)uk|} zSs8?}mm|W!yA0w=fOaa)@YFFk^ritBCXH^0PxFDFqad*Okm|lz7CdGJpDEvD5Vq(yRMZMye z{#(<*g2V*smmr3R6kJhccht#0FnqXVrSXm|^vz*dBQC@f9^N)>eqB->ts17Q?zO2G z94dg1a4`Xn2dVTh(2r#=K9a#iHzP+%$Q~_+1!P9~Bi=ibMWo3s)a5GBe*PP(7N25F`I+Y>yV&ohS&tS%;}fN#x|$8Lzt?4EG9j2-8`hT z%~ThspUe<9m`M|4AGbNEIkyn|72{`~7AI(H`G7{Z8?IJnf}Z8FuDfozI~}yDuATc3 zFeZam9a1*YC$tQPZXUW++K_2yCh&RrN}>~5_z@I_?ldZKQ1a+&Drnz&45g2ea`A`r zN4A;epuUc|pkc6J5b3pPoUcyd_0qYmB+7j{hWRMcCsh+P7qy0TID9<6l_hQ2;1k+5 ziKR9z74}|JEW8yMHRYp!s}u=yx$X(sw^}zc_1IKvCV3S-oFG-HmQ9@0j?tFgG`jM| zLQ>B(dp^dRKJ2-IPSY?%jseCeXso~RNu|st2qN=LIISer{5m|X9HaST@BQw4@^9^` zU@M1P{VTsAq=mxA>_`f}^4A9odeAbPPPqh6be!i(VgP?at)AL-gtKV)8)=+I@_xn# z;Y_{--6*oSI)qLG(h6?~4Omg@z6(5RLF8V~dPx$O7ESSh=IscF+XHsslNZ2aZcMF^ zJtB~l%dZ<>nzpd$E3-+6qxIi?snLUsZi-e#9%)X>C%I!RO4$L)=?oEbeD>AWlqt2` z!2vTm4GP(M!p0#J0?AKX138%jfU;>)*~7dAVI8DKUNuJ3Vf3}IGEu;;X~14?pK$h} zgV7;zY%w}*mDF5oF$XEB88MVK8-c|cOG_LWc+o+)aYjgUT?shW+c3Z1r@-1Xa72UR znVc;+Np;iS{@SqytzqFpg)OI}(QmC3LyPZy>s_Twi93jiM9}u1ql+N2egwi4%N&Mn zjD}c7|0X(pnQ3BmcGF%{XdHQ#oTheuW)fDJs8aZ?Hx^3rCArzi7;se6_H}2ju$7dw z)$;-#fv2&H#VnHE??pb^M3bKhTL$u53V$IyGsto5P&0?7 z+4&|T9o4l3$u84CK;rtk!aH(3JFzqXAT?gKtGG#0>;<*3%##3*bh6!iI5Z(<>oH8c5tZ11Olc`Zw z_cgm7KcLUUo_Tc1A1MiKD*bSnTH@_hB;BDYP6`#)!$T#^>&bW<@z#Z)fAaESjqD4e zE>kEw+5lYi+ZwA9je9`0`ni*P3R{r&^)Li>C3V(>p$(!nfYa7gH|p zRV6XnY<3xPEKKHCS;DT6q2N>-i~16np6rGpyoC%8683XaGNL{CVwHmmwl-8BiYF(v zPTV!lY$^G~>yw`0mNM9?CPc2q+ZG|$9IoUT7W>m0DD`a9%u#hd1R|E(O*aVL16i36{dtR*f zqINH>b1!{dFJnzF(?su;(_T39SGINjZ=zq>oxgI%edW$&X@U`Kt-;hnbOiRAWq)b~lO_i0`02OG*B#P!Kd^vN^#D?0Zpoc1eG4m@Tacp)~x16l+A z*ZAI3-W?b~P7iot2ZA7jo|1zedV}tWK{w1`&B=fn^WX>V!H>>^mT`mDHG{SjgXT3u z7F|PD>q9n_!}qKoEc|!?g`<(o_(4?7u+PM>LDz5~7{PttmxUeJc{( ze>#F;9!(M(bx7>`!y2doDeIrsfUQ9-_OI4}j%R!I9}7@_w+3DjlH9?Jcb|^qm?wT( z1KJaVr=mhm6OnhHjZREVit*K6rfxiX8Mi(%ays!hYhdGaa+7&#TWsow_SD`#Sp!t| zvtP&2)13qxkJn)LL4zQ^czU6}8+P*v)s>&t0Ikam{h!vrm9rW6m032>8qk?#cll)v z)Xwrw&fWyAfh*r`g9}i9w+1$V#hP#8XWt~Rbj>i&2^kPeyUfYO|6vWpu#Sa8<{wi< zrwjgR4V>M=yaS%q&UX|OKcHIpCu^X$?_2-oyxA{nz;SGz{?>xcU#)?+4|+Vn1*l)v z0MF~COh|~|mF3_`dVR6waF^xCfU!&P#i+^U_<&1GFzVZf%TdzPDK0A+@he%iD`RZZ zIWF=srz?fxt9h?hiUZ`6T~;e=SE~aG(k52xudIa={9J$nt%26~wf5hwfwMK-mG!UU z>-{?GgD&gC@#~|t>*JI7^~wLfHDHyp2>CbGKo#pI)xWU@*a^0n@LO<}Z8nMRYr5O) zuG^dm+hNmN+*8{(@!R|?JGUiv?&$6axUTTJ?g-cIh_XD-6Q>ND+_?{01AMYFu0N8Z zcjW4RD7l_b)S<+U|9G>r(;~SRsJ9DtjY;wC7X3D(h2Pa<+0)1CD@g1ay6zb#?3vc> zy_?!I!|$21>|03eTj}oGxbE8}>^s!$J5BAo;Qu?;K4gkQ}VPo{LHPF@!6;v`OgS_6DaUtLcHzjgNHpFT|HRr`KAD{(gW z&}E9$jplY*VoT})Zs>S@d6i44(jkHQ-4?kKhfBJuS$)&sZUpnwRAHOoe4*0DSy`r0|;Ppl3pLc#y?2n_>d;k1dSQOX)xb4rY zz+(vJ&#(S@+rO^=2Ooj4|H1qI|MjjX{+Ih5D*y63e)Y=y4@Dt7XpiXW|I2=d%%`7z zNBbz`cfUjC6Cods=y`&F_B&d)e)l`*iQOd?|E=Ev`DedlA@5&)$A2*j@sEB7^#8E; z-ce00h~9Px0d_)*qJUrtDn(S}SO7sGAWcL?rPqkki>UM(dgv%fFQIn`y+Z&gQUs*; zNbf|Yx4gk~&diyaJG17#_r2x2->l^yW*hfT@&{|NpFGdcY-ir)n)vSW>I= z@D9BO5Qs)dVl;AF=v|f> zD~AWqaumh07Kw!p&`F440-aiE-KnGfw04eWV<8x1k?3ve$HC242AroRxFh9td*K^C z?SO=uoPXj>#GsGX7}8f2q5*Xh!W`HC=I8(8JZrOT)Aj#_yrbvDA`WsSpA4GSs|3yE2!Od87qfy92E|Fxly-OE(w0$@^)pNBe0dsYHj=@+IbFUX^@#LBr!( zZwXM=Xv%T6ZKNd%1bNSI2ErhKfr8DlN09_(Ul4@M7a$_Qky+q={{E(CTSO}*fo~Aboz2S_YIETX1oKSEZ))lNo@q^)PUBDr4B7}mc9^t<< z2F{zVpa4n0<7mMPZYW9wNSp)}<$u1RK3L6Sj8;c>=75Hxx~K6)B-`GGFg zou-1g8{|Y@nM#dpi3Mo?0p@(A3Kdhb?u&bE8Y743g3Dds5aaEDFq3*abi6Q?MS>u) z%mU%}T8l}MH@xRDT)nPz| zDjHkEGS=zw(MAx+w>B>n1rP&AUUZxbH1(D_q&k49z%Ao`#8BpVD#|OAUfL>a-=KIC z934^X@n|bz>CObJ3xZtLrIIr^vmD9pbmrEUg>{m~0+P~oG+wo&Dd^FLH63%UV3RPb zeET;Ep4;^&ZN5R>oN3P~9xP9$+gS%-DdlKJAVFs>-`Rky6mPPx*a~_N58e5eYr_uV zw%rbEUe+b;c%hdwu#?%>Vz-(e-|Nn@F337X0ha7xE|a1bA3G)jLpPs37Hv~CADJ+G zjy17Y6eRqz6hwID4*Hf^mVdrNbaz;%p*ZC%yHx$v=;S+e_^!}x`~0TQnT9XHAaf}w+F32neHGd2H#nl_1aEKZj>Nq0G& zpoY{50+Y=!PQX*w5T>hdaa>jNUAWfK__!7LF$*2o+UtdocOhCQe&bC7`G`3=*;6bgOqY;q!cm$qJSXgL8FCv210re&vwud-1J_sH^|6!UoUtH z<>|vCeRJM_O2MtlHh445qm7k8F~af0ZEq$Y1}G9-SoUs~J9w?jTj9gASoHf+?E9PB z8eRy@5-5aO=xQJ`#8TDroS@jm5Y(| za36K}LWrW;2j%;)wLykaPCZ2d7Zp3l$2;_j9%^a}ucada?P4Ii%tv9)oP-V5v9kpA zzdQTMQRG7y)3;~WZG0BJLRJ*Qu5*HvPlD_((dkmb3{JtoH|^(`Nnx`J{wg!UuQO=5 zFRFVZJiZ|U61~GiZol3DX$F?7iws42E105hdwbrdGr1pyL7Q&RGCsSnlJqGG)*WOh z8=YhjU0=pf;S)V)6Ggiay-{kHaEZS9RCN7)v+oh=D;DoQ-G1vM<++6n@4WpsnVK;w z!?kb7mcxg!r95^`-(swsVTwA=wpo+XAZ~HtSW$S;l96TnR%|Oim;w>9cHe6KR6q<1 z10f}L%g5&Z1|^mYc<&WJvcrl9VBNaH#cUXyeXuudRC{-P2NfJYLlgQ^sg4gu*C0_A zJ^5#+lO{t2q@Fj=0ZZ$ zxP9_u&AHe>w|!GCl*CklAlyU>yp)zwCUBe;eWI1@Ountd>S^|yi7BLc!FAlb0^A5x z_V$+M_CRAfw4%>I%Ij4}X|y*YmYjs_O;wNBp_Rr_rcoP+d{jsO3aGe+*F{ zz6Cs8^t~^feOEuD21^ys2IA^+%#<>`VHj*8N6K;SOQ}a`9C8~{AZ@;H`la&bUQh z(s1w6elGYTc!NrkNI9AgG^ATF?0rDM4G{_&XP6Gm4#Rx%`%6n_EVX4;lC*26?2R0A?41u0fawG~16_?a9x zNl8+Gh%*~Ls04Rxh;k4$GAk)1L0OoQ@~D0lDVA(^TzY(${w>;4T`rT2q00F5*vZ=& zxRDp14RZ?Q9Q_b#?>$jED6p#t6m9JmNEMk+Rop{ePCBf z{~D_~l&&;QS^xfgtu%Kb287~N(4rnGc%cSyt*qP2(ngm&--FiKGv|i#yTjn=JDiy< z>Y5r}HMbm$D`79>n8^zPBxj?`^Ce2Q zqN=UTQpz3FRyC@1-;=K9bbFIydka;2OI3UOX!~b*`6Pe9XQ%yEM3f(@qxZB59NU_N zi#mfN;f79sp1kvUTJ!VlzKGurtcMONXZJa4rZp20y5tBnE`Qdz)%j7OwL1}zH|o@D z?C8LD9{NA&-e;h?`%m+ZyI(G9{mwh8zg!vn!guh6|ICpJai_2Irc;kl?2!s_?tR#a z;tnrRuP36{1KF!Jtt5RFxPJ!pV60d6pw}DwSwfZzx`aJM` zI%9n=@Am7T=||lKbOZYJI{FQA`i-svCiDYlWaf8u;Pn|0xTA-xLOd)O7~mhU)f#Yj z8c0A4+Q*Uxe&rn=v4cS!gYQ-by{-;@csOK!_nElWqdPZ2?-z!=K*OGhVGrbR?fy{u zncqGC*TCx&AUlta$RuBRPI; z5`)00shyW20%R4UX6nxPue@WLtU^d?PfP!ScRV_r{(C9}MLhu}dc-@H8a)3>g&3DL9H;XTU5JQVh#GIFc0T^0 zW&wM4F;R3eS$i>+%sUuF24fbp#}{)C7jcgSvOdEO&n%TVFC|b6mXUeK_)^W`5$^yv z2utYB`nda-oPXyXk%b_=?z8vw6)B8><@rqN!zw(Ycy3YjB)#*dFZtd0ixYfm) z)#dTk)x%Zd*|qPYYwOx;o6c+7acjFZYy0DChlgwbc`C%6i65e*AINj-N4!I4UD{<` zHhx`>%sVF5ACcA-&TTvu+fdZmPFNIEH#=EF<|K+@+hD6@7+^-kg|M*AV@w*Bkqz4r89rWwW_mORg+Jn)F16C!9 zw`&I)_m(H)Z++D{RK0gNUwgPbak!fIXpwZt)Ua8g&^33BBtNye?Q+YhlB5xG*=UUf zyRdpFcFQ0S0IiV3Ur0pMcnwG;DogJANwDei!u}cCv#D| znkRqFMcx0Ii;_FdaE5ri?m}+sU*@8iM@AT$xU!ZD&@*i4EJ6Oi%tcw7FhIt=$nE{# zb5W}mdTwp2mBfEJA^)Tk5|mdt?tM*^bn&GBtD4QyxIE`?cOdz+1xwA>NPppk#9Qqg z(qfnJDo`*$L<1io6ihAnm?xlPUdC7mw`?5@2B&0hN3}Dj`>Y!g-3z7=fDGmi-Fu=3 zk9@+yz0NMrIxld^4Wj$L(wJuuV5q>gP5ppblU!wi^}q8a5`%5ALXJdg6)qV zIU$B%`ploXs3$#NFDF{Tyd>5W2NF1bGLoZQ6n%!QjNF$&wW6PEsh-qQ;;a@a{0EFQ zx^g|>4lKF7&rm=J?}-zZ@fD>vHolG^=b|>qYpKS~5M{B9{XIUA3=}TAtjgd^W zc-~`uorO9>?{VTupG4@bpKGb%dLGwKe5K*qc7y0)pVLV?cvE&P(!xf>yF#Zd~ubmyM)>ZX+p0gNHsFhZUYffehId+`eR@0ITZD z9J~(wQbpDUxQ$juaOKdjbAL(M$z_@oM2ZGCBn=Xitwzb;H^4QSmH*IOsRrfN<)&Pe zIAf+S6|J@)9A4Ugi{h9nt=Fpk78!v^*itH}%|x;AHl5Tpdet^QT2We!P<2i4rS-ao z-l|czh)0|j8U3*v&ebF(sdjm!zwNtqVGmV~)v^7d_Uo*5oaio+O``)@Z>9j~K@=Q{ z#0dr&PoTpo&w&Xs*%^ka*?RbmQG!Sz9*O{6I}2gFBR>`2Ra&pX@5*oj1U}1to`OOa z7aY4p0GI?DnGWmyT(1CJG-wJpvQ?r?pc03aHK~f;S9`awRr*CKmy@63{P2TW*0)2I zwtW^CgQI5zLOhCPQi+k(m&b))xdN;VNJ=;PX=)c`3NhUE*k`7YuL8QA=8uZxX73nO z)myefcGyfEJ z*GXsZIy252vrdCSVpiX9G;VT&kM&;hdD^@?2ra*!b(wT$?n(1D{GPMLE4zo9%3Bqc zANV9LVB0a@&+mB%OW7EJOK`0 z!m1{_ZYtyB+v3ym&+Wy)I1Z2msE9!5c1A#?*Go8Cvxt6K`*S3`b+I2iTIoh2L<|Ae z9;^6vX8ttOvy@FlS1cwMe6YBUu;4fW2j#x4oVX+E%B;!&ncv)jaBO)nKGSi5zKmRlOPlgm;zag!+*XsKov{98QblDlqk!Mo zo)Z4CZrghvyJhcJfyHF^#hnif7;BHkF_Cr{zTH)NChsv;DA=SNFSV4=>11dd2hWQ? zbW*{s&8;eb&mo9^t?YC*{x~ujfZ4YBDyJ{^qrPjU)8(4tW935LvvlE&jy+8-yDI2C zoYTt`U5-?>i`3w!GPLvDz-5pfwW=!)WP2^uG^LdC3pM1#JWQwA{vy$dS=Fr&YkF1M z(hK2Ys0>*uR^!D{&2T!!;`NUS0YwHRH(?>#uLi)lm*bWaL>;dh6i(YzN?uE)1ypr% z8}%gCJ?^u5uAsmOke)-6mAtav`EbBslh$a!{VA*02aqEL!VyDsb+dLLaH8^popiUo zG6`lWn^t1Bz$leR9TII(<{g1_^F*27lzlbP=3StmevDRP#t%Z{UWDO;yx-2}=fonwcv@AwlmO{ zqd8@t1R&l&=XvL0;lGCRWBu@M5i3b=#Gs)6p11K{I`Tc9eA^4KT{dJmdFtuGM+SbP zm(oe`OrDTYyvrgFz*gdS?Ucj)1qP)VUpMUghfsS&Im2T$OQrG;EksYZaCgBIQ23Bf zj*>C;C5C6k;ID%&nox(`l;CxQ&V}M2=KOcBX`e+#;3RK#GsKFeE3YT+lD|y#3vx+KI2pBXRc7XsLjYg zl%&Ba#y4s&;(Vgwu)d4f*QP-9NAIA3`}Ef~Lq&|Dv1t}64k3KDVug;n)_oGkPfd{Kplp$@dMG%Fu>|tAHKQRkTkPCHM#&+pV^_f zq~N&Kows#RhV;RpZ?_!@KJ;O>@m%wM8ZGglMJOjRlnecS46o~ril?x*f)2g>hPPTK z7x-n|6+hACq+s2NN+)>}qL~AFmW25Ahc+)v+(XNTXGQ5s->L%(WaFEZ!#};>=?fW24y*ro;)#YR^XFR z%5P$lPQFWTf0H+5t}&@0Soa;#sZAANUrfPK+nlYS)#QTe2?IMmsm;`$AG_4wS_9O) zY0T*D6Zn6ibX6$23T2UU?^TUl#OpWqJ|Un?(l;~(X) zT`mhQM7p~#fNG5mx3_wC(%H`r7DS~wKm!?1@j3^DrNHdvg=yd0p#R_Q4}bRO-S>{AuXF85 zI<>QJ;O~=dhjUf{18KaibBS6|a~5lw!F;BB2QN$qO%7Am~(7n!U9Y_^3H zCGk=Cd|wop(pV#rQ)fdDBF3*Vzh&jwtp75-NMzfxQq~g;fNNzTQf;p~PQCpg@H}C$ z7`f$#L#ke(bq@;5oW$5B59FECTIzYmx`XtPo4V+z=q}^8w``IWsLN8RN#IIea|d>l zM-G;UWGJSh9IOI<*93g~P#RZ~9YpK&hzn=aSRyE`?XF-*$&02F$U)#JJ7g=qN*N05 zm8_Y11iGp3%kQ^041WPY9QQgt#ka1~25((m=vS?w7vsEyZWl;r;W7iu0Gyjrb5}+Jw=rpry9WNzAch5H&S~>IoS)HOk3rpS4P=of^$kOKJe0b zE)CHg#xsoSU*rz-#a9y=%gJCaS`eR+~ zSms1syJC#Hh_>E)&~UQFggmtzVNGwZ_DUS@X==5yms@1JKQ@G1 zG*GerV9BLWq$uB5LgnYG`N4ihSpyD1THrYd73lpI#;w;Uq7wWp65XpT9XJ((PC-*L zK2?B93g&?u?N7peS|fZY#MS8XplzcAPfKFjDzX8H5UO&&4S%}5-v4o=rW@ZWQ1PAi zSXs(eG9!sG{IuWxrclJSqtr-aWWz9sE{!Jw(pwHzWD>xo}Dd(_Y-%3)tFA6jn+_9R}Z=i67Xctl#ad{ z%2?g?cb$;G&q!{Pb5XxDk~?EP)AOC8rC(K{vC0mxqI{W`phlq<+twLGO-1pR0gVz~K9p!4Uc(KeM5L zfT5rqAT3+rbw}T?PDrxWaIN^~)Y#$7-<=S0E{Z0yut001)eqlk~`?SFJaoQ@btLVfM z+k?>^lyQ#)IRRP^0yOSE!y#dV`Rnojdncr3YNKxK&XE%`E&Om?g5jC6!k?XxN8@J} z?n0j&PX9RyAgc zDD1nwK(Z4ex)7>;smu~MvTi+kN=60@N+3H`k&}duUX7KWRD+T^#8bk6J09O zUaIsTE{R*J2xRjkxA%WCl6ukQkNcAf#{``9xIY{(32mf{8zvUB{{BODHf89lYVFN%MI}j=ehyrv4 z{I3+&zaM-2D~0tBH;4cG)sTO!Wc>3h88&N99+l45$SJH~Fwcm$M>;7 zO4wyXRSOTE)9e&ipCcvGuN|#q&>6@!u>Dj+o<~8j4QH9BWd2`#I7Oay~SeLp_ z3t_-5>#5Xoh(|V=2v*{H+Sez{3f}6muH?z#+^?Xg;jKTh$NEiP#WXo3akB)n8sZdi zj3K}8p5t>WF&=TKBGTi$9iozpDC)ozdE_aEeltc#m zGB?Y!v{q^4iRu?%TNU=VbFKZB)cVOn3t`MmQ``c46}44m)17;)#Khw&=sC?RCA5y3 z!*E|>Sb60^o$`eTn8w7d+80B)=sFAK^VwL4n;{ZZ-$p0{e?7KOMPBUAzfOQLvE;2e zUFJ9(9<80+%H!rgpBO0e^|+1RM`o^7=D*KrIG3s;DTa@DX{Kyg0{+oM4JeSOWfsex6q&&7NU#DPS zmn&%AEiG#lvwZ~;-kXzS();KJa#vF!&WL|3hrfMv-S~1A`rON?>SoUC94Al<%IBy6 zG0bbw%NPLSy;FcdxFzP(O)!@24m`a5-HZPD-0t`IvDVE4MT&- z7ks=c?YoNkUSLsmF^1&j*w=FzJjOj|rhohWKYU91t~qlxN)Y+d8SoRYAVm{a975C%^&G}-a5x%()pl7BF)8v z;M8Q`LTyVwX!F_w=PXU5rq!&Q%<1@D%0^NUxatjq*rM6CX_e^ALc?5m6ihq%?^S{(y2Jy}!I~JJ=4~6S&=ZMJhBG*C6+O>&PylDi6Fm0a zGgfbRkmi&j{Wn>~V?MxBDuz>@UM!e*Qx;05JV1?*BDYcSXX5+sSl>wL5NcL0B2t|^ zIoyp5QfYqY!yn>@4h){hFsm^fHX8T#2P2K_FWhIWnKjvGeIkAP*v%9>j1Z%c&r>i~ zkplOj0WI~w0|pAU{V|}#aobn%#E0^(Fbf}AwT!@i89?C^1KRK{_;$E2F<=!0mdJSe z@;;sHLO7-z<`fwb1|mf)5<=oyBHrJoO%?hO5^4RQoWXl8B77(^Qvt$k6cSf%ccq-6 zOCTye5*A?aBBR_%#g5)t)=Wm)H7C+~FoF?@(=JwXh%Ae)8G_|~qC3&+Ut8|z4rS0u z^?joj<6`YE1@apYR!#X7V<#Bf1AiWO3)6f*Ry90)gq#Snh#2*;60(h+1V!{(hff*3 zt+oRYrx<>*Guxw%UAkoUgF9+e0ivNAKWgJfPo6UQ6c1hmsAbH)-Nt@lR=bA=UNgru z<8=}jVgccV8?p(4b85$h89Zm-G4Gn3GK}magnC-21`a0RnO#Os(K8q)PB$6%FTjkf zTsenzyqXgi%SefP;lS-u2Z79xwo7l^P`*OLNyld$+=3I@k@3F#$&$X>H|%MvXzZTp zyZRyZL~U&z4=0~#PL4sK-s5#-GgD4CdkJkPCV(`2H_%O1P>uo9$V;i+(&8&>v^qGw zwUdyVxs=-(z&oiJ4-2eCtG7YFO0s~KHs0g$mKR+npbbx#E5+haT2{Ntm5me}O}dSZ zfG-zNHJ={cYz>n()Axmvb5>hYc9^J)4|r=1I5sZRM+)Iwv0-5!mE?|&cO#^U?Pikt zlwS73Fke)fs8t)d-Hj^J+>!Qy%~>TZU_=yD6robc=9Vc3y{>Fn*_xf}<$JIRHSV2Hgobzf~`i-)z`plONb9qk%fPkm~3gU<3Ssomh zY%BWmD7nxyyGDCnJg0>VPO}8*M=2X@s_H1HZA%%85nn*KfXf8RAbuQwwDsFopjE=( zszO6oK&_%gOMO<9O@ItJK5(e0e&f|MDAn8c)Zy8C88xf_oHGK&TCgPTLIHoe&09P( z`>Lnh?Dl578%}R>LrV;vr{1LZ#DqLW>?V$g^A0w-^FU9MU+1=nmKYW+in360AbF$j z7dni%NfMY+gkfjjQC zceq_6Z@G*LWUUpoxS2+QHm}(6%{Fl=|=gH+M>3PB4tV%%;05O)zk-0 znx^%hQZ~Y-jctP7Cln!42<0c5FDiU^{H1kit~`5nziA}6@s(5=y}$Z_y=#`kQ>**U zV=N%U{f}}Q<&`OvMh=Q6`6-)FVQ6`%hCW!BsLXZ8Rdcsxmd1}tIg=L&rqfirjQQjy zm*S_8reOgVA(&?x0D+fVwE%a6eO<%FR&omK@yTX)3rBB|UsaVm_eCJkv<;n|+a?pR+wYKLLGrIxya$X9%T(KT}wWUHctmHKgLi=QgDN)%E6S zc@3jT7;Er*3PeW;zGaC{eX)vmRI^jas&f`CPJ!>-J^k-bVf`)kczB1n|AnlE9AS?G z1k)`A5Ke-rug9Cv^CvaLy-NYkAM$7HaTj>v)JxtQ7Vqeli|tdb?t7Her`6G?u+sOO zzW?dfe!YkNZv1@|*nU&9exsHCBQGSN|8+;NH|n!s?7+F{ip0=536AQnGF0UA!E??}=bBB!v( z*dsh(I4fs3vST=JWjLCCr10uUtl3Dy!;#Xl;i@sfZ$aT&^1z?eki=i!wN(F9Lss~I z`E?~jYYgiq+5fv5GJbG`JxE+blUhe=$e&VJ$dtI%Kc%p$;nPmPtz@iqH-`qdq`^lI za}>I@2tXVma;o6bOef6w+0H)U*Od&i8WJAx+e*g2nZi1ge|dc$i0hb~_8e@|iUCNA{{%HEFq znZl|`c$STy8b6eR-Cmt_UY!@MZ;CroLlRt9R{sa9A%B5AUNsWW{=^=S?~XYCmcq&# zUp9X%Kp3Z=G$)7dw%S5AZU1XhSpQfJ`SNQD%jF!nDKvqM>&7Q5a|GJWKwoR0zn6$MSf72?S^z_EozRs=5H(R7N{-s0G{V4)TM_}6p zu($^0+#%8ZSQ;ad-X@Vr#0{e$lApqV>iy*)tJHsvt28N6tnHIjj$Z365sNMIi|VaD zdS#vTf0@d9)n)NFFBnQevGF$t|8?MBpTPf{Pk`yKPjj5<51fRINk9w#t0qI@k?#N5 zlOg|8^pJUiJN$pzn)n?JI^*B~Bq{ZI-_^BfPJCZ@Cz5`u!76TK4zWE2Ycd z+xVNW{Aj;9VEUs&XfFH5=Q~@=KRS^#SJ%5FSyh8E&>YWSEw-Ic!?GvN>YWe06Koa=>hB%yuqkYus^bWorUW z!?#WFU@_nRis8=Pp7a-7-JS}T;oF%GRWaY0i7?3BnT@eo-I>FB^X<+jhnw#%q^ITX zE@qdm?k?e)`SzBJ2F&+X%I0$S{(_U#DkU^==k0%Q7hK!_(Is>3_cd|9Z1c_0ql6Y= ztI&x&84~{LaA*G9QzZGf!eDXons~hIvG0GH4C!~TBauR<>V63(Plm9O^$>Y7Cy5ZT zCvy_G|F3$;(PT)`Nd|I4i@~1gj-X2bPNm|GMG-yVuMsen?F(=6f3Atsxz5&}8Vzeq>G(cVxrwwStC!P7@n)s0LU518WkN?=3xH3S1ms(2l(dIvpSbqbr zJt4_Y$=|L!`8~pmU;p~MPY?8WzeM6aQu$Nv%Nz3+Mz*zc36$>0n^}iMcdzRU)!lyh zIxHln@1}upw_V4pio!6WJa7j3OQ(1*laF_q0cibGr{iu9`~Wg97JW;>p1C)UrZEl4 zBB$WR)|&u$rc1EPb$ct{Ok{~omlE`S5@=kMgg8i--HKFr-}K{%lMH~Po`jTyrku4h zl7G(jG_pT5^+IFD!?)^BV|R0~O^Rxz?p^V@G-j;nv_2gDA!CURzc35A*B?+Qv64!u>0Y zmmKCEOzaMC)ogd)?T8PQoq!6;_&6 zo8Cb*zS{m=;9+qCf*~IxBR_du=S3aYqt`iX*^|tBJbrwEzc^cCeHh!en;z5=z1|rs zKDDquDb|!9>@7dt-)$Q!_2`YOefl(42vsA^5aN6l6)(5OPOGYObZBAw%&}j}+iW`cQ~ z?94qPXz~p=C3d=Cy!9*>t7pZtcHm)NMX5m{vo|R@03<>J?jJn=Fgi+D3M2s_yFhRc zG|hV3dWL~njDQUrzz(XTVe6tewu}H$v?Y@|HD=GUN9Pwg)3b(=I+odTK@jq!Ii)Ck zg?hOH!ixa2e&6@JI(XVJ$2 ziK!LpI%;JnwSE zavq1Bw-Bu8&KUzS-b7Q-5s-j{g*JFj)1pv42N@d~16h&K&S8%aW@sl??mN^$L<#oug{xLZOjTnX zhVhFw@eu;F^)4ObVAc`^k8_}}H1`B|Ib>^1tlUvl81$~$!_N-iUkdkep>3dLj{s^q z-OYY4$D+4udyCN|ei?>3L@48yxFZ(ce$9ze2)+AbB%YsMp=PUm!YcQz)>7e|la7G{ zm>c|s1vF#r0xM&tDFcG$tl)!IZv6J_r6x%18&8m9JC|b_r|oRxizOe9o2;M)eRtWx z6QX!Pea^{^;8B!j#W&zVEoer?0#@&GBj4la<%e_`00m(ly4xq#3;;btHz{t*K`%#X z7MDt8Yd0h^V!#yHC3>zDtj6kXE9LZ}?DR!e=y^Cu9O?K`(1;wBDQ0mdm$1aqz+uUo zdxEY-Y5Meo-eH4GLi0eOfu$tUM=Z@QWcJNslOr$AkWJ{d6bS5+ZdGC95x(s!U*}ru z?Yr{A0kuVeAX45?HJ8Rx<%GEv)A-fPGD)#QN1N^JS-siIT<;LPa+F=J^8k`U9s!0x zg7@oMZk4kD3L&J{kj}zW2DkzwFL$Eb7`g0%rR=fxgMz?a5kMQ4ktEuDLN!R_t5Gz6 z02ZLuR)C0LO_Bu7c!LcussOQ@RFWX4!ZhHyVGu((Q>1?2oPf;=vl%Bp#G@g!6tXNDPkjDNk?cqZog|i=5-Ad$UgwO$Zs!6pc-lko|%7tXXtoj z1k@+h6&vBZC}_XbWS2V_B6sPeHx0x;4P)v3PDddaL$F{d4OR6y)@TbQFuy;bhTJm% zw}*o`;cvc%g`SGg7-6+Vhkx+M*S|zVy`T!d2)FhtvoMbgSNLYBL_^(TV`-fMRwJk6 zGQzz+9oL8i+?m50=SXjs=FP=Grrx(B<$ej!B>Jpe2i=x9znhdW%l|pZ`^ZOWy z_@J-J8jIs8$(sZMGInNR5lOeBPv!?BBV8{<>ckE65jPk#txUqjt<2hzYx9C_kMhbRbd_~1;kB7#x0h| zaUKs`-icGY6#E4lzpfVl?5WRYWc+S<{C)=Go|}wR>?IEVvjxL8V^)ppK!;U zEvO4n7}5zRoM3}DsU@)5!v`Z1P7gD3MEdjEy&w%Gm_3OJw@!>iV6WN&yisA7cM~sW z!jwv|Ft(%yJyOy*EdJPj=dwC%=Ma5GK!JKHvw#!yo9n`RRe@ulb;GR zh{_>7hjcFpr#yQXA#^E#hb<+rE71dy+67H|(V8f;tEb)y+^R@5&!k7OG0dpxT9&}h z5K|`!Ne`)$$65ly6w+{rgkhqnt$KPGD%mS4y`MkHSD5zkaC&e>tQuQ}Vz+*ZQL5fz zVw8PqL{vz0R7Q+&l(lq5vM`;-COt+y^B35QOnX{tUR_7tWVZfHx&-GU`>ZlHxK~(K z)o@lmF%u<_QDe_EBbcUS6cy`>HjK)CxtNi#n~k-PY7oxpRnKWN${AFLnGFMYm~Q@J z8X=0515R+5RL`BY&+UZA%va=6b?2mC%wD!S6 z1B=*Bw1#1B;ecoytP*#^)r)Qq=S-akUt-!&&)>KCp2u+> zl1?5)>felj5h2_3u~0#%ug`eG*wXZk^;FOa^;{OkTS$T z!O3aiVNqr@Qt^wrv*&`?c9?$4fV&iT>47!$Y+L0*xy6{TEhp$L<+eXl zT9rTrB@*FC5HQt(Lim~;rB!^J9a6&a<*DnXy$;7H8~_-Oa>hEvT^dppZGKYCQW965 z2v3{K3O|hkk9k%5sPQn*nUi(bADBEro2-m0AnrYyQk#GupQ5d3zTdzPkwQd&esXt(GtB4dqfh5mzSzom9 z)8a7_jS1#&PvFH;mD}Mx`Kzo-8BDHe znb)g^S@Xp(5EV`E-b{U_Nb3|jP8tO1NyRML0t!5yd})+OEEQ`+k)K5iPCi;ExKw(` z(FdbwBh7~S-H5Sn4yW#mv0WF;zMPN!!uhcKvROCJ z*q77vJ?C=1T+`|?-uwKh+j@A}UqsciYPojYzXv2|O#W&TSP)Ig+LWjQ<|ec+Ug_N* zGBPU#w>N{5T3iy+Y;gMcp0+RYGp$)|8VXtrQV~u+OfA+my;z1iqD?-&sE&skfpzcO zsAvtmc62q_>ZhsD=fY8TYIGE9*6l|R*we?;N9ao_kRbQ4;0~3~m8q26j#VWypFIPP zBk`0AJQki=&U;sSxL5kHD_;`M^axxXPJK9>bhjt&VNb@vP+HD#O282+A?qQyvEl5y zBjsizMNZ_9)-e9eNKMB`<=xSyv5}U5?t2vJA94Vyow^Q3hm)#c+W>Us$S7@ve%2|l z5U~oHRxct)si&EOy=^o&+x}@x5jB>UokdqUJU&R~B-L-D3V@*N6H7be+p$oaO0Cf9 z3GVK~2#e9i*ztNZLfM&7s560ToB%r6 zSk6vzYEN@HPcuB4lpdeHzd9{@cIE-!l^T2n7yBxNc^-_kN7uZc6<*XaY) ztmZw*YvO!TqT}-d-7~s;3+iWQKLpO`h%TT47sBEe!Wm|w&MwA3T8PtLjCEd&iCe^q zE*8-*uw~Et1<&ivERs11x5u2)NLVnjzJ#36;*-PW0tGe7wPZa+TRg~lnOA&~Y?P$t zF19nQM6WJ)oL%YVTS+`z9;jLACnvOeR#%3!S0+SPS{cgf;(&&6<(a=pXf;!;W}jUh zj9c5!UD;k;o621qJxe^`TLqKWsC9^Y3`AY?wSQwx{4wnVUpkrWUrM8wvWUDj1<*VRbt8e$t-Ivc9zHr20fYChi7ezl1b+cehM zG;z^s4}dP+%PS;Yq3pUx36ipUymj})R;I@ib=&y$v)j(sw)x|hp5G;HV|2C!bp))% zfVVXq$ir>FYXUwl+rE#t!{T?)Iy=!WJ2CNdabi1K?pOIBpa8}>H>=&$we5_~U1ahu zZf!R!XgBZLUjE~~!gHV$m%WOK-LlTT%2#{!q`iiTz2e9FEwA>=&+UKe+;3&vuOaO> zuI=}pJLq%S|1z=PUwbg%WVNf3+Q(w}V|fBoB(Oh>^bQ zkiNN)T+U4m-~PeH2vE48+&taAJUuWJzL)^7ARj;fkaymGVWANpVxr>$W3lnU3CT(C z)4~(8QnS-@Gjj^^3iFFfOUk2gmBrO%wH1*KDfo{Wb)TB6+GmzGyn*NES~|5)GH+}hsR-P=FdT<`+zvdiMIb?yKYuVxD_ zp}`w|K`ur%Ke5q|^@j0iOMX&w5aOQi>H7uApF((^WflR?pSDR|JJxvfW}(7EaY4%I z(S-tT`S|OuUrrc@@H|Qqe)oO<(@n#kgvWl;cZF{m^`$&2l<4FAa9Jr&xlVUXu4JjT z(6HzCpwCom?1R$Wu}a$?i(_r2c@s9E&s5Aeg^*tx+?be@O(TApYz$_XalTT1eWoq& z#^Zj|$Q!dASP}2TD-|~vdg7i1DVs&zTI|DVG&^6dv?hU?N-vPcIx0)oCh+dG=N?s+ zeVb|txvcZKYDcxOt2XSz*}Kb@OMUUrCIVwCH&+R@ekyW@#&-F0c|n4mXPx$zI;Ps< zAJ^6#>}~&8n&_;pC6PeBA)nC{%!UY2F!Vjal}_L<@7OMu#yOnM4A-_kXV0Q*d%^tw zu=SR0aX@XlCGHgN5*&iNySpY>5ds7c5Fi96K;ebEySux)JHg%EgF_wCZ_o6cx%xls zPiwDd-G^Hq6gdnzV450B6EIniE0r$MyyZ?f|9;UUoCr^wSV7{W{CLF_%Yr1k z)+ZHB*CpR8yWSYfc$=|LN~^o6 zgltM`7*CjM`z1Zf>V`F2%S!*4c(8CnJVS;+1%a*8piS^Qu{|s({cmE6>UC@qay#*z zE&qBOSlMx}KXTOh_(W2bcZvT_Y?0{8{t??WQd`Vcx+@!;1$>TvLZHD_Ke5Hw)gVdG zY4s4;>ZfGvhKP0U6NPF>3e+5Z6BaqJ>Z3I!XGz5*TxWdyUx=-Q{&QJ_2Vd#^h9~T~%cehuooihH_3wwe5Uvi_hR7eK54#as zfabjzor=f3)RP(8WSQJ=-0S~CY{l(HTD@wppoIp{JWG zT9wzoi);q}h^<)W-*rSj56YdOf55h|vg6F`=e$rnZb#eyvw85HMf|@up2xrTMsBh% z@WBA8e!@#{LJJIbjq$MiVi;t>(j!TrC{}?8+p-Wy2qXadkSRYRIAf?IjyfOZNq>ma ze}XaG=`a*wKHya}lgm$KkGH zx#aglay#h7H0+1D6o|lpD+)c-1ngItbakDS2L}hm^tSuA2-49|Jr!wiHPOg z%PUfFjlv{#`k#&Ginwh1{$0tvr>Q0|c8>Ea{gp)dQQ zIxUO&cFyI%FCB(Dt($ulY@&^eAt{Y*!~aEW4YzciQ<`imJr9(=B7148{Cy|3_oEwc zPxqZrfJ^&8_Ys(TC9P*{T@aS%rYg%~H#)+iA1&#YuY_(F;Y3wn&`p1tJK=W> zDiD%5wo8XP%-bna8C$5l$M}!fn*ZQ^sx`QH=gdZScCPJhUpONL#y0RSlKac{c~jlu z4u08c)G8kct_akTz;MO{wH;6~Jq~%R)?~nrTSz{;O$FaMhgHhtjKfJk4eS>Wk!5jx{SIyTU#P1$-Q<)Mjex!7;2a`=;_;cV+p{ACCG8 zm$hAhQp;30!d)eX$f+pF%G4l$x0;E?#+=P#X3EaFE|cZVTI+ea4PhU@X54o30pHB> zq@gKNuiqi{dG*jP8_T`c%xhB|?$rDy^&otoZM1dWY~Vg+R{6r?Id$X7xpsYs31R`O zB(R30*3=W8bYMdLyfvcQ&`S-t3IVPzVGp|Y^Qc}$eDz!=YP{`{Q*|72Tvnx3dz>FB zkF>=Z+`BVwZvCu!ld>XAesZ@g=r|GDc}Ysm88kG>hJBm51Nh^h{j1!;YfFbK{f}y- zpkJow2~es1Nb5dvx^d!f)>F#Pheqe2{tkzz#Pm~g#Mb5U4CjU*vK5OUkI${D_buKx zD{SbEYxjm#IZTNAm{&p@h-wc#rQDmZ2oIfS6LUSa zBrJq}2-_}X_VTdPNFaJr9a=x(ML$tpOnz5CF$UQ_9eZy{ujxe3aYQfWV1E^P9x1{A z&0wL10BQz)5Lr^dhoS&VOHd(SfDvJ!-Og`&7%>yqz)IMkoEE+$-H<@bhd_J6AgpU| z&XV6Z&q#b;`r!vNi;fSAPq16@#j zQ*csJh`!)b&qUpjS--D<=7CH~N>zgR2Nb0a^ik*TM0Yp|O@B z&B381^r0OOp?;EqU4Ll0bi)Q*!-kT=O!I=ghQhpcgM10YC-{SB8Nz*Z!xxbx0|}Eq?a%& z7iH>}@TEDyW*Do^5{a0Wl&%?55jn)!EmTD>(R3lfb1CuuGTQiW>~Dc2e>X4hPf5XU z)SQp+`SjTE$0R}IcW>a1rE$6ZHs0ha{ZpPsdOxA$lnV#lF-q*qGu_ zUfGGKu8EZ)iE2x6g?g#^dhsS!sV&W^CL_FkhG$kcr0Bn*g#CHBd}$28gg=4 z5>?uiLeg>}NFh0KULbW5Ih8=cVR|W@2{}oF&UalPV^=R@-zqFLBsoGa`S@e<*>J{u zQ$`|D=D9-VU`}$7ZrZ^+u^m<Io|A}_!+adFiEPJ0oXaVg%dPKt zWR-d2mMfSND=?CKv6OrLm@9eA{GjJqsGBRFl6QNPNv)s0RGd>yln?uqr}<>B=$>ye zl%?B}Z?K$i_>})3mn{~OZF-zd>|Q|Hl8qPwDfpgJppRH!&lo@@n9rb??}U=?qMuLO zQuuK>&*7=?_&&!CvB+P)DA2tqxJ6QkIFBF2LiRXzJGm%Eu-K|M&&|D87Tu`@M&>&daXdPGDQu>9jF!QN2 zUB9pgT-eo8+<#pBGE_R^ZU=h$J^EBOMO;23SnhR@8}43yCM%gb96q;PzCOa5;9k~S zQaof`)~#4}pjffdQn9LCa{5$pNnCj?SgA2rGGI|q4=#OrDybQ%v}vh)u+F{}tjgLi zJwhqjOR3rcSD`Xh93FpzBdJ!NFEe9+RO5S86Q))ZlMsaJXQF-1TO%wc5vrl_&^vRe z0+d!@lvXjVR575&(~{KQ?p1ICYk56t`BQ6ozf~#{ltPXxA5rR>iL0PaY9C8#!Z)-XQTp{>+tqSlut)@hgO;|hi8wALG})EhFDlc8pQ0AiH?0yjU_Tc$SPU{$cK z)Ulp4Xpz)^T4}HbHs;9GI;S?ew>EmNG#U@-@ggNrg5AK3D!;X^N_^ zQ)Oz5Nv(-hYWzXcOnB6k5~`(#8k73moJG=-LlSR{n)eD<<15rs(%MpP-t3^%Ty@g& z6Sc7x)w0Z^l`NpKskOCjrM2T3QZFn72oP%X2eyHg+6KS3b+)!qz&9s8w^cH=#w)eX zhBl9Rv=7cTU--4JuC%W|x3}xGNC`G9r(~|6bQ}U}ZIs%pM>}R#I+C6{uHrjxpA}nx zoexYc!zrCFq50h;3_~7GFfX+urJf(-%FledUZ%{p#gT3gy0W^w+4;J6F#T`EyF)L# zwlJZv+c3$L)e)|`9kaWzD0}=YvFMcZNQIH@7BN05W1S`R^iB0V`A7>acHUnmL>zVq zlXi+IgCJ5p#}s{!U0ut;NK%6UK4uK*F|5CJA5_|~WSOxw&`6Qe`k=dhem1~R3hVWO zHe*luKqy`WE!`X7(@k;;>9<}5U?=CXF7%VO*#Vh@?3r`7L(4q^-eZ*wSb~GYl9;k# z1A$exT&q8WDTdzTZY*Pg0cqXjV?D^8eGivC&Rc^o;=@yim`P}W)KiRfWv6URWa1a( zUt@q^=8^9Pm@U?n*U!DvCnNR?dcqcPKz66vQ%7AJq&l0?0QS-6sL^&$3|+LbH})|m z<1rr4SZDUwZPys$))?c}PxG{XjIGgP8;pC@a?I7P3n-TS7l40T4-qEZb{A}e#fY#G ze5?`te%jD#4CZVb_HWY3HsfCUt8q~+J75^d#iYvABq>&F~2-<$iLb%V5c@Uii186@*zBWzqI!%S{DjPL*oYqZN<#*Zz%MSG; zbP5{kY~sAimOE_*|I0M@6f|-;?E60zkvObaIy8S&A8LCK89LhPsQ{A0T%`TnmHHf6 z+jNw{v}QP#9se}J_%xvxW~lP$wfLCdX*Zt;wrV)OQTm^twjRB-DbrtbbKTtXM@4(U8vIMR^FGW*~>*mD4EJDoE&$v@R2EHbeY zxQaJ5O9VAbgt;zGHXC%h6wozMF7gLXW%;yxb!lcA!3*iqYvrtK)|_@KZqqSCWi0m; z35dCI-`1n;18Z789&)*HyM}_Gx_MT$aZJ%`O$N2^Im3Lq1hgN)>X?Ua2Rx^(!)c7d zvG!~UZ-=}LZ?kv5w5^}FZ{t93kg0Dn*=!1L&iL7^IghW1q|b`CuZY`jAby!4+g#Zq zTVL~9l(n0vdL7`1SS?4NGc|)}SK087n(AhmlZcv?65VY*+XB26NX(3glI~BDj50Yb z12G}U!i9?x8PFD@fDE!Zr!{Eptc9U;Xm-pwnF;_c`T-urYOnBuHh@_cYVYoKHiHGG z+G~f)ZldXQyU74a$I$PDcV(^(sRex}&}RXBx+F@rPFXQJR6e6;@V?%?&y6|NqOw>& zwkXwpOx$kg;C1};z88frUMD=?J~sE+i^b#jjQ`Zh<>f5*ME7nP5*hj&HVZ%-^N?;D zNy6}S#1ITOWYPLfKF92~7 z)Mo=|{tduN!-_N8J>}OMpAS$VwO}F$Kw|U$wCa@GX!UG-i}TBLMCVMdEfQ8HrbGt@ z%{k^7^WS7PB#n+$K-q%C+dUb}S@78GR@mzC*cxZ#Dw{Xb*UoDq@h#y?$o8YxfEd{p zS^J`G=Cjiy%wAYvgI6E1^wrgdXYQPc_Wqx%^R2`IrW3?$kEn;oZv<0#eU?KIdD|^t)|hJfAduy* zZ*Pi#X@+3RG1NC84LP243MXeJK0P(P&W!y~ZQe!+LxGLdsmFfy;ths;wzMx`I z3wj+wH%gq?CohiN+A1fJHN`47Rdm@ZFH@D+ zIzK6)q_{XOr{v&WvDGI~;U+_vu&N}*j--EUf;kE4k46AjEcHpBRFeNWUaW#ZGb<<< z$9WEF@s=H>FbfY!N@_U-1XCEWlq1zd)Az?wfqwS~egb2aemTVAQ26bERy*lHqlu_J zY{I^i^`jj>z9D9Wn?NuXNsgdEXZ!YMq*x6uTg@z@4c(E*`noSM#z@nPIcP&uyXcUVJ1UPbWIV!21euJMmmHL+kMk9wZ3CckxQ zzv3JuQ3bc*KQl3(3nE!{HS8SU&guMkC$<)quXn2_Fyg=sDeT`+JBUzkzyp`cx2My_ zi?`>?g+1hmEPE@|iaR3{LO$YIDD|-W?lG?%)7+0_q3o#NNyT5NF|EfBt%W#(SH_^L zr1OwD2v37p&a+cBl@WbN^o&64)$m4}DBSx+J}6{|gNW{;8N-w862x)?)||Y~+`0ta2>o;XQUP zX#23*mwHqmbu2$6^baEs@vfaK@Dh}e_ zU3OTDR(<7|MJc-~)*xlUiE3vFIcvN^g>Ya_Xx1WS%&Dqhs&4pC%-SAwMU!BnxOH#E zX$A6YKV;u9#556j7!=bLTp0rtM0x&RvNoF&ODBf?s{1lF^pmi z-G&#vJ3VS9Y@;iMJ~v&-Iu;>?JHbA{*esDj=jJNnFGj;DWY+D6Kt)KRZ$%lZgq8#I za$I^F_nBz_2v0v;UYE-JPFDsk95JWJ#sS4%Aa5Q6Az8xOh>aMl(O8NkN_V`5n<+Gy zRL#;}RL1(3V4NL=wF*NvWb z{i(O@S70e9O9I+Iw+w|QffTErLNKo3^C&iJ>%GIN0s3y|NC&C`_s1o=vCompY3SdF zO>k5PO3_0d;OIKAW!<*;HQ}Or>Ji@UkbjCTuqpHKo6^U97-WEsE)3KqYBm*ziF_PC z6uqiLruGXx{!ht%mWZp+FKx(#lez;u1soy2Y)r^=7YBJKI3n1TcOS~X{igNOFw>OJ zL}Y_$@gWUYH02gEiy2Q}=ANZxw3bZaRj)Ev*)z6yB>svF!rmff4gAzkDfFJO+| zg7T-6t|=77-U`QYcct|YGWqC)X-F;5(|beMDgTGUUgRh6v{^e@VO z$>`#yB0$`*E73GNO7c%R=bF!SQ=Uoelg+S@ShTg#i!bvT=81Gbf(s$$^R2C=ig&Yg zq?rt4)F7J+t$eB{3!RGx-Ec+30YH91wb*s2rdI<9vIZ!@Zi8DQv;EQZxVli14 z6ez-OpF^*Vg}R+Qc%8~hUH%Q5skU&97GAJNX1f7}Q`|P>+Ag)gtY3x9H&^nz0cbEF6T*ueY%n6@n42Fkc`2Xeer|G$pAazOaiY%A+?ritBBkD9fKp4$fxPT z38xaVwIhk3mOr%-zjAb5PjnIm7n{kGsZ!f1C4Os>A}W?>HH&=yaUWMA&f}u-r~S-+ zvUPPw)um%)?ZS1Vb^TfNp_4%L(n9U!F0J13D_V6;IDOdB@4b|t{7h0L_4uo_+ z4SO~*O{ryL$}B8tN?0;=E!rFlAS0|S(*EbVeWA1jiFjGrqbUjaTS;*qb}VW#E@{g( zOY*X4GPwuIEPg+XPa5!4&=TCzO|(d62i^zTOb5>2#i;Ct=rkx`!fz4Kih0#??*LZ} zfLC3yGj-<={=ApJtdBKG)7ce9o$QvX?0`L5I(0t|ppgUMP}+Nhi5=-8b;x3zQE#}! z{e4hgFr$P5Ncs;@)9OB9EJi!}E2LI&g8j{SxMc>BxGp|LJQmom-FfP0Moe!C4H1$V z+{&TrLEl0{K3rp4vcaIy4gs{~b*?1B(=WvcK`Obq7|giH5xxNRW-AJ+1cpBTS`J>t zdS*%-xj18zhO6*??(fPs05T)$#N7`ypAwU*?3nLK8=~o!b-#JJ~Bwkyet_&FgNO$i2*LLObRUI@NRNGuvV>r!}+0$o7EZRnfC ztbLArP0lB(;*2!B+U?njQFq+Hb!*vb|Pyh21ihT?c7CMPHut z4;~gN*r?VgvX;+qx?d}8*02sgP(VL$(V16xSxi74&uZH|JW3X7N1rVoiNGPc8j08+1xerZ3!U8yeH=`K9a28S za0T(YiRF-HZ%K#l=viD-TjG$mItd1FsGdG(Olp$S#-Y&Z)1dxDLcrxvwIY<*^(Hof z05~bFFEp%Rcg-;3>`Kka+a64P=ZfO0i{>4p5I!L{vqxAYxYa$T=1P}7WBJ$JBwS8q zXwAs(8W)WQn%x~LKUjJu)x}P^P%_M*K59hpNfzzvQj}77QzLm_!2``bE@p)0pifC_3L6>>#V?#I-8b) z2-gDH)H?OnIyI(x#g#f`rI1e~_1Z%9Kw!OJaN&KNvj{>1y02>>y{n~?tCdHC^-6=y zbAvfaV=iZ-i(I3RMPm>FqiJiSJXW$bx6aHANBN#FpN3n4o117+(K#jB?|m=Pt85;4 zk^UOO_F4@l1+JydCeb8f89}!3E8*I0i>MTiDb1X4Ue>w?x&3X<sh}pM}HD6AT=SMVJ-*dUs`2;&)EfzgJH!k zq2|~?=HK{w+e_{3QS4Vxt%i$Q^+2KRP?Gi~j<49P2Leno!8qJ9{(t^JG&kAXW14++ zmwi73WH-7+|0%_({^>EJ>3_V!k|~9ji6c4s4enK^3(J~iP8~}gg&P44u&J5Fo${rt zhN;CdPt8iBw)rzODB^E!w@ECWlwgM}yT5!1M+K$s<|grNDQd%#Q4*@}L{Dp+POq;L z(@ZYQmtz)eF3+gmMp@53`Lw>5xRC8wQL_0y;)W1K;r>qs{qg)ULM~t=U+K9eYBuaN zy(5WVc%gzO6#xm8Ykx#1@<%LKq7_Uu%CkMo)m3Q zF-J6yz$-rX(+}xKGGY%Ok!RR*b)QHUXUrU=6R{Rj>lv*gd1Gg|q`waiKkl=cuKK6# zTR$=u)p~I4EZPugVjwP!)-L}EDlQr^#5C6Cz71x(EG8O9YIw$RNloKx5BE7nu@@m=*~qhIK3SE2-W z&456-gC`HOoY8O$2`zT2SvDMEf*>r#qX~Pi6*l25KT}R=oPX)=j63IQ;PNYykk|Bo zQY5ff1?1Z6n=B1tyr$ngzMZm|p0$5FPKT^tw6C9k*|-$hxVGK6eb14kZ@j#2JdxtRN|t+n zAvZ875^!)x2ZzHIM?#}~PI+Qs#8sH(#R3!e_7&6CUeV5HDOw6oV%&+HLXWLTG<`Lb z`6Hh*eMeYl)APnTDEhII22@N#B~Yb-9fY^?1$o34Hvt|+ZF+#Fu2*U#4XK=vlgKI? zU9^Z=#=)Rwt9PfeLf8&{xCWp|9!Q+;$a9Un{J%IFqF9` zFH=4g&fdI4+lM;kEGNqqx|F>Y83nN|_u?58DJdACRKMkt26#2?VU6L1U)qbcV_O7S z55eA(H{bqnnbmOwR3YNl96c6sQkTlYFFh0+ypg011YJL=Uk22~{MbFRd&UISP&qXgT z$+FSHF?c@3k$<~?p(1v`h@zMJQ*%u)`+WT zw^NazI5_=12y@gi8<1HLa(8X(vp}C8@Wh&EGl`vU_^e?+&>TA^OB>bxLR{Of^d_34AzEXuq(9pXaVWXf-x-?3hIT(9{lg8>~F5;ZjW3=0`|F5}ux*DR6h6D`_3xe_o1%be!Vc`*x zQPDB6aq$U>Ny#axY3Ui6S=l+cdHDr}Ma3nhWyL^YZhn5@8gAieU`?2C8(6!lrlzh& z0$QTByKaO(v`y9sy0c+uR2Udh$uF^xG)S}@sZGQUy&5V(MAZ1Mi4o!LkP%&9%!3X$ z_P~{RWcy%=C!S@;und-;s}XB67HE3aP~3CKPv&rPh@`S`dIp45y*VsojLf)wp-Zgx z&w=4>`|96B4Xc&UbN+PC%S%+sZbvm)9};tf_rO5$XkJswJBH!@W|q%g z#0NsvW96BRqCk2b2g$dE1HUcv<{vOGk1Z+}WPP>Eoo=D$T&=Oin~cbJaG+$XBrcDx ze~kaaYr;QmxU+mu%>CP>GeKJT-t=o_EjEZmxO7^k8NXgI1#kAFzJf#v-M~_5GUwo) zQT@J#i#=Ob%vf~BXSDevk9y4ezM-O@wE(e|d7JU5A}h-_uwiJ?4c+j9lMvK;W2L#x zFC=5i4T8QAF&7y(e^P}NLBYtVRVy612?N2IWuh-6B^{Ex+E54#n?7*(mYcpvbVZw> z|G#2uUbGcR>U@~ZP<(YOZ+$6)H|<>Z*KbUQptyG)|517mhj(411|FDduLaSPrTQc@ z6-ia}Ck&5YRaz=KU)U_2qR9$oCps+5&s0G6MN1WteeounPQ|VU2MmPiON=LXR><;% zi4g!N$6|7;t3Wia^M6a$C*{W=t#R#BPyOPFFf{U^!Is<+zuw^w`0b>TwRa?^CG8RT z@xP-8N%}+k1rhek!G&QyEx|?Ls1eh`qTeajMWqqTj0_<(HNj=zDX@IOdlccMqV4YZ zB*+?Jlq@q#H)N$csmKjksDx27Id^Q=3Ld~$kr1lo7JW4K?HMUw$GG?RUyY`g$NDI* z@aWQD8KeDX{o>7zlNjX@#(@%QG8tNR<6^y=9M@qYCc7ryk`stE?JBt^TX$KD5^|V> zz-n3dl{Pa64f4r?swmOd)xG{}!6o+oLVRJ&0X*-y^(M-lp36Zr93hTWdZtx?Hrli{ z)d={B|I{P7KG)26ti5%ES=sA(-qxr;2B;v#c6TO*7awmofU|=3V;;y>_G{SC<@N86 zZ>fq6iKW^-2hRmHm!sX zzMkw5N^S=4hN}Y}6R`MW+^AEzW*(_BnXp?ZauL;^j#3IInvXMT0WBvvy{avz1+x)P z$4!kH&nK;4&z~>QRf(V?`hZj~@BWP#@-+z8TOob|aSu{(^M@BBDmC;|h|cvY-&Zg7 zP2fiGb%d$uTjV_h>g(kmNw3cRX()!mZ74Ir+e^%+WN7e{$LF(0o@Qkgh92bWVK$Ep zqxIK>g^sIcHKl2;&DTRjF*tH|@5@+~7hVPlRMsjGvj0~^l80_oeKiIScYhcWdC?o+ zDqP$)MB4}Kbm(g%|M^&SKJYDd`zM9pY+$470=_;9*#PDK*>%9zp>7fZEZ2XE?SE}% zPU{3R^ikFjLa_oQL+fF7@CM}vI8&~|Ed34IIVss=t(481yAkLt@7QCOrp>a|XEoL> z85Eg|$)c(x<<}+T!=|oqzmH*Ru*+aVh8-j!A=0Ka+Vg`nAA^DTzH-u=lqpJRv@szo zaPzyaLrGWFwpq%#|8Z=u9uO;_8t|L52;jrft~f0j?|Q7+(2 z93C@gucxK)Gx4d)`p2dna$5*gHc!|z{7k(# zH5Z;No^Yy}%{cF)7ykQE?YCfTLO3ez&Z#p>?U$ac1o6WfayLaSs<13VO@=_sYpVWN zt(=6iC2=5@x~XbWZqSKzhA;|B6mdi@)ChaB=>p!^WS)_`V#GL3$07P>Ycxi zGwM_xf35-jDKlX?(f%ViU!U=(+{)`a@Zf1qkM(mgCJVeQZS{iu?Pp2vaCIXt>4NT& znX2Y7rjO?>lmjq4QV}v`458q;Y}tgGM3rL=uJ3wd?%K8SX2%vnsQMG&hPqr47Au`n z{fzm)nox(^_!cB8Y%_P-mH!mm(UtY5JDnlLy&pl}mA0_o6o;tIP z;0w^L5{0n}sIv^to)&VUv;->K`Q(*PZyhDm3r z@2g$nkmNdCOzgX2EA%+5zRp5W=n1r5)(+E{s7YuX+hg^395n*eCJid@bEZCyS*q5i zER5~*wmy#ANBpE2QBsl3;=^WGw-CAaoYdWK&h&go#fU72k|)ViLA=~qSnZZFkjLqp zFm5qQ5i5bwnNB!fR;jbpT$RwWj@9ZJ9%&XiO}~`zi~+U+0b50tOn0LaRh}{n7G}-X zmOnLyJQZKdAt$;wf(sdkJmpH|)xc-LSt#s=8sFDrIF{#yDY~lKWENW`;PY}OJ8uKg z>o^(YVW8&4Il>q1+%a-xb^V+pa@gzKxiEE2Xx*78v2FJtT7CF_9g zu``tU(w(Go6Uim3M~VOP_ln0B)Wv-VrK&wxNq7s*o4=Pnt9| zfMDi{8lycZj}d)*Be&wU%G&#dfJ|z8)h7^@Oqaac-*B&7?Qx(s)8o{``+4Jo$bBWo z+jXeeONChH;mE~3QCl-b(6ORJp{>EfWU`APP)N9t~L=(!Cw3! zQSu=ngds_mA+$*$@rxmeMIru3;K+xNjHZwrhLC(ha4|o)pb1>`uGsQ}LU==c=;iBtEAmc|vnM3sq_FbNjDxq(n~`+7ug zvTSG}|AP4#yd55eEshv1@|BZz+Xx$LPU^Uc{J05SbPh8Z26lrm(jN}Phzbd-TKb_% zcD;+ha|;iIOAOydkiCT^Oemf!OX3d~aU)N<&qcpF8%g9Njj4r(O%(BL9E~{b_^rWl z=pmYdD28f@f`=Z+>k>mJ@UGaJ2e}3*7m}A4b9}n;|9XXb1ci}eO8lx3i3{!Y(iJP( z8^G@7sd)gnWyg4PjSJ?)aF_<%)?f%}XmBH8@FfF;72^Hl0NQ+L3R<}M*?^<1u(vJN zi!L$`Q>VI3bTL;hX#aTaBL+Ni7U)eJML4WBU%&B7KR2omhgKq>!VSh~XsgQc~1oQjA`5v|DmqNOEj*azb))#&B}V(!0l+oTHbL?Us@k zlA_-jQ?``ygVz`R{bUvyqk{lfC_3^L0rjd12TvWk1dE|XA)_u6z0WG(OqMI`$rs#X@w3N8XSIp`OQTt zp*(7;n)FR0xF#Yo3JwgA3Gw!({8}&eqc}s!G9vCH)!fvj%XSakLsl?B&1Xf zMPD?+Yyhz@_LC2upbu_KHhxMr&T=+sNj8OG4wZh+2kRU{Vn_~sOU_5d9A=bk*5w=q zlw2Y_|mQuudtATkD1$lD%R;v1W(kXdrjQQ## zd9v>L8ZCKRC6*Pp;*{8g8|JHWJc4e zY6{qX{+XQee$q{m!3rOO1*}D`0R+=TvmAv#Lr68>5vW3;-!dSx8^iJ!dPgi60uM$HA+4%H9`yZwmmggbS=lOqw#(;dTN7p zYeTuh&&FS7AFa&DhZ>wl4Rf25n=b*Yn107s5Wn-y54IL*Zi?i0gmNv>0P`X)5LIFT zA~nvVM}VY%9aP=VnDpl?zr+^eh!N1w=8_*<&C^i;lcI#&R0Y<>_`f~@{OZur`t{8v zg&^)ddkedPMlbU`>$t^Y651FcFJO z*1KP4LOZ3RhNPiNB+j^@8nueu9<@o6bSjqRGBS3mw)K%e^(m9)s;~BaR_@m_$kp)d z*SG1{3(Ez*^lOq1n4b2Vh4ovk_FLKv*t8AU`}>j<`BKvjk`5vN30si*DJ2b$oD7tZ z*i}7zh`?~bQQO;*yi{A_C{{uvQCm%DiMGqool&}>E}-;#@uwxiF7^WEp47D*{Q8%s zG*ceWXh6y7P`^JO3T3PAA~9tR1dwU$@9&m5dE)AQI(TDUc~LT6aagv-T)CxOxs6u2 zGd8}THnCndvDY?nzB+NKJaHX1aUndpL^^pJHhFI|xzaZII5zo_AygV%1yfoD8L4_p znS!&ef={mktW9B#Php2op^gtGNOtz!;7ZDO{*_9do{ecTr7+sPE7J_3P!{KX35=~ifNe?<$va^yOf$^ z5FcY3kLQ8j*g~H)*6h&K3~h{U8AD}{5%aQ@`A4Q%J*dWtQm2cA{cBnQ{*qUElAxTd-(HyQ zsC8JV9)c_%Sj$9akACdwMkAI;pVXqVJky_355s4(cq(Q*qDH&N%n&>EEwPXNwyJCU z4(|{$J8(;4j}7&L4iQoFWg&l~wX%YTuOeh=ou!lPv+&CJhPq?4I$)i)!*@O)C_2F3 zu_F?(E;_LzZn!H&zH7p~tC+E?oG~EVv8(!fS8aV)jCD_&yi=H1<=36B*b|c8a^B~b zd?VF-(~5lK-}`2w`{o(@y4Lw$*Y`~T2bLZCP8Ivk6N7(WCS$GuCHIX9=yBYSbl2m} zzeNs19%7lWMs%!-(pVOYM3$ein*9{3=k1H%1eX31@+7ww%_zeP>aK2X19-PcD@haT zqL!Jn$%H5gSbw8xmSa_^U{Ak?=Q!jqDWHWPTjX_VbtpaJ#$#7FSdQ5f&gD;Q(;1S5 z$KQNbi(ZI)4j_|L>ytCTC*IH|PSK_oDh{Sq&t@~uR?g4XG7dIa&$lWj_ae@AC(e!m z=O^#|=(qFtc=TRa*n{FULiyCa;WT3V#lzba&iKXC`URHl#hdD7zvVh6h?+1RkF{Ol z>QavJCUUJu^jA$QziE#pLp2+E&tb4Vo(8lX3MNdnw5MLrcDFzG7S23DZS|Gt&!rmT zIV8%SC~h$T#Sc*lkp{XBY5}I+tDQO7hXVWV`l&_F-dG}PL-MvN(oUanzFt&0bPhr# zQZ!*{Dt27mEwXcp26?pAtA%Kopi7hY&CEyxJ0@BC)H@f0I~#AM%{AwpnuYRG3}4bI zF$KRLl#s$-7IA)~OE6C^rKtWO{l!ljBcfMF7Dz{_hBb#<*r6}ipvRINp`;q0V>8|Q zG9i3M&SrHiZ2#}*LldnPUj9%OOHb@{nnlBv_KOb+nKcKkyV-z|XVLR2bTg~w)z`c2 z^yjVe=Z=l%uF2<~&gZ`OF2awO{`Vq+_sdA;f-U4_N=#Ng!iRHXh+?i7Z6uB8Lwa^7 zp8S3n%ZdFD32{=F8p(DpsokNs?JfrxYRMH$NnNbBE(WD^NfPPmejn=n%tTI9Bw1}? zAT&2#05mlJyJi~^rX5HG1_L97iTtVf$qtFXd;=;fRg~uzFab&)qWijwuM@{m|H}dg401glu-q3 zd4rR#mX;cm%x7-A;+azAYQaA!@ui|P{*IL4&71cH9uNePO=~wx`q6qJb zEh@QkQ`J^)Fb%JGXW^e=|a%uF9>5(-cjJlf?{B--FSM=>Fqcl-~{O>tnsSOsOTN7`e(Km3FtECCG+$-jcjaxAV@n z?7CR4516Q!UL*xSKkQlrE(pW6yQ#w$>6sp`rzYmN#4I7rgUNpDfcqKhIf1q~@`DKO zK@YL?mx+w`^IrsV?m=Z2gWnq*J7hM4zmk@M(q!;WEdKcDZU>WqUAMuE4e~jmA3GSn zg>gGFq=hp$^5;hII5*`+iliV>M@qx!vPgG@G`JOJxPh7rGri3B7ynfe z7>qFuVl8<>5iq-XBDHaj{tsnu71Z{_@7+R+YZa$dacfJ9L%ldv+}q;r?vjK6!6CRO zgy8NDfdqG_Sa2-_%}M{y-upazpLfr^CzrX&#cw8=d}e*u5{`y`F?$lv8wJmTIP=2u zV*JhFu!N|;jIDS6KZ~t7yeO5$BEMj4BOh7(n-@`7KDS{}*tEl9S=7wHS5OkdiP$Pd zzw9mG|FBRRL{TVDy)A?Mb)VUp%%}=1w8{QMk(9>Y104Xof15)j2hq$!SKH{wj5qrAv}!&E;EixrlJ;wD=DwZ$XaQqT!Vzaw7B}4 zq*qz=vR&_44Bl0)UPL6S5ihyXbL&{&T`*vs5i@F>UkT$Mr{YXMdQ?-j0?Fd(meXW-i_x935^#l8B9*!h?YSOdP)O}##x>ZbZ+A9mTeb>^R zb)Wg*n$Fp25Jh%JsoKwU6ChCl>hU9LDJ?qNf+P*>#GkHWiW2VEevhdiO}$z^w-r}LEU&u^u&aHSZUBUf7rA4B79Gk-+y~fG>*>AtVD5J)4ffarCAeg z;8C{!GMqg2j_c(pWuG0WEO}STL~2;P-)XEYWzR8B<`AXowlkb|nY|`U$};eiWyE~v zd^k~SxpoCdCJy!+SS8-S8aeDT0jwP6-}aeo_+-WieHVYZ&j z8#!UF9UC!B4f@=f;yKsXEvsL%JNZ4d@1It6`chl<5#0&%j5cc@8NF{sy71alQT<-U zAxHePaAq+k9lO0)C=5!*JW!JMW|D+kCb6QxR2QqUSgt0K@*U~-kWXixcf7XrMWIWM zh2F5adewnbk;5eduYX-}qOtN%u`7Fl;q6e32405ZP$$bDq>_`ZZ;ng7rD4Y8L8{-Z zHp)_Iw+miLY7HKM%JW`q7k{eL8hsdAQRK8;VywtN)jC#LibPu5)J68Jzcrss!Wb39by*BgxhHiq!_9j@5hUHnZ3GL7OTa010 zS-Z&^iTo0oCM%>`w1|KXvDQy8nlnsSa1xsqu7JZoJxJ)o>jl;9c&1m{iFE|5R=>IU zPA~0_%|D1OuJx}JK@`16=P_YMgkza(?^L=O&t%zmQ4CT?|7PHd4q&}w5p8|_@dJTx z@<|@kKob1KzyfiF8^SJyUHL$@v!G}qs{A&`!r+s#vhslTNHR#OiM9 zF`iHMzH}~oKNMT~ZJM9(Oe>p=tgKC@r>E%@t2!>N>_a^GS3aE7Ab!XHs?AB<3oox< zQ{Kh9Q)7H$JEBOs(7Us=XVwl1Fer^~v$u!P0$}H$=|zGK`sGE*4WH_EW<@)cT5>64 zm1X<$dzxVFi=}(?HJx09#nxeFk!#)+C24&Sn>Dk-%P8J!a%G=5J`-?!Wo1IzGo89N zww6QdZXPtJmDx3ht$y!r6H9lLA=!Xcm31G9?n5MNUslyOy6eI&MG7r0Hx20PCc0FP zOOr0Q$p1j6J{C|^%HFm#ji{Sh3s>?Nn%Qwxb)CD7IjP&c-1VBTo4-zvYhl&f0|DMnkqCZ7x>m4K%d9DtBJn8eeI!vc;Fo+V^)_p#Gl;h%Do*}(GjKDYk zfpbZ3ewIBSANKxJ9pbh9EA4!Gv+<;oUS`)v)pMRzA6Lk6wI3UCF~NmD?Tcvq^ln$g zMfSGfzD!Tww)m$VM#u97lRVt6_|;BG+67kB=d`KG+qX6?efPxsqQB_ssBHdfq^r2u zFnmvnRj21gj>%=7%=KzFs`1Zfxo&qWd}CZ3L>L_eOdM|Dd>?c9-DUD)lJnzn@nh-s zVa55~WAbO9@PEYZ&y4lu7W3oj_T!WD=YshQ?f7;g;1wW14i+E}(|!(cx>d=KW(-oTcKRyE_$9%;o7AhW%1n78NDqhqYeg^; z3;xAuWbx6+DkRv(#Ovoour)TAj46a_!Z%(t#7Qp19uVS8z-%W%JaHi&OaON=fHyZF zNDkl&00buhLM8xU>?<24V3ZgzhT;Xh(o>7VQ@uK9C=ZyZ;fd)2W@3RU6rdzIP?jku z4FJsP2Enl)7*lBe1So?$v{)>(NF%h`G_=+=w2{eTlat~5Q*f&Wcq!LK|EJh60bKYAcf_7p#IZ&M4jXZn5OINvIMRSznnFn2@DQp*2n{o28YXh&5~v^+ zDN`MIOEdD0TO^BS;A^?SduD-bW|0pPBk47x@;Za;)|`~HqBtj`1W%)cnWLYHN4MDq zb2>*`xEk?%h?bg+zI_b9V#C9kV&3w^yfTY<=N9w6CPra0M*cKLjyYC|GWIJ^tcqFe zH@8@-XtmW7C~dnoJMfkeb-FelTSM#;5YCzTus{PY1$QY`lWdKg=RY0 zL@EU|ovP>M^m@GCX?g%^E9W&8JC}a%nAz*=yZy zAE>y}C$rlqa}=f^?-gKi$lRJq!`xw=|8KY4RZwI07UXN+49 zLZOmvYm@CalI;}o9H>&hSLM3b=6O!#d7tI^vcSN`1PeyA86esp3VThJPSOJ-<4uns zm~1y-F%s}NUU&iv9I6E;7!i`(;c2`vAc_2Jt$Y@(434Qxn0Y1wnu!Eu7WZTp@gnlH z5O4`ZzB!^GA5qwYD1joXHW1~Ypf~0TuQsx*CvszI3VNmrpz8$*sDge8)hfj1BMtKlfAkbCOcl7CB24yHXWj)5aH%pP5#JQoh4dTA{@^SW9k6mfZ1RSOEsF0i)M7OW1m& zQ_o7$sY+8=N*_y>awm-2ZKBnPGZ)MZ@LCB7v*A|7RW0EEPOu_SAOOdUdY z8u9uZAx&NWfv^0dV!2dZ`CG{X`OR`U*1vqMKy6mPSQZ*kp`Mhb*;}CtZg9WSgKB_svH!HT$2jjEvim8sywDE-8`y%wW|Zp zs|ccNFGOxueu1)UF|lM+Bx?#pyC#ad#v-W(T33@iU6XoV!|(ydiYPJHa2_YAg`I~z zt*aI6tra-0eMXJ1D`c%Jm#nLtuC3;)tI@8jqt1t)*EOHJz2~d=Bw3+KUCF#N z-CN(IT|Y2g-z(WLcwRrG-Jq0IKeaJ=`B)fXr8Drw5S-wR@8X*R`OR? z7gW?qRsLdaG*PUSfAlpt8ErfqcD%Sn>{!$z= zL-DC(VX*5d101VeG?(pkvt9JG-8YdxT%`sXXa|`D2AO9ESiJ`23kKc=pzli$`DXN# zdJdIa4)F+}c(=RD_z@c5A;AvC&9HX15z5y1IOgH?aRD5XJ&sZ>ys~_(!ZJ|{h@>h2LMe80UJpo9WfReTcNz^hU zCLmsK*pP!U(vxx9gYjXp@{yC?)pwFFCllDG*rlgpy`Yg^Q!rg_z|4@Wz%VieKU|2J zD#Z+yE8m9eOuy2l`}%ZR>T*g3GhH(~O)%L;UG&z{pu4?hdN95Eo4pPEOz%9s+NEaU zy0cLNRfG`XB<;9O!|a^Em?iDpg4Wn?{I==Hzi#r%4qv~@l z+m|Z`+hhCEtB1;~MtZB-EMtb&b4i~k46Iiz>DD&GR!#KQ>{Qkm^C~ZS7gPgk(6<&& z(BuAd^L{E=h4J5jRBT+gwL|;@=n4zDVgz3nhZOMCWd1uZ( ze8;s=eR)=0M~OMy`r#D+6HS^&``&j#tn9HVJ2s6w8{RvYbbG(A@VisUwUw?lm8G@b zYgljEg`k~1TKxPi`kg!a`+!BP5AnbkzkQR8eW%YIU~AN8nuE{82cVXHhO`5a-az*B z!Og-0VH+ld_r`OAC*AvyU0~yBC9TxG(XM!c!4Y)dt?4AcrGAY_B@jAl*8v# zm;aQVejr`;AeLj8bNAHD^E5M!u~PNC+onC*d*H3*I*PE^a$JHxUvTsvo1~rBs#-sm zZH?W%6T*HGJ9Db0bkUW@up)GcO}pA?y4vdhz2;+1BtTtn)B0QX?pN?hP5+(y^d~wr z6d#C*4T1~;f`K1^!2$muwt*qh{|jP^EG#N6DJ_eRg;Zu#ht~q4>H`~FBAeP*2$Zqmc24$?}=mx%q{~-%HCYt83Wxf3w(b1tG#vr!noo3-I|3Vm4RU zAYSG}*9|fer=ryVrm?jTxDWjCID+`0+%2BS$B&~UK1qBr3;)#}Dg3A=nfdT1CPq|! zmF?Zv)xLO{fT=s6XqZZtl+Q6+ehGXy?^BjSib6&HcM$E@n@3#5^J9Kzjn@ucZY(q* z^Go$~dn=LCRkj3;Z7=1k7j*%9WCN@VJ1?3X|J!0aFj%&FGuNW@ z$!>FI8Ed85^7UcZSA-s>wqkR<_(yN5a-DO>KxPa7!#Wrr&rBeR;W4{GRgtew5Msls zuI6xUAWL!lC?1+^6;LdDt)?OCBx3%7or{R~r&FRe{BX!FU1J08&+=kYd_-!a`^nb) zQbd!FH~x%(hR^$+-tFe_BWJ;K_*3&z+z%Lj&%GFUM~#BrwrTQ9oJrQDgQ7_VHj}}G z#kw;?L(9o@5yW4K{T-@IDTey;{^|Fnu#b}okHY02kj8{dUpsvi@pi}bC*<9b>(59z zLHN(;PtSN(qQCO~%8B@9?3M!&c3xkJHwb2?4~Cc}+|`KF`Je;ffOcm9FOt7&f{ez@ z)>2$oDVz0t_svq$CRe`ervBB~W&k+zv0r(;jXovEy!gp!YHD?C_~d8GRSkh4IYBeE)DB@3A$+;POl#(XX{GsFrLMdVN+Kw+ z>onzYO;xZicj!{&tU7=B?X z9WlEY|9Hm0A1t(k3!vkrb6bj*6+B%z{&g>X^@dU7=~{}zy&7zc$2|#b;NS2VW67ms zu7euwnsA}YrLhpJ+Og?ty?E5wZZo-1_%b^qeQ8%WtB`#+E0<6G0p_j#{^5wwZvCI3 zhyv-u*1zGgvTDJqMuGXwsg(I=-05$Zic&5vPImElguA}L z@9Y~3a%5f@n0DiF5GTnsv=`C8b;rOE+)F#ieg#muXmj+JeZ@<&Sfc=DCBv5F?}E08 zn?ZtL!(HRf>X`vVL=?&T1xk?*sI9{vo}F_P&2FN^KM z@yiVF?!(l;$qbpxiMQS$i?mA`JXZE{^36SkCDpe|rkwkzfnbU9_mhsw?>H0&9X>=R zqS!b^MDx+%<|A31?J&8l(?LRPB9mL$jPH)dgSh;ooUNEFwhnRbtd^r(G0eJ-^;#xy zgP^gc&HoglFk*MK@m@wC|I2e%c?*MEu?VFn-@eO_!nMA~ed#d&R;BeF>HH_wAncb$ zyn>pi^QUxDQtYci2|54D7c5c&2%S7ibhQ0QHl`k-`x>g=XzW>~WsKnJ zEHGm1o#>QMD+vkPVs9{OveRM!L}3UP+a&5jw>X#d%L3E4ic^Eo%5s=A()??$*0B9? zMe%=j$0~)*l@Z!_r)uqhjW}dIX`#(LZz0D+$Bb_29jpIjZ0{mksW#O&ZpCH$Vs;EF z_$GF=;_J}hLf0+=3z_;k*NG;N9rHIlcG9pH_E%&3Pk1cPJpWDX`NKjzrvgpVVxNXH z{q??~X5tTfZhO58WQ6e8cK#-)K6G|lE1}iBVbA3S4PmjxwcQWC`D;yM_|~ClJGV;7 zKZ|W0u0z;b#Ts}%T`^VNDVAFj9^kRWP9NVTPF5OW!oU0wkL!N-!QO^|*glcetX2*_ zi1x5t=KiXQ`qFn0i)8!BZ{yZO`eNtuSaNl_6ZbE~_970ZK+!ge6izNm!Y_&kjDs!v z%2H3zCbsG74ZfZFY2?b-H>_s^0G0C0zl&|rnJxK{D#z%iEU1EdvJB+MjH5Rv^e~Q+efM4qYc%u>b?qt%JfaW^Rw~hxb4{^PM{%u z>qG}nW$7coEy6d)tv=)9vi+ANe`W115aX0R|c8fc`3Q2pyJc z6X-wH_9xm8q45rN;!PLDrRQhX2;nt2R z9@6)G8Y?EOKvYy>?}+qOJwn~20Rq)tE4C&cGwcseYKJd(th&x;2#9UN`RtAt`NjMn zL0s$Ys~sx!y5D@?f;uGcjkHFdgZ$}Ey0pC+ATs+`6r*M;Kir4YcRjJPLhgh5S4W2s z&rr_rv$2S*5f`Hh%#x?W)O2d!fJ4L1Xp4i;spm;E7b()pYw|WZ9*0!-a){A)Yj}h| zz5S5+C{KSnQ;}$VuVhoatLd?netSSHuQ>`x*E_!%z3O{})&HHbzrc3S0Gw zAWsJWq1XOV!hw1k!N#t^f**qV{k$U5y;N@d;M9E%$V1M!LhMX^oHhO$5gZbH4!i!& zwr;o(e+q!R1^~bW05QpBHv8y^1tf(8M@`_3u1!245d+qS_!?veDt7~waKKL#pafHY zbKFBUF_2!KA7`guBn3TnFsK;&$$)~+h>7wi)6I$r&ywoU`iW5VFR#s?p|4+Ee|?`) z>J>QEfJAM8Sn8Ekq5+9m^Yx!%;0`&L;%k(IcGkmm&u#{)JZxw)LqLRB_^r>xR)YZ~ zapAG60b8)})Yb5a>)`|HK)3-Z!6^u7wjd}5YbNa45{P+SfZ@K^nIXh#+%8hhV8^cO zgG^y+#db8n>kVsmcjO`tu�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%0D-s+|Z-XpLUo(@hN=QSh2# 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

    m! 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�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 diff --git a/docs/rainbond_architecture.png b/docs/rainbond_architecture.png deleted file mode 100644 index 860b26339eed5cc6b675bef7833d1e3899deba90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121996 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

    Tq$?o=W(@m?D>gAK)|=U>m;nee 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 - - - - - - - - - - 元数据存储 - MysqlDB 或 - CockroachDB - - - - - - RBD-API - - - - - - RBD-MQ - - - - - - RBD-CHAOS - - - - - - RBD-WORKER - - - - - - ETCD - - - - - - Node - - - - - - RBD-EventLog - - - - - - RBD-Webcli - - - - - - Kube-Master - - - - - Master节点 - - - - - - - - - 元数据存储 - MysqlDB 或 - CockroachDB - - - - - - RBD-API - - - - - - RBD-MQ - - - - - - RBD-CHAOS - - - - - - RBD-WORKER - - - - - - ETCD - - - - - - Node - - - - - - RBD-EventLog - - - - - - RBD-Webcli - - - - - - Kube-Master - - - - - Master节点 - - - - - - - - 元数据存储 - MysqlDB 或 - CockroachDB - - - - - - 数据中心API服务 - - - - - - 消息中间件 - - - - - - 应用构建服务 - - - - - - 应用运行时控制器 - - - - - - ETCD - - - - - - 集群节点管理器 - - - - - - 事件与日志服务 - - - - - - 应用Web终端控制服务 - - - - - - KubernetesMaster服务 - - - - - Master节点集 - - - - - - 应用网关服务 - - - - - - 数据中心及应用 监控服务 - - - - - - 镜像仓库 - - - - - - 源码包仓库 - - - - - - 存储集群 - ClusterFS, Ceph, NAS等存储集群 - - - - - - 源码构建器 - - - - - - SDN管理服务集群 - Midonet、Calico、Flannel - - - - - - Docker容器运行时 - - - - - - 数据中心 - - - - - - - 计算节点集 - - - - - - 集群节点管理器 - - - - - - 应用日志、性能分析 收集器 - - - - - - Kubelet - - - - - - ServiceMesh控制器 - - - - - - sdn-agent - - - - - - sds-agent - - - - - - Docker容器运行时 - - - - - - DNS服务 - - - - - - 自动化运维控制器 - - - - - - 应用管理控制台UI - - - - - - 资源可视化管理控制台 - - - - - 业务UI层 - - - - - 面向多数据中心 - - - - - - 第三方CI系统 - - - - - - - 应用市场 - - - - diff --git a/docs/rainbond_logo.png b/docs/rainbond_logo.png deleted file mode 100644 index 294f88c52da1e38537924fbd3e7aa9d7f3766e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41259 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 diff --git a/docs/topology.gif b/docs/topology.gif deleted file mode 100644 index 8facb5496e0ff1ee511fb6d81558b266e6bdd191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1447198 zcmcHAg;N{d`v7{{5S&s4ij}q$FVI49sp3|wXn__dNGT4*U4sXA3l4#V;2t2j1$VdL zPA>2FckiEY&&-~gXJ=>k%sF#rXFt!gQZkZ)LWbjnVfd$b|23xn9ZXDk(oA?v(s>L8Fh7^E%@RtJIA!C-Y5SRD_h&ID7JhN**K>R^~U z45p5UQD?%aOJmeQ7G}Bj`3D3B1&4%&g-1k!qoQMC#|}XsnYAYzb)d@9^vL?e^)_>l6$jl-?uo&EEJi=(TPo3qRNhfg*l8JoR{NSQ?o%3rnx&b=y)F^gQ12qk#O zHM#+Q-5$)y5l}Dq{&#mci%8xzYvmi61ZKmm*urS$-UPwlYbmu=CIiXBzK2h@Vps<= zr9+v;pfI+Pe1`1OSc{k~r6S3S+o_)FqKPttwh(%`n&QbSvk|CXZ%xTG+!nXolPU)< zovm{|+M4Z!m(4eM0Z19-5#@_*K~Fe-q7fC#UEtSpY4Wv|tGy81=hU8Bi}j-Ps(_!+ zG4sv7G*w@Xw@Dv1hw==we=5{D>`s*aUQe^C6WE(ZdLP~HiZ~xEb_R1O_0!cJjSLz~ z&5P+dpDa%#NF?;9x;kyoR|M*()z)7eZHyG@4>UGhone=I)0LVUZ?4Xdw&w?$ns7Kg z0@ejDd`hzgZzAS`1s}4I%2cO^K2({`Pb?Dj{!)pvE(SccGh1|~_9-w7Wb)873}T5e z%L-(zEcg}rrWNrkjC&li82)Mrk`=*qD4iY2OTe}a=3g^2@|9*TT){=l^KY)iC`+=f z#;R$Uuf}Pb6t2eWI&Q8e7zD7bL5$+fP2#`pIU7Y<-eU5==9PtODR$$V%&AUO#4O;i zhtEyZy!I|k(tU5)SknTxWLUF8*)7bny+0?heh(70V3UfwEZj^?aopO>&j?`OD){;5 zT~J|89&`&@T(h-RRNl$HT?`wy*e*f%xPB{z=xT4|gkz&kMbl|ubonXgB>sMvm3 zo_ptbL|N*s0|!9Iu)Xbvj^T%KZJS-}nEqdSM~t>_gTv%6x00Gkt+Lq<)8=goHPgRG ztemE8v-RLJ*4zJ1XaD@&6`1qhf9pK&<@An+2~d}UPcA)Z`}K)5-#eGp1RcfNHHb~x z#d=!c+{H#p!UN&W{A4cVRzX?X<*K4+%eQCW>i;><1ud6e?bZ)8)a^ImW^398?KrF& zM}H-|*Pxb*>W|P8`tC;~a-Q`kou*1RCqqt6*Jp#KLDjfZ%Xk}j^=OhF-{yoe1CcypO5KVLzr8j>|+e7YP1F~%D zF6X>QG;0>GzGlCMDg&4V7adANe{Zj$kixA|5l*mdx)W((R>n??MN*^7!7j1S(Pciq zPmNwabCLdHT^1GQp2O5DCG(Z*eH5fVhgl5ME~A0Pxu@A11%1?d!o}q6r6T|4cIoUR z@NhrwQ|KFZ<4sxZR=apau`!oTVKbLWv`!n(>*s+o=wCFdGB2;QdFGEgBtf6-a(`#? z>1=$VIm8Bz;lJXCoA-g%z{yj`uZa>|&~`~jDI3KUY>Cq84qUCVm!T|g%{!alPF1Cy zt~?iiR=}%IDH*;=R`8KfcCZKUIBW%^#QXdJJ(Ozez=qELdM5Z?ROL8}vd`>Edw0KV z$Z$0H+L-nA=J#kH`#}bW)^MswGn=rOtgtKelM78%w*&{1;lUiqEV5t&Nzd*RS`HxnVM& zh4B!oV}6{-PWEW?b4B^@7@1d0mKyOtGW6H`b|F1AlysW)UZg~lS71U8TvZkAwaaWP zJT|%!DwMc|Zs`A(Z9HDY7a~U>(!8pZoHUBy__ik>$1$>Y8k;{@vTGM9H@l*7=IYD1 z>Z?hq_sNV35lLP8H#vG%G5#=Cd3IGbbZYeUm3M*SH)Hn^Iekw_cKGhXo~=<``~Z6! zL85XCfC0~-2IF;)41(vGcyOQgsdEjX2ObWsZC6Wjn%A8Rx5(}Iuw!Iaoc z1w1%HU8n1E6o>uN|3>hWATv@fqu;>B$*|=Oh`tNUSYu!v0+LN|PpJRE3%O z(AF;yDSfDARSENclEiqici>q_ww7~_NAjrcyq&?;CS3n|nL5y?)=S=4Wn>!3nr_|G z#i19^dsh24@S<0#^f0OJ8rgWkrVe5}FgX7RM4on!mr{lm9q6{W(}wqdv8yH~I^U$g zyBtYnIDrCY!&+CXNbrg~A>3l+8^+xKcF%rxsbmuKK|WKYedJ>(Zy>Q`p?Q|l++(Yg zNn-Dr`{bvFT40~GqsN5yGX$eEu2qC{e_Np*owN0bR-SP}#p!aHWkE`X0TDdNdbt$V z=Cn^;C z_r5E4kaDESK5N?c=JFJZX7u1Rya7P}(n zH`gN@Ex+j#u?D`l0mFGNb8l}QUt}5H_c$J>omp_ky}Al~s6C4RgI(iG+-nh4+s``X zK;339t|Kq<^Y^oPpA~tWk9h$JUw}HwKvREwRURH+Dj!c4pI3rBH*Ffg0)?30)-l+> z+&l)vlrE2*K)zTXPK@zl0?wEG)LyvYp3ug>*bEbkdqDXBqaYqz;tbp1hZaOmwu%@( zV7@sDY^kQ{86)NY1LDt(=ND%Htj_oFUoa+k_>cdiaWfV11%ba3B0wgH=oiXkf-2BX z@WW?TVm(QN_7gmv4Wj)3e~$wH9|iYpH}rH1EYc>(B{N+4%XRz~01*NX9;}A9>!hDq zH6Pi3D`(>SfPF8+15o4vsx|}EctnVaLUO6)_{yEs@r2&J<~0`(5q!;8^~K3v3NT~x z*(@RSJ+HI9lW9Z;@uR;EH_Sx$YXn8R{GXi$a-W;^P}?W*SXzGnz{KLuFlw4r1M*=E z2#U7>fCIF~!>6euJS1`9VOZ_6b>b(3?p;n1dRV-^1ix!1&=b6fMJLcHb>s@Z@8cTx z#2VM`K=ZQvz%x?|$vnTm&R`;9$w4z>X#V}paUeHQKoAe;sSK#8hM4q%==I7U>U9IM zK?6poKNQbBF4hgq)ILDh!+u6Z`7nA}f3;3f4N)2d!ks@KegQgB39;e}4Xok+l>+)Y zg{pad&c*-=mnHqyC9PNRY0qQCpIciSc@NZRyS4koHJd&*H~bLf8iM`Ql;?_K25}Zf zO%Z1`A!LSo(gnx9CSAjp%|Zs|ZT^^t?xnLQbvgEHJ@E;pHm%B({($I+_jwcZE3z$#U>@*qdW1;E1%ue~Z~pAU{9XQ8#3 zK^Z?%^lV*bhk+9LkT>sx^eTR5Ir`#E@HAYa^vZurF-NTjrROxq&q`;so8ftkySGlb zN)bdn6wV|OCi;qU3&cx&woY_uju!&~Gty)!0lea|*7)(tWfz(L2Ef%byy*3;kA%L@ zX#5C-iHJ>bfQXGCZfum`R5oP|S*RdS#Dp6;uL1iMDU&u4Gr!kdtVZk?ppr81GgGb- z7C$ZqpB5we>w}Q^^IX7_T=7KjsuAzGZtul4FC}GwqB4M&nD^5taCAI}uf``G>+{~s zQ#&y{t%fLrAe&p*fP2gS4>1U)ksXVPpXu;3#TaVUL|D8FM?nGx0&Qa~jHK9!e9VcM z;5L!Xeim$588lEL)xe16EFCxzTaTU(_HVjt%6)Tle`(_HPGrytZSHe*Cy3FrQ?nyV z$~b3PD-+XXXGcEX;)Vj=&#!ZDU-Ok|0xJqa3OC-rJQsY%s%b3nX~D!)%)p#7z@TCx z3G0Fj(>2N0m@sR6?odHP{M($8GsLaJ)jUcIx@Q(3mXv+sT84p;7T08+5gJL3TUR@p zB?g4KvlB59npJmZ#k1@D#JGDgLm$#s;3`Xjbzv`hEYT36YG&{=t(*jCR8dI!>sW(U zM+0B>@Rf~E_p}{|P2!rsWd>uQETGlHF??S0&+qK38c-So8@aI0S@Lx#F;ju}Qp$LC&f41a* zW0l5=TBOnP696^$u*$)U3xUv2|Za9Q5 z^dYXZEcl5tD}%{SbOX2nA6GUVLC`!< zk}U6UzG_Vg#X%sKYUo!k-)FFRN-RxOvDHEfQOK?9&J> z{AyfIu3iQ}Ny&Z9Lbcs{;}O0ZL7Ar+1lQq2qV7tR;4&&Va&+_DWmF=MEnpDZG8sQl z2;QU#s5Wh$IS+q9mx)j4cjO%Y*sYZn#34gNtehwKWFgCgrftLYgP=Ap;#3eJD2i}1 zGr#H$J7e`cK!o+;SwJ}ofSpi-WFnERu)3c1XbdrjC=r*I2EOwziZ>#E&w?4u*ms|J zlbL;fbW)|eP-S?Tqk(nGaQOCLM!OA#|x|z>{JuY=eMs0Ka2`@ZqloZTQdQQ z7x;GN-Gh>Pa6d$S=hvatrOaD%_s^?woAS8NZV^)e*CMb#Na$9i`s2N33_9<&2!bat zHcPUS<)HEAmf*N;B6*^ojGc7Z9Tb~rFKmWA=aMKYsQU-CgHiDN@=M|>St56nq9V?_ zmri!Z*LGL4cQFR};>-s79La-Z9igCLzua%1e*?IF19d(EKa}HuA#GMm@-S89Z-tup zx*z#wMNN&jVyXl+(=b5id~Y&Mpw>>z%MI}-E1}y(#O|kNAIPGj>MJ`jNqH&$7p4xd zT2$D_3d2PJg|b`Lj-DoEnI96`oga}i&XYeLPBUB4d}>2r9=3Fzfe^@Ku^J{=$dH#O zzCUfj?q&cGjk>>GfY>p;K{elQM1C{_>_ghC=|(^Iy?HQe*g`O*t&_uU4gwIgc}iu12eBS$*&un7VpzedZ@-k+2J}Tl#M-Z;JtS7#Yv711R#_|elnfVZt8GQ&-$iedGq}UkGSlTM z9Q-sfi;Fd0FB_HGOa5@SAY>e+USpdjhR0%%9)FFfskJ3=gMSf4*mff#)|)CC5H)(! z4YKfnk3CCIx#Ts?x_FE|uO6RDcH4=(TVR~|O@u`E)n-l3q|(n0?9Rl>%_bDp4(rWM zT0KCq(ZOBGIAz`Em8Vz2+qmn|aPyx9hIlGsF6_#6NV4=l+d*|~2y%ji`!zvXYCqp) zrl8zD9)1B#u?;91gg(*)j)s;T`SuT(1MN~|jeCk!%e^Q{L&{@Qt71aeafe;)nT zM??iFtOOy0U9oNfhc1tlJL9;E=cx0aUAd9wyW=eHbGER{rAs;D@s|qT7l{yObY~Po zcu!}$x{beP%J^MC62AFQ1AAXa(~`r&y;nm$pKz3uY~@Sps^^x5=fXm0h*f zEF>g)48+HQ-K+Wc_q)~}UnE6pthJfs>;GAkqxnAZ^oLBZqsK8mAESuQM?MX(RmE$~ z0mn{|De&7z300vGlgo*I*$F>FVHxFIa_M3l8f(XtU-K)Nit2WgoH70lqKAEP2N%w0 z@VqkJat-4Y?Z0k+LE98<_wSgmrJNC_sd|s{p=nqf?Ys(KWcC~~a&D^Nk^9bLw$&`g zncVu-{@Wc*yWS{U`!UG29IHW*)f!o!;Mxf;=@_i%V`15u;V{kcYmBUz7@zOTsF>?@ z*Fvwv6Q-`?QT%-dzByvx;TztC*R%%H>QU{gAl+%#tTo|3j#cf zy6MzYa|*3PDyxWt+M2<+BXNp1JhTQyI~A*tKa!Ez0yNPyga_e_2kw`xEevZww-m~8 zna}KotKy`el!z?!suQ!T)SCg;_MPK=AuO!Czlt{%n(>u{^YDXWbu(f~1x2D5gkoOv zdgPp{$w;M%pZI3D@}`gdwA@O8g=yO0BssM`H0BK3@MbT*r57_BwO1?m@%$s0Em%vs zxa{i2|3u^}a)k1VL*Bg2xz21`=(gFe5gjM%v3`}$-8->+J|#9geN#JbbyXcX3v0Tn zn!l>>ypsK1Uv@7(k1%-@j8y1D?w5FW&yOyZJZjy4S}f!8#P)u9GFN9<>9KkKfuqXM z{`}UqtYSxfyT!+HqL02m`tRq21WlwKrl=7x4J3`=X9=FsZmhpZOQUDF4I?DF16xVo z0RI4=AU#QC3U={eJ?=eq;$$rscB|$kQ|1a3W*a-jx z{J~koan%};6?y6MY_oJdY8EUWgCx~X2N}>}>f)%Rd zD9612$6nq2giAF=I#tELcR2q?@>lhqxKK=?bb)Q*($n3iTpBsT=AT~6gtO=%RWhSs zvI$kci-e!iQCqP4@S`S!j0+DKzX!@q35Kz$P<83KOH!J>XZ^}bP+zDyrtrKmI$l7S zw_Ix+-{zyu^NL5VA8{ZVaq9MwO$ykC2ft%k<%w&v?Yn}vombFsC+Hm@-vX!Ec#$fb1 zcT*s?PTKqoTq*s!T1L3{Rev!*Ga&Oh-a%V+I6?U{?wq4u5Ba<=b4^$APgmbd4!=+4 zB^ynaj-?FTA!+1k;;dp6R~F*s;37=n?Z3H?uId-tr{f*`iUS=FO3jBI56cRW+YKsH z^&O9>h~RdQMt|tMg^hn_QK+8K@(e#2|MgeTVbUzHgn!b~Nvvkt#JBHs#x`H!Y|?7^ zAAH7Py$?S3Z~umW!4GG3z7W_Ie!dhUVC}R3rh35Z7D-4~$gIbCN#yZ@l#}SGL@ICT zini(={8ezvc67^Xqf-wXck|Mva1rlMmnGxgRwYPs{G^OevS9)~Cb!TL+)(#Q;7e#!nSXXvoq zgPkHY+)OU3)aUoQk7{DNd={+(wv&jxnE)Uu6>8+%=G|>ZjZcqyqce(r-j?AXf5-=> z!s1%-NR~Sj(u_jw{dgD|)H;bNI$9}_Sbv_dOfpmHHkv80@Rvkl*%>t`1EmaWo`F;@ znyFdG?-g_Q6v~*+80s|I|L$9RCSIsYT;apKw~MYMj}evrEXtWWMunfBF+b&C!ZLF5 zf=QmGDf_dGHiyXm`T4BzS?9a)Rboe(`(;}yzM{g0TED%QpH*!~N2Q)vH)&52n zyP_N{%O~@6lUGK}|CbO9r68JN=pW#+ixJUJq3%8{B%l%$Q!E{wZ^omws{Z;Ep?nQHi(~ z%k*GO7uuSnfN+9s@)PysXA0=>!=fz+uSIbGr?7HGALR(1IanwNFZcE4s0u$j8>vbd z=!J&C6A|N=%Kc2A1K#nN$8= zeG6`t)ldhGODkv(w|w2^kZNH-n9#iaqyE+F?=Y+B!#^U^sr`S-c-HYgzk+7{+GHkU z&A6vcAP{S{X5h;j;d+?RlS`={oy9&T#5`VZN~CBKDzzA~Y@`1c3eNwlkDRk}LeJ5pNhVJ>S}@LMa3Prcfsvab@S+Vif)*Bc&=@z+eo zzO^>3o1WV`h1Zf>ha;M&`Y9)1+`Su)qCqSUVSqx+2GqXl-B%f=Yz3HEzz^d``OaZ& zPh|Qeh3P0iMLsh6#Z9fAr`GzD^BK!Mtu4bRs_%*BIjfl|nx88QPw=v?5UQH-2+ zAA(Lj-LJ1zfGMIPm{d^hPk(ks0FQr|lkQR}l#S-KXpneO^1>_H3zW2CWi&29zU|@s zaQC->%9poo3O3poJ(~TM@o-Sa`N3h9e-d?4^t&~X`yud$>!=%{MG&K9te0T$WB02` zAPq})Edd^0kN9Sr)G9OI)B>6CUTFU{Kbew~H6-n&U>>2P1A6_Xftg3~h-a~St$aT$ zPoQs8(d}~N60eHuTey)5yfyn-ge}yv$AS#*I#wF-q1g1ske1|0Ey8*lUtH@=>_^$? zcV93<>1%2Qj`un@H5Zy3-@ZG~S($kDrZ0itQPZ%Bxr;%by&d+pBFE8fdTy--!GU=P zpaywZky^GF8-UOZPSu^^PNgqJY@B*&=T6o@jp}kX?pJm5c<{5vd3v1fKb+12p@4JC zML5>~N&Vu(ALqXn*0F9s=qT&t1l!*9|FJZhG1kGR+W3pu&E20^VUlp^{!wZ->*})1 zlY3}W!P6Bo^`_T@ zr;tjWuzDQce^TmpvwiceoU0?ks4_jN#dp*;K%oA#MisOBBtqonx;P5?7eQQInmPH` zd^zo;;U%9y;y+A7zNF~ZzJXHx64k(Yr%0oSO3jDlCv+~KSR;EO1NCbH^L+`C!r1FV z*jtTn>Cu?p;}s;^)-3GOQ5%pQ8QHL7s&q9qo%T`+_kM#u$xR!Vp*_~@>3}sByVjz@ zohx;_#kfHKBzDmi4|r4+{3+1#EKHr?##>s|r&8&BGlJg~{QtBtPP^MNvt zgSw{c&2{nXX$j8@f%)oV)20=y4es1+-s)O_sQd!}(`Lu!ox+4NTAc2mWfsYCTy##~2F@gThfqsaf!1KT`vmkImQ24ngC-c7zN>BpPKL{c? z2@||~8k`{gCk+yufeOwQ49SxYfkHxxF~Q%)g1?PO_S@@_qr8X^UI@)l4k<=1Dc>3x z(N~Cnt6*5WW>}|lm{dGhR_i0_*03+@VM>JI3M}D$)D9zN;bSQK$@4G_gllRe{LVA_ zrNb9BBZe^HE0Bl{M8py*V$C^xmpXDE5w1ezF!)i|@}6Y%V_)rKm0Lt44r6dn>lVXh0>f}5eg@~e?jAFQmVsv5E{1E*^J(|fS znmI9=wKkf4GMe)un(KKCk5J5etr$L+82-c*D$nB_h5#akF`6!M+KF*37zcjpXoKhRzl7qATzvI~3>t$X$6`b+ zyG234qSnt7tb`J5WfE*$66~}RT!RxF6BFEP6FfE(P`nV!U{O;x)+pAXXb2?eJSg-6 z67oDTTqrn#Eipnm5z-AwC`=4COH36?OwmfrAWqEQOw6iH%n44)OH3@hNQ7!7m0u*K zsK>*!l51R&5sAsj+T{AlB-^P%2J%llAX#?yUbCw$YmwTRcFuDa?RDH z$u^+L)egxuMCSg!%>A{MtKf^v0ZrvuU*_4;74<+~#D-KX+BEW9mf z3iN~vjAir8WeWne3(PF?e4quUmj&TT1<^ePL9&GrG==fPg#k&0Dab;v^ZYxp%@T&@ zXhZW{p#@1$C=yyc1ueaVmeUmR_!Xuh3#v&9<6Mhi7De?TMF~ko4alNKXkiOUaobd3 z$7NBEY;hN~sFS@I^`>Z8xMWnjWZbm`lTk(<zxL z2X1Q#w|9fPCd1uD;2u{6CbS425rm%(BESt1l#B?eLxfEuB1FE}ZP!H8*2cAi)vHrYBRTMb45JkZGoy(%uvg}C3VQMZR(0%WKlA*dKy?|Sy$>- zR~uSae}${7qpdF|t#9L~uav9rvaE*{)gyK4`;+Sj>gtE4>j!ljhAkUL-5REn8)mla z(Ay0oq>UJk#%a06+3C8C(E8Qn#`)gH#qGvr(x&aA#&x--HMgciou*yOri;*~>#L?K z+U9-IW&mgNfm|~osQIX<`BJC(K}s`4ee8oEP@7O#o9K0$2wgijS^F2x z=9}L@39t5OKPH)!cBz?mx#D)k8GGgHc3Dt|D!ToLe1}ePhZbkYcij%%>yBSL9fmU< z24T1kQ~6Fa-A;4SPD{Ej3(+oH`7RSsmyLUuLw%R)Oqa`bmo**AN)!dsMcJXdyyQ`V zJ6%2?l=BQKGzAqAh5}!sLO|UyXjFoHcXDxeB4>A$ZgTJ$+&9VDH>BG)bKSSJ)3-R&w-DC1j_%=~=!b9jW3T%U=?0EP z2TpYd&fNztQwFZ<2X1Eu@NNd~(+}c{4HD=L68#$_NgX6>7<@20`0!@%F+FbRsn`&u z-VpV_A)3@7x`rW!*&)W8p;z?7Ok%^#dc&;$hS^hxIU9z#W`}uhhTqeV@QID^>x~Hh z8@XRXRNOWq-bW-xJ}NQG{*`|8o7kvi>Zo+X=;zr{sohao@-g|FQ8oH8b+Ivx)G^J5 zF_qb|AG>4P7tl6oO=#lc0kqWWtO1){=zv-IPX+*;`auzpTe>2@kKhrEW z)2cVq{%@u;bq3Wi(=$7RzM1K#pB)UJk^Ja8Rzfsx#WNW``=wzvY+-g{cXUB)ZdPw@ z$!hMa!rXep+-CUP)b89&-`xJ&`GeWHtB}X zUy&M zx3jjlYjzCl_TuY~Ki8c-)?L%q-5b|E=GMJ#*L@f^{KPi`er^PLYzURCf+AMU_BO)% zH>?;o^=~(#A8f{?Z9*D16XrJK6gLe^H`5rlQf@c1thaI%x3Wvu@=Lc08n@zaw<`Cx zVEtQ#*4yO|wh-dmbw9T&_O_9?+YRD7tv`2KJa$SHcTgVNooPFL{X4yB+x-l?>7^UN z9=qddyO_q^skz;m+ub>ay#?{TrJs8%9(!wPdmD{=TWJGhH+$zq`xAY@Lx%lhk9|Gc zeQetPN&o((_5RiE{?Xk2eG2UPPwXuN7QYFLOT!WlU`gh2SR#pohdAtG{R4pK0nLj8 zI-3Lf^n({RSjPPWCW%94?nBmnEKAuTo6-TT{^8rmgLk+?j{U=z1BZe(M?C3A?+1?f zB#s2ijy}vEeWo}T(LWY{as0LESR(ycYT#IQ{#aV#L>YIiqJQ$m^F;f_iLT9wUiyi? z&9TA$iIK#q3HPbl{;_GA-eA#ntE?l;AF5^Ou$SSGAG2E4a;7Pw7=d(^cb(s}}w1rh%(2 ziR-HL>(=?}PNi!!?z)%aW>n&4oZ@;Y{bnrkW;*hE_JvILi`!g@+a>+m70=tX^xKW5 z+pYQA9o+5S3mkTS(0Bek$P*VF=wbL=R7oVP+S{=O(6>7M9o7Hg`7mw)batvB!r8^C#!07pqsdmv~n| zCMo4viMtZpevty~&(FSqm*TqAQA=L~$#ECPMywT4aa=FH_|UOcGIhr=t7hpIR=(*? z;QHN~!dAuHm(2fnX{NA>WguPL_dY#4jCCkmGUk=u|7vU%vp=V@SF?{5X;l51g;sM+ zl>Kb;q35XKoUAe#$faUT#h0fbWfP={;V(fxriU*1Lvd$we_`2F(Ga0F7(- z{;&2(dI4rK7rUjNz&ECO#fb-Ny{Yfq7~Uf7H%3zKN^I#9t5?U1ez&FFAWu!F;8rn` zZ*}126Scnk1mg8@?0jeFvc_KWncd1jssPJ_f3AmHUAd zBE-O-P!{sipXNQn(8keUdLrmmy!28qb6(I=2zw1`DU_>|XgTctxb$*3|60&;gzzb9 zIZ~W}cm@1<%VX?mFKx}s&@9d@mkEms|mV3o5m2M2=ldX zzp}LQl1yK9uO(Y|YON;OSx>H|{8wU|=C-9}n(*)brD>AyaJOlu3yJGSmdAUjSvFXF zOFrtWhU{i;yh+GrUXo+aW`0@#$yPyDyzEwCUS7x+6k5{*)q7;ey6sQ@Yh$sbW=(s$ zw5n6qvW)VQ9aP@#Ay{02>sad9E<-aEah9VbuRvAZTO_-%er>rD*px|KF?_;NXBWO4 zAjbt?|E056vz2AJSGNy(qSACF9<) zZF?wjJ;D;sNW+>L@r$moGum#aB9qp4rULbXMf`ra_&zEu0Qi>O=!Gz*2YhX+3T7Ba{@zag01jWnEy!?pEEhxPIa=Wza!IjGA z7glb&2;P5nd$kg?bwf=oyCVDT6gHyRj@O>`*dBp_>mx;x7h=Z>Kbo!%M@()0VW;%D zZ%(^a_Z!Z|d#!JG*7GB8FSpr zLzesVxM!06mTr4KH7ND;YVI7_C5AN|2o&B~eBdqJh&>n#`YO6a5s3QwQutA@g5T1U z1i=nQ*#lgNT6@;BDpbc?*NPxL{ADVDdfWRsY?z7sYnq9IPX5Y+aO<$wbQ~XAiN_Co zn4TIEA8mXR*&B*0z@}VecLM!6W}#jut5F_*Qe^gwLjw*SFRwf)`Te0tcZ6i3dh1Q0^nYRtooGBf zDf1xbH271X(nr)<{-L8#!6iwxldC2tBz#BlrHEFd_;_Ws1IUD}XtIZSyefRP*z6tY zRIi6dmG84+3)SAKF=S13`M(m-!4{$gYzhrbWLHbvQsdg;f86x%t8Mz!^x|a=0#$;+ z{fV=jSz}IsqyKT)=5pw6Jr+P>{7W74llAtj;mBFwzEhdV+-m$p?c$pn{3iBdSu?<=2I$FZ!MPtJ2QU>*7}z16~hc8H6~6jnA}~ zgF%Y0EULZ@Ns-GTa0D!eMPXA`=W-bGe_|^lmphX2pt?XxVM`_XaO#d-`%5;lW$p4)S|{mV|C%_*?F>yZs9=jcJwSuZZm1F%oc_?2q7w<UbQh^Sojcz&{t20;U4Aj) zj1m&Ji#*d=VPSFUQLsLUcDi2WioEDC6#ttDuU`{vs_p-j_7|77Pq!-Z!(~uw?}I7i^$refr2{$GU?sLsun<^b~l6I%m{I!u@1X=U>4gsO1e)I|SjP2J6| zZDifdy5bpf`ex7B^J?^{|E%%qX5WjVet}Twyp{GA8zfO*7pr)bDUf!+ALu@ie(T&L zHFp>jDLg8m@6zX#c9d}DzVRvDWmv@HI9*9>>xaJU7(DGH-?L%ow~|};1j7-W>So7k zz-{L2=UJ`5&A$Ks)e^w-yp+P@Fp9!$ZGY~(T|)dgA#$&Q<@ORY(0B?TxY={VT`f>F zofqyI+s(LLZzwfgP7K_h*5PijkxkdeRyP;ZINTlLHr<{L;BK#QxIZi${rT>F0{?)l z|A?snkx2g|MtPAsdr_RblM{JA(DZ)l?ERS98z16LiSnjKcryxmy)yG+(DZpJ?ZYDI z%`E7{4)LKu`EUpM@L;^Tq>~8{Q3XD zmN@!zaO}52T&z?u_@z*k(nXYFVytRytooha%EW1z$LR#esZ7SnKac-W`$u3i#>6Gw zEHU1qHr_cP0(22?`#ix;D8W=K-rgm_IWfVtHlZ95`SW?4S7DsK5X8GX&W{b^e~}PW z3kgVs{34G3{X7vYlo&V(2`hxeCniE_6CKTpaMO3KknQb0xbFGT0nCKXR6 zm0l$66DE}lCI6q;{w0h}VM|P#OpNGGZjwoCnM`hWNo+Jv=_pL>Dop9FO>PZN8R$+K z+DvH|O6`?NeaM!Ks7;-jOr5((EnkaY5K3FoN?UVDOUz5%s7>3MOxwFiGhIuV5K8Zp z!KIIDrJuW`UuvaZ3#Hr=r``}};Mh{{$z}jTQtu~a5I{4CkQt8()3DDo9}8zby-X_T zCWUHc(jYVGrZSy~GZ|>IUI}M0X-6Z?(}7bN>>*i%Jy~R1Sr3p|7l~Os?Ace7S-c_H z0+(4rJ=r2O*&k?f28goW{7-D9p^@eZIr39EikCT1=^SO@Ts7@n4OhQ`tZcri?2kRU z{K#C1%Uo^YJaLjd6WKgHn!L}@yr0NCQ|&x6_B`7VI~CX5{{!1ar_3&Jrt4+C7fpeW ztFwb}L4a#PP*TDAIme%^yzr?!a8F+J<(=Xd+G!U?3Ku3?6h;W=L$+{*2{h2u%fcLz zKmO2y{}bCn=CtDfiEX8YMZR!RjcXAismPHzJ*ua$0a@5g0?lTJHnA6XXhYkQio0Zs zlPrq+LW+B##REOXUYbS7|A{TKC%5=;car2 z=ya8MX!I7cl1T){qEjg;2V--?!M=sUKG(q%@6h(DLiq}&AX2U27ASI6^`F=#M-Wf{ zPi);HwM1%6djI{ft+D7ee|D$3S2fnO@K;5!9~^LYOE|lki8F2W-(I-WG+eC??p>5^ zTvzj-*!KGI%8`6XMnqg8z_kAUcVb)QWVrS?F1gl?66T`=_u8)Yq($13!qerD{WK=J z%|P{!Ks6qqA{NPqMJkp9RF#41VB|6-DAf{~U02trgKXkJdQ9K_J67Ad?chEHR9^tx zm0rs%;43WPOEWeMk~Z*x@jqbk#j%e({?yNfn&@9OEYW%yAc=|_%eV2x%IkYAf#SBUVtBv}+Pc@eK%IpqdeOEv zoi=LuHUUr@4JfdKqeZ;lLVXZWM%y6s5vWuSgj)h1lC|L6>eQ5hsvm(P+l_?Rk8ZBo zz;%e|L4@W^2V&fkQNE+X62J-qN*DlrqB_k$z;Df+Aos?-x<+!kwx49RV!B<ME4tFrb?wF3 z7#259)-@!7?R6x<5weZZ zZo4~9ML(g*W|Gd?xoO$_N`4Sdi++?^M^ZBQ!V0(}2UI>8x0@X=k)NnSW1jRuzNd~K z>JoW^8s4WikI~+x5`av4Biwym24d(;y^$AhM-<72qG!u{Q>KcoOpAI)m6Thj>l!#_ zTGi?s2IJkVbb)F!fP&d6657dTt6p=Z@VITx@>yvhw{uede}&BcI*04 zF>S+|=*(lef#BW$$ar3CZb@%0Trc(uc@K*&ex_kx-(C8n4map2Hh*|y$w~(FC!hO! zhq+dBk$v;H@VM5#S!Z1$R73CD&KR>{UBe8}O>`>#?G$Iput7sTK^Pj}qg;@j`1#zT zjRtT_4lrdoI>L`4d~4QF(@<`SVX!U-%q@w7fI9!suMC^A6;S#Lvm;iszyHuk`NpA6^>c!cpvT|JuZ9NYoO-L78k&Ks0s zWEs}}oG*QjXp(4{l;>P*t{-OK9X2GNdLq95nBnm^ujab2ar2+0MYHSA=T?~>Bo1)a zO_6OZg{%dY)^=M?t=BJu=a!>Omt!LObw2_Dbg0lh+`1NY-e_*c?>77NpPlK$w`-Y-Ti&tZ7Nfg)Z9xOV}4Yzviv=z5Y z(lzkSZciZ>V;6SbS_5CZFU1oKSKLnjKWyFgSJZLeHF{tesiC`5N$D=>kQ%zBl@2!;M8u?ecFRiLGiU*v;(4^OFG>71;at!vt{g_@*m=VDL3spDLYie zPT-@!bweOh&0j6kzqQ8~yuX^h#t^4fZ^jt?i5LGYZgR9-)yWBmBWqIZo%&pbA8(@n zx<>tRk&kuL{O4LXv%UPJ|4-&t#lLgIUpG~bFdC{6y4d}<9e$L~_@M@UoyVc*|5o{zzIq<=4wahn zw(ev->_@4+$pcr%h*nj%rqi4&_4VE#0Ea1n!+#yBw)E9+bov>2jdI#M>cRc^kL`!2 zFKRb7CQpq&p1xw>MSK``>^%QO{T1AcfZmHRT!VlwF&{L0-1iIUU=Kw4(VNY7)28}@ zmix3Adz-X%rzWl=2QiL}GM0;uij9lr0HvUV&{EQ|brK^J;_{*kB8_Bqv;tMd zjB@|KC_+zfU;n`1(D2CU7;JoEa%y^JwkBu6cyW1YbtPwR^XIRv?Va7d-}?uLN5?0p zXMYl_t5sE1RMoT>FQcj>H&$Pwo+Uk@Wv0bJXrDZG?rQRS!Vu{VwxxcLb&`SZy4FYQ z3PxgSq$4O4>kAd-H=-_-kZr9#rb5M&BZO><>C*-6_6eF2wWbw5*!*2kbS+iSm5rwY zW+WYHEo4E%>13 z=hN=`d!^#bm+r1veuu3dT@l6Z{|iMh1ywAR9w3|W>tb{qUbUFeOAsQ{GC<$)%LM1j zp=9LeN@I9w$YNhHnEmo5(6QbQA^BXo9ZFkPm>Xu~Upfc5j1!~_V=6A)iC}9!+=-<4 zrar(Trll?;XEAFI9|C0B2abJ7A<$E%lhxuHrQv*45&j!R=zl)^MdvfZNC zk4s%PCBJMI#S)46%q??j4s+*Q482WXZ9fG_DvZomH%Te$8q( z0x_yu=iKbr+m>_49Sby?MT(#o!>s3>*Gq;uKAz@-)Pa~cC8mL^jW#pAC|$L18tH#j z8()K>jN&KpuT&62x(IabFNa86EX~7d-JZ=x=t9#jM;TJ>|Bl_Tizs005cD0E09>cD#`fV9=#uRCingG#UQasrzkHk*H8|c!1P7WmUaT15Af#TK(u$+ zeY-a3YSrTTZYzwVn}_ztGgtUQkm$e1)0XppDLNEKgR}!Hdjr3F#c7(k^J>fi)8`ma z1QaIGEp;?eWMwE4@u)=np#_yHw145j&nMK96aIpU8zu*$!)X|mr6rn;G+;0%sY4xRcdU!D7A+uCv667lyNGs*Dxe6V z#b$&sQ#-?ccGupChMYN@`G5+ktIUEU7J`CZlnd#I+w!7|I4t3Zn$+}+ien%7ag+nW z`5*f4(NEZRaLP%7C)pHX8X5KU4x(G{)W%>s?ReJTqfGt86~@um>g`&Qw~^ZrxEPf4 z_-a7KoMCNIgw@d@q2IO%Qy+%-5@ypUC@gp_GFmb zV6wAWD$0z)A>SaLG-H|b6Ym7ugw$;2cyiVoOT??f)jWP)*N`0RMOa3?F}m*EepY3$@&hN zyJe#9vUBSAMy6^qhEbY4{;<}&BD$OQrO9gc66+vQNkacg%o>lTLTzHItF-7B2g`ZG zm67(l+6${1^IxncqvdzqXVK?%rGmwuf8SIi=#+edmk5T;Hub-IsN(Ql9yfiS((S=& z{u)Rwx{b;q7&Uft>LD<(Z8|I;d{v5+Uc5gumvP_7#O};bl~i(s)G)vq!xaUS*I0D~ z^>I(t#rz&!Pd3xSRnwBE!|T&%-|-kxQ04aGj*@sQ@-TL0q2Nbzh>X_6Rwlp5p5ks3 z5;bLkuC|5Zk@uR|enqaZmg5Mat~5o}y`QxI)DXODZzeELI^{BT74pT|QlWG>`{tp} z4w+)BGhqj&39`ax7-*n5S)Gb?Y$*KQc_3maJeL&eTEsOe{qB5h;x(|HlUV=FXj)H& zN5l)z(w79OgC8 zr`lOH{!e22{>)bMX>FQ5HB{I@=QWZ28?%56GxT#!%@y4jsCn3HOFV)orhWfUH2^sAL~v(Mtk(X z;a?$J-KLFydPr5afQf8SPd#lubyIbr{5xM{f8N>c>NUi<{5Mq<{q()|X6DDYjF$5K zQVZW>l@{^wnjbf3-nqwXC_RfOAWw28Ca7*S5|L{_X|QbLmQ-^AKIdN{kE=h|Ys%tOMYO1cA2+#7qIyU;wEEfV4Is!XHBi$E^T4#EcO`oin87!mrH~NJ)UssT(MG=+~_s zZ0Vs-_?p$Gg+_y4gM(o9nc&hb>RK@7lP+&Pr}hxPcU-O58%WSub6Bo_7$Tx~9E~#& zDU{6Fo*yU7b_F6h$k2xT~VpI!a7?Hd^=MO0t)UHqSGZ+oeEDi6xkL)Ii!oCmh5{!c06Mi{_z^ns| z?gJ?9qr^-xumIlpLGVbhVC2tBv<@c!5J*HlXP~&LdJT#P1VVk*95J32Q!V4sXyx%P zKjy;2Yf>=uH?d3Jz2XlPP?Mnl%Y{$lg`>VY#sL$$5d^}`6?>T$SCSNkz8VMp98J9E zQ$c_oMZ!42XeWgP`lEwEs_6Z5+oT5}Fm5KQQz9D6Ga-uCcfUz{NH2U4HEMVzA)O?V z^C)3NFOdh0GJ3|*yfn6c$$6?S8ueXLEh;dknMi@wPIMqZZ$(iR*W2Pgq2D@@n>m?R zC|M{ySw}IscQlUaAz5w7s#ccM#ZBV;rp00p+<{a1iL1VNsMVU{)+6@?K+W9hA=ya}ZVtXjze z;mL+&$vvLQgJa3PLRrIQ!j+|BCM#hM&Xx&BOa%z(Nc*wVtFbLM82EQ7(A6&`m-eOU zSv$;G-TFC#q*;gIS$m#2Zh7f#4>{sPz^Jg)#)oghg7LA6xk;ue#xwE#Ggfbcf?ked zJ2?aY9PnMFL*EU=^xWDdmO*iZm9NsX8;|_34KNnUh|Wqd9@8Pbt37)=#=p2&xBKt?I6$ys985C)e6$QHF%dM5T$Y2(PgCM5%;};p=!`v3A>nKi6$Vy(@ z=GDTw5@J0|l?-x>;kqz61mx(Gae2rgc-yk4jO=aE$I9FLmG* z3lVf3o}bukN?giwT)j%XB1+cKtADOl!AQ}JT7T47ThDBl{X{b|Wx+sQvTF3V7#3z2 z+9x#8!?WV5? zQ4xY85QM`JtU(CJl^7!R)P2x~-%y6kdMo;r(lyY-BWSi6Lz-X6iKX6&%u*ZyP$UeI z^8_6{ma~vI?#ISzD0E+rOT) zIg_i%L^hX>GuFrls*M)}c!4T)B0J0daxM_?9ns#q}FRyNI8|$r+=;*xd2+<-Jz3b>vqch4u$Mj$87uw3;BF?}T*L=w7ba46X#pGEpxoT?U5;Z;RXZG|E&%p3h| z&;9v!Ejxh?z|wM6eW9tkHko#c#0qM02{Fe31Qr};6f(L6s9#7R>Vhf4A`j`oqav7Q za0$)x1KLpOh0h0m=ZNtd@B{**lV9{wEW|Z#iL|u^8flKvUQp3*f7;JgIn2E=Jol}g z!D!@MGFpcfb4#$ZF9K5?#JJdtfW3tz`WInw9!SbCy3l}$_3XoPfrLOe`sNC0Nr|n7 z5i#P~hyMa0{@F206fy7_VcQN6U-`jUVk{G(?=4e`uzBefhReUP5x1=Ncix>hBIB)W zc)~v8>Vbos2y~?v1Ni=&DV&HSOYatX$0(6uK<-d=BQeo$@D6bVn&x_Xz97j^AJo^& zWJ*gw_9YUV1t9P_U23A7k!Ers3O!4dv^}H6yd!ZIqh7$jt<7i}yl#7&HGP0s`thW8 zbp@l8snbjOtpvqr_KY7W&M(CtQxuO13j{C@MKYYX!gxO_pEWa9iBw`gx>`FH2BN7# zq*s(U#FPUAX=($COG|g0SfdaYpTJWkV+i<(>x=xG5YcWCq_Q1ysMT2p3k~8( z%8-!)8)d_i?G;kK+2q14YF1Wtn}2oNXzAz$>Q#8sghOM5?-u$LM(q3C70T`dYXI&O z=<+h^E9z9@3r42zXpZUJRn-g*=xa$fPMH{d_Jh$JiUZIonws?<3CjucGB#T+F*%>L zv$eeq5XFq5*#eVqkRCdocWz1A^|O{KhfL0gZq7q|SAwGVRI9(q&Hxlg0UuEV>DJ$q zr6CsS(J$Kww9?hs02YJk7Goq97po@fi;;3Sf$|PO8Ay7CP8bCc-5S-XrUVnFG{kTGS?_x5jrrPwdJ6nOE!H`}lJ&>CY!L_Ps1W z3{5M)kB3NnwR3wj00Y(E6dnt^I1S6atCas%y<;SyMx%JI_2E4L_C*I{3~ELlA0Ow* z0^nxQkW-|~V$$+T40S>HM*SEj>A(DzwIgXN4PSkaW~;LeagfmkBD+7L zvL4{Q-PRNW&^|4AxoUF@x+p-47Ob?@K+wHq=)g#KeuH&B$xX*@t!w4UuQXEJ2 zKaNiG|2hU=eXH5^`{FMKW+)ej|3&ry{A0uN9R2G=P376y5e#2fHwOy9qkjmVwcynI zez>~`-(alRi2HE2Wz)bZl6FFqn|aMvx3WC6{Rfehyh|c=^`Yk{LYLFncyeqg{;$V} zC`sB=jBZ%LY`f3lR=V5`I=P`YS39S{KHmiqsAsw$T9~iS$zI^`_4n_&7CTR-JM*>h z>+s{&=EuwY*B9-wVs+~_lr$C54nJRVnL5Zo&|I$c3yacZY{4(4i%-L@vxgzKz4UE-5Rm zD6gulNcdmH7XIIi?f*|=J6EU9&o5p+-vQ4mfl5QOKE1CD~#wEhp`yL8q4NOzy+UVh`GOLNb2H#6!tiY z;7D(+5B0{KuApgXZ)N8eQm8Ui)ZdNZEp8@RcJ6EqPu@>vF|5@1U&XeWKsBOd1=XTD zh9j9y`)Gb|JXzK(B`cl#U^2)VKZn*=n)LL5goj zi{nD)k9DFLazTfk?jY6=-97?W2U7*)sp6dv*C&fMBi~L3)|B@~U1)2B@H%f!>v1I2 z(Xy{;Gso85_jCUFIA4c4R;r2CWEQ}0hZx7P1t0v0-tUjO{|ZDhA2AJF5F?=p#^Q(k z3c+KsHVegdJfsaF@e|yJkOhvKg}jTz+w3mKi~P4@t8XELE#w-PYTRG=`#*~9e!BI$P}Kkw z4Vj!Y0Pfg?$>hX$bwvmGn$)Kc+_UNX|E(en^jcd-1-~ml%#Y$1#u0m~PO4c*Ud3p` z$uBcD!AGJm}(;sG4OS9oNuPY;_Qu6WmZo{s*Qe4S#h8O3;}fH3m?h-tCpiq8Zy&1o*NM(7M;n|Tz}9Yza<5QbAcVIg zqkUTbvOB+x7jZLzxaZ+;@&u60|xju)}^4MapmaRy0R1L|Wm%FW9wgx^Y zl+_`=!Sgc!XikALT8MJ?O4~g`#Q=MF`=AE?kHERDVcPUDckW)k7m3VC>7l+KfwBHw zpY|Xew?1-s9wq=P4XJCsG)R&JkMM4mcYt>okXT5|T3ET1ZE@n7X5b?}Y2{!XxQuKWmGfDxOCy z7rfRcOJ&&%&LeducK)_A$+5>=zE*5ya{q*KZZ+XXkh@yocIlCU`jreiPWt^0t% zob?+LH3N^EIzD_JMt^JzKpJlyk|X1ej|H*1?NT0`0z~6;j+wi}NP%$!C&R zgnb%~a`=gACD9r5A$voOj3_D;Q1Y!?f4JXqbCvdkoa_gc={LRxioanIBpZfJAj6>55(42RbivV2MvDB_$CgM#@Styjkhk=#dG!k$&8Kfx5 zWJy4zt!V4>_jvdd1o*L*E`D(pYd`1N&(P-l$ND)f3N5~&{iZ4=a6aSOLMa9Z)kY#hI?(;>9n}@r78{* z1oEuL_XSl%xZ)SO;R^A9QAOz6 zZ`)YjY4k=Hl9=LP0Q?q;P7SIU%{WOqE~ih~mOxP(+}o*%BA}^_}m&axfIwd1mjl_Dm*l?bA8T9MuFRFODc3Wv6?4u9dw{vu{xji(>3eEdzz;=o)e|2Hy^#WkQlC@gBm{- zGkq3dP_TZgN5O@tFZ6fLL}g(6{(P|7b~4L76h%#=ss2~S5<$#(?(i)~3is>33MwjQ7ueRkGPh| zv)h7SORRJpLSvd!-&BI!AtNtpQUs+|$s;?IjI4WOZ5^oIj@-3Ayuo~mlbq5?GC5l| zTT_xO5K#;NHzZ8Xg!_x%@^vYHvro4#HpSdjd3T+dr3eHGsou6k=={=u<6xMwk!^_` zs)e1aS$Vk~#3b>X=FLAC;izr=za@VZuzSGpxT*)^XFY#=pyq1>csu5&H?uglGXK@K z!{n4N6TA9fPCB)C+fRnm|13KXWtnabV*g!RiH)w+i>*pR;cx#Sj*+h`JbC2kMQ>q@ z+^sCSxd+Xo-A3NOlasQye2YPSGdfK@YGSxw!QuPc=tnoK*gr1Tf5FE!ygE{S zkV&LUOzrJ?{ONe?Apr_I&8CQT+JW)zJ^rRTOP0X20JC{}3RDS)q5zsvWibu?;5=8} zZx&Ao7Jm^Wl_W@bw3%EN@pp*>d6~o|+=9^cf`kQmZTpl8&9U=#2(*aoQTDALCDerU z0$2nIa-@QBP)JOE2hU45fp@&ITZ8mknW#p5zPNpUeBD2IzWZS!82Ta~YOWXhz1bJX zO<39el@8RUZsfCGp_RMCTS+zk>LC`er*7&&2XWQBO)v_?VGe$0Q_G|00{OAL9QM=# z`TQy(kc3B-q9LV)q_lpx=5*o<6fY(w(XDmostbNJ4c2fLXmZDRtq(JKgjX_w;qyGx zxArVc5sfQcGtOT4n$@M*VOE zpPNQiXIetZG=I1R!_Ym3?Ilu4E5RbCf8#A~r+>g?T8vP=k0FU+I7w)nV0bKQ?DZk! z+&b1#P$f{ocmoGmNgRuB0gPviB}+gR=2yh`hZ|+>N8Y0f_oLEng~oo=w0Tm9d(ewb z5RAnPk0(NlyVJ83^awf@OsGoW;Kz+o55W336D`u`&a8)fDiN*B6w!$z$VO`6%^1Sa zmMAhCfQuW6)t4wG#PpC5(IFV4-A~Eg28siF3UEcH$R>6`Bb!Ier9G2hITgLOWXP;t zYp}Szb0Vp;KG=gEM9ia6hW*8cq`ws_d@F$t;Eax(YNVe^HXEaXY)Eq*PdOG(mLBi( zkm}nOAKYdItWSM9j8B!0k0nZ5i)ZI0G>Y)|g8@yri$nca+4e)({H-MU1t>6GBZAV? zBlI);j?#$r(+Y$X$E{PVJp~14!!eoQPUdZTHf3173b<`!DIk5Ot|R<>?aUgXtUf0X ziK7o-#VptuZdiJj8ZG`5DIpU{_6md5LK~>%A#0WN^=1Kg!YXW>G^dC#fsr9+zfF&> zC^~W`2-8D+oiwT~5ub@!DU~U>K89D`tANR} zmY+SJfgoIff0-=I?CI603cJtbaw*98UBHtb%+Z)6a4prZSTKH+7=D*18U9+a#olnv z*AIkPN;x7S79t)e1;*$0#KDdI1qo)Z3(ajm?mbvocoiR;+Gmy07dFXQDHf{F%F91u z+@Rr@?C3hR<982wW`-5*^I*$GyebIlfVB|X)O_}gQnruzoaNByh|(JY4joQ`>oAPS z2u;0#_sI{X6Z8r<`*(x!~+r-2Ic1}br=?$Tqh?Ll?g_o!>z8dh4JH@YRZ zW!|KDL?|uvJ}jWWSMV&M$BI)}1d=UyV!6BlR*u(^k8@&}=2<4AjeLCT&ev-v3#Os4 zEF;WB)3B}M2s2|8kzvsewNESk4k0HhhkAI_ZOJ;O+6ohh)Md3d)RNT+J-yNhXeaHp zkJ1Jm89aWeUqo^6C@Ve=7Q5LTSO%2is_zhDm(;u=tv;TS7Y?WlpCJ}*Bvh?K{xd9n zO;4z))CeytB){dc6_FaS0?L4aGPOYXXCBWKM6f)7PeRfN+#($Zl!gKkLYo9ElPT4a z4LOlDX^{27Enq_ie$MaNJ2m*u)<2Y548bicZwY-}a|cWtRGoPZ9-DQA8jB4DZ4sMa zJE*7czB>}bn@NMPyq0V!I^5)fJ8ZuIpN9cFPykOY;H_I@n_=)>LG6eW&M8qRHx$6z z3()Qbn(TND;;nN3~}s4U!l= zVv%*%;|hj(by4exLeL%xC_t(f5ait=@#ND0cJLam^CR->FKVTS0x04D*c5$FtjKY! zJwseUEc}Y0&{nCf-q(UG_eC!y6p&TH{OVGvS-9VRas71@Z<35UD2uE$(}yS8PZb9o zEOLPugb|W)$_J$}D%Vj3r(GKM2#fU4dk@wNXOwnys|^8PhC3;7`iVG)rZBpUOq-(T z;L?q&z+oMqL6K;?k&c>o07@JH1sIXSf0(EjadQ33Xou5rChm9zfR+s)gwxLzH$r*Q znPez6A&dh!!R4Rry1(uG+&N-xKintM89z>7v@$lD3v!GGxcw1D5IiV3 z0es4RhE5<{A>6emY&R)n1B7vGHW&#fK$ERcN}@H?&@|b;cKj5#ynRe+b#UvM4`l_Q z(b*$JgDfq9EX|4hXHfn`hXnVexf9~(*D_J%h1z>d!J8r-c`8YkO zwgvWKxK$zms@`GE$|)BmWGNct3;SVSn(jdy^OW_-4$@RP4P=Pu&|@Y5p%N%fGoxic zghDx@DF~r_!AP7SP%o0(6-~gbNL9)j1a!`SwC{6!BP;z1?1}xdDx_=}v$4gZ!|znl!RC>TcSzaaM)Acy4P$kr$A1bfdYpz#Ig+zIfRHkKO% z!;V5c`^=yyR>lXOq@Dm6m>PEm)UXSWewAy`9PFdAN91-w6m~LKn(WY_nV@;@^~oN` z@0bBz`H4~1OAne$8V!n`t$uJAOn<+YLO&%i$u*zZF-+8{Z9n`^2@WLNL^qn55;7eD zX3xqeOdhT(>oPSb{s!<~%us-bjzH^j>Oey%;O*q7$PD0SSE*g>gWNEHf6HXy1h=yT zzzZG0WtajAz}7e zQ*@^9%&`_IOl>uR)t!gD)(TR`M#{!er-F&Gh_$67UeF$AZU?*Vsq5g!AlN+FR>#kX*81sP;=)dWXFAzx1a;v^b+gO z8W--^z~1b{j>w$D^Ff?+u#c2M+qhiu?AoFCS(=N~mv@9?q*0a_t!)WguYLN%^gb9% zWDD_gXAchzvM5cr5fr^F8r|q(8lki2MbHr*WcThe)u$H6q^Fs?%y=> z7l9|ab>WMtH&wGI%x}%tzw$y`82CNdr$F=GIFA!OH@?3dy3rvqhb8`Vu&zRmP}SyGcXkK_-7T(pSNAm!P^7ql)I{-C1MhGMC7?O=BTRyxaT zUE<70IM%G{^PqpAqWyeZd-0cFxOG|8q?YQUfQ0t(4T-rp`Dpat^Va`Ou4ApuW1VqR zU-4pJNdxy`-7J460f9MyV5;@yt`37d^w|!8$V}%%wEb8PwrqG;r&Gy9$8gixbgo}x ztsjx}`H-yX^)p5151*rA26H~JPn9^cmE*8O)_y2evpnmmelGfP%+!7tV2Odbg323Z zN*@bzT3F)7k?Pt2)GSyC+;Ld{TIu=cdb`i5wp0IB$iySH=VH7JcT*8(|4Y}o{c-^xh%qzg#WFW?+U?D9F)<*Ai_2!30C4Sx zCBc0%0r#Zw69n56yDwAn*}N^k1eCfi@J=r%ekRJQmi&s)q2+%`Qgai`eW9|Ldh{Nq zs0G-^oX8vg)5j)p!#_amI&?hkl&-y=-eO*wIk*;f%b2=4HTf0d_j?`#RmV6eFxc40 zI3zsMKw5}`i-MbyPZkpN-@9WO5$QVO9O4m1DPd{4Ise%mtJW6dp^T@X6P3|13WP-T zq(S}4gg(+jXg?Zbvy2Z6?7Z#Ut_{EpkH!>>HAtE9Z@xoGC(_N9Frzer!ky@hT z6g(oyshf{aH4y&i9ErDoFR`KUzMu`A)mmDd|2Jd%pTyRJk3Kbu07*!}ax9Ksh*W*- z+x*AW_k3MRq&)M=nS5NE3+WA()9fO?{S+S)nN$lz@Q+Xrwtds#!Jrh)=y8fQLB-~sNtSx2vj#@1b4vuU*>bPhb95&WTRUF zIO0rZK4@|Z+kwQwX=Xtb1}nLt)NX=i5GozP{BTnA{2e;h|DXt%o(#KD|C87<(Gwe8 z^ag>1l6YjCk3j{h@ntk<*mOhJvdBg-6^${LUxzCy&hhbh1(FXq{X9rzD zmIqM5=Y&YD%OadaJ@8r_S(){ql%awCB(unjX`c-b>h^xb0La{u)4saQ99J_+Q%Ouj z*`m{_%gG6?0G2T@y%JmG)nWwaUl&ois3p#dZHKOQwL7%y2B!;Xj@~zXD zzH4s>*u)-61l#s;r+lgbStXq{kDFe+k7sa{)iwFyJ3_%ijA{L=sn7M!*rR~(04;o2 z|56tP)+d|BAt15MUMnZV&t}*jazJiO98{`lj5QCXCRVoU71TO12>QWdsu21Ly-$~r)3MnKyT21*DqZ*hc7N^}hwE#>P~ z(gj_Uh+2W~ZM>27B?C&%pP7MDEJS?L6=V!elZ96l6T;q!MQa-$P6BLDUIdR*kI*tLjrU5H`8<$k6m zET6I4b9YzPvghkr@1LtdfWq=bE%+RtSbK2s1tj|HM)~l3bw?Wi8YFpd;UOnu%ClwR zr1hI?ik+&X;LENAHuEM1ksVI6Z?pVDd=Y?9L-PF&BQOkowuDjYVjM*A|bK#)$t+Zi8$tz5KiO=_|nuooPYcbxG!v7HL*GW;wkAHP6h zh}i%)TwW`Wpzctb-BCSK``VnO&tvHB{xnL$CG5}A=rI4WDp4Xt63Z=4sDbjMdb$+h z!ICSJB!wzUY_G|wWh0#wjtqB@>+6g9p2_7IQzdTCf`KtyUYbH0_Q$`eiG>EZrA|#l zt3{v521Z$+7h`$)+kC&B3wTQuCv6Sp-;KlGHD)ENd^Wzy+yXHc8{80i2PnyTKhO*! z4FtV^ww0Jp$9)lQ2Hfyo(VX+>qGIUvJ5v138K{RN-EHLuQ5Ay2pCGgs9|O93FXHrS z&~$J;py`3doIz4qsBJUL0Z417s(=m!+>&&zrSPlQj&0dT&lEY{NBbhq=rZLt=Lkzq zdSd?p`fcG6O>I9_*{VPiwl;qBm0CI#9Q8pWzw1&;P6t9|JR`LtbPzqEBn5e|0Va+6 zTk=i`>-<_HF&J``W+1zRbu<|Z(2UQk)n9&)Ddl_ZBCtnB5&T(GCOM8*u<7htS=<*_ z7+M%)vvFEM?ujVT*B+Pt8ra4~pUMZz<3W+JJ*b2&CgT3%OLODnBSrKB{F z94p=Z;Tu?TylBd0LLz8q44%fC6$H=t*TA6`h7G;Uocl=>nno3UI|-~|LK39W9O*85$^2duA)aSNX_%Nf4s(oA=mm%NT|#NjseZq|+`v z_xOQ6%gkX$X*PG>GBvjJmRFSYKl+qRAAjohqWq}}9LqF)Lrl_#{pljiXl*W6@wT5t zoSE1QO2LiDA6vd*Q?7wF=C&7PD?S>4HM$@pg@?=?Sp`uM+0v5w?K~*>ll}mqrOnvd zjLIVVn9q@LGTW>eiK3SxUSh&h`$&CIICNy+@)8vTLNm;*p)mR_I9*YKwnp8rK5aU9 zp+~MtF!~Xn@KL`?$wsDb37I*CM;ZPf6`^2bW51zwwbFX?RYl-m<4i3G2>^PqX3|VD zxYb%kY!PwOF2)nGu$b_R=t(l1Gezoe0BR~ea{fce(m)~8@~ByE zux=w>TZSXJ}?Yl&-HelQ#bizrW!7w;DxX4K;Nqr&@;ve&YVrUfNA6 zI`zk-*jAEG+hh9B274>|HyNIp^?S9BPXu%P=Z@{2zbkH_jjP1*6#FGtygszdFy>HF zOOi*QCU4Tt&*l08N!3~Xk@Yjtkv_hdxX!3@WysWZHT6u;1tFiDrr!|Ojzg&BuQ&;` zk5V-pU0niYe1t1)-Kp!8Tyk-;nA~6h)wOBou$?k@&8Op|oATqg9HQIAUvGvPb1q}u zebxv$JX1CQ;S;L5wF*r=Or2Yl!OD=gvM6@A1kwi!<+Y3zMjDkc#r@FaX4ggp#=ldA zNm$f>#v~WClm!ENW&QXP-Dzswc`p$8;sT#JHI{jGUs{4hTkSJaJ;h#8gi&;ZT0ks~ z7a9uR@04J%o3}UxfWa2Dn!LAZC~V+GfQ1y}y_4ZyAllR0GD(TY~U* zeJRAq!|5FnpMeAbbmuQH$C@D#M%9O5tLNmvq|MlDvGnG3`4$p0BrQZ`2?vCP_I1-+65Y9>LnZFXAOdMe;iF_#Q;^Z!&+UE)s z3@~!#(s?DhkvyP+qM`UCRJFk4riib1ktSw9GXW}gTFwP0&%zZTNWnN{J5uE?YX9oT zSyGhr-scu3Y7zzGUR-=f0V8rP_RRv|sI@0~GY&@_BI2P7mn6=I+VG-7QzF5b;`{J( zrr1A%5!aB|tJc^%h3E%`ZyyxQk_6*K1(8W`yl$4f$M5K@+;qOo%gfaQvgtzCYw0fE zp<9uJ&(&)wymK&Liu<`7HZk(<4YT|p2_Hs)fL)_mfD9vyI6-wOj>gmL0u1E4VC3}= z;IZ{sD?(n<0 z;HVs{*OsUDPBk@8dQu2fiw4 zL$v8DiqOV`sBc!3o-tGmB%$#&Z4S}g1+erYph;w6Ly;>$I(TTf&CPsj3 zJvv0ocaA@rp(@ zh(#-peYuatdek>Z^Y0~be{Id3dgi^JA~JF!J~e#mUr9m0lMn?1NVbp;S0d42`tTBQ zjpbXl98P(s z`kAL~Nch6s88&Hh25DKZ)2u+UohGQ9Evuk)5%wDN*#pY&RrE=?_%jS@7g0>|EyMac z_gjY98zD4N@JGp2dH##SGyP03Oc?#a7q{&_#a3o@tvfpyz{{Dx#mq|~1hFiJ`-)g8 zOay0RktQ-6A?7UukTtTF`V&4JdCP@6pnH@hM7;BqR}Uf)O3+slpD|-^i?icK<+wob zTPq=s&?|ZL{ce@5sLw0gj;rgGYs9Bgvs~_yQ3-?L-nOWC5sBZ+r;ZC(IS}ND(G)Jx zWU3w)zUf7H14VK?LZ=oEz+Pc}UEQPJau;TP4{wQ_JO0$*nMZ++17UXC;k6ci1TS-< zV>{(xn{qva?IhYGdjl&w0t*$1Ep%pT$Y2Ph?N!)uDR4Axl7p*RU227<~Y3*f@Dd zRG`fuaIz+FXavuAsw}Q1q}s)du!V5AzI&K%Vj{J$V`lfF5%^IE%9+X=mN8A9(TMMbcbpb0G=_;_2+;Idr z4qf4TuUrG(eR+HEDn5872Ln6^;v7cfM9lY2YcTBSFt6(tN zwP-~06zRFxRDT=|1S(hU+L;CUj0!XWrkRnV<{LGd;Pr1da!d#tOiA8_uo#}d3u%&O z6t5}g^nB|2Sutsr zgf>tb(Q6IJiEKR;LWp?%!rukE8Gt$ed}-pYUzI88cGeXufS(^bpC)qN%;eR|wnv6f zZW8mf=7(@jblzn6xV0Ygdv z6LcJ$BILatgv4x1}M^j)QdDAIc^`jHILVJ3BLmls5673fiuIK6m%FTf{ z3mkNtOUBI3X@IEbjN;A(CgrhE&W4b7c+>pC*e}H~e&~{N^xA40okAvTXAjn++=Mr? z*hs1ZjT)cYS|#Wkugo&XxoSG2)Ftq#U;(2JO_<$quE^}pwdJFoF%B%w>Ma{@KgqWs zd$rJo&5Li&^I>*VV(m~*wd^Xl;(V$AUF77iwgyQMEBUnX8oOmUO;;-QG0x1$J|kqZ zcF-vJ(dBfNb+qFP550=$5hBBqovy9Mvy?Hj;D=p_zK%&jQgUP1N28#Xo@6&<@m@aw)p9c=B21= z*!t_sEw*ms!hco-MvMH*w$i=8es&PC_daOswik^0A+({=)O|v3R%NOGX(SDwjyB+e z;^cLqjW|*Q3|&$sYhu}AkEmPwH8@mt=8vJ#-;jMq7Qy;LTiaGe@5siM*i0^kGlEU< z;X^=;ag2zZ6@5UIh8gVSuj&_9)t^^>=Wir|ksG76olTOP=N&kq!QBZN|A(l%;EJPR zn*a?AgS&fhclY2<7~BcY;4Z=4A-KyB+}&-01b4RtcL)TRgys3(-LpTU&*`qN`zq6) zyjNp#6Du9#(`l?o3L?ut*m+Yiu6~#Q{I&HvdOQEck?wUZ6{e0iQFNQSp1+BczR^Pj zTRSREV`T*nWp?P#BgKu3=9H)XlpDp{5k=sQ=*6MPuR{Pod~gV$&ukamzBfLaL55|Y zdvQa=jl}D;Tf9Bf+6nVZ*p-jr!rG}=Fm@K>*lU7fZ6^Lp$`Y zljBwMn%6@Y~vFWza}N8q^6~3Wd1L)EhvN(eJd_W2`@LUsH&`~ z4lix^|2npvU0=0CNy+$RDkAD@h9ZZ@Mkhw5e$0%C3zKt84tKA{8%-FBa*^@Mj!*B+ zPHY?>?oZYlYw-#}H`Z>y8i`%=NLOqe{4@Rw(}dDd2kCVB1;)zOt&c;eK^Jn};Z}`I zGCSq|$I~%qlum&hBU7V&KHO?N3|Uneaa zwE@Xu;nK;zwcLUy`^lBBvO_ z6I!yyKgOhVcx_@U329SG0HP?X{)E`mIn64$Fw|1E0M9`(0ScxY&j3Ed^gHw>bc`{GQuMrzZ`DlB3QVxk^KCQ@q zv}6`8M;Vr_s;E;st#0_id=@7IYScs2H@#m9ivuf6y0m-opV3zyG=ve~y0m*3BuBgJD zVCPfun>D$A5aE7{$RuCnoJsf)7Oyr!NL-aXCRiNL$bu9ScEQdOE736NpphR-z;{(&TEEf0}=OiSDisdVTo)CiZp!p#1mDAo2G7cMy{3_7>U?Xjth*2v)o)dleLL5MYZS zl9bcaKwB#Fr6DXHxigd=i(tT_~Ob}T|l zC|F$x@!_;aoKhxOH;;m4eudKi_RYWyyys)*ZYZgX!2m( zxLpt5qY7HSE1`}^R51uKg=xRi?>oa}fZvY`aN z-v{{2oI0)amE9KWNV-_w_=4(&DH+P8fXx0iE-X}f=-#HiTcmsoJ(XsB6=3wAR0DgX zs*&lw&Jn8GMOM&PVl$uN>NEZ3Vx=`(3=~4fk{dmm_73*)4}-)~eq=GQ6pMCTotxD< z51L3fkBb4J4I$_z4V@D|d8_HE>1k+R7UoYqo67z=7^wTLFZ$lMLL6%yT8CAv>u%dR zBD4kiXj|E^%y^OqAd8!xyewQ7AeZ?Rd^js0h5xqlWcTqMvpG7lFq63m%_3r$;L!e0 zq}=;7%EBzf2nkzvb-1D;w3TX;yKmlI0XUMP?r+$@YUEm^-0bhN9hC4?5)QH2cq3mV zkAKFKg<(DAgkS_V5|0G#EA!4Cu+x2M)p~@M1l&r_x=p-yYz1*@<}Ge7vqrFk9)}pM zvDGWXda19VfEj8`%ofVTl9u1t>d6N#L+&iZv%x62cv04)3;Hc=(_$G@)piLkKv%{# zK@pcdM^5>@UrfYpUCr7aaq*~HDOL3lcoaN3$xAYF)J7YUm!#1!E`>xm;5N@qb^1*7rQ=P+fAst9!!u!ue)eRbpZo?Aw ztD`d?H`y&-9FLTJhlRPJ>BX3`8Ser`yzO5=;84j!necTOh661Sw0WIf+4Ai?1KUxv zj zNGFO#vL5ZK?k3MCa{C5+?f54@^KJ9Y=1q8gtj{a2d+XfcEgnKTdfBzHh5OLKmo|I0 zVeO3uoh3k85M0Il=I@G_8#972AJa-RcfRq#&pewe`q0=pv)4cc&ozJ(fcXfTVcwU* zDvAF7$9z8`>-S~Oq9NZmU9G63ud+e&K!Th0ZSUV-MPt1%biag<2?R$a?USy{^DYagrU5XsirU)TX`H z$AB=5s68^wnh5O2Zs-!OZyc`zan z9klKO;1=C5;Vg4s4b>2DUIVCK<{pDwvuea2`^9^3Dg(S>lAo>&k`@T?RH}|8Bea0U z#N7bkm$2<6a5PTi!qM7VnKHUIfNw1)BN&z##^Y?Yq)b2%V%i4PZ+Sniq+!7LrhEWn z75cOg`)kkYJUZ!{kByOh(wbf@DpM>@c03R{8UIT%ZuUn3FlXLla#R^`WJHvt#9ngX z^FMq{a$LSavy{J3;3o@zGcdLmXVitc+0s4gDxLf>6sXBb5hM?o_Te4#2bTF_FBy%Dm`YK`w3z||*v6ERp0CfA2kV^%RVq@j20i=+y&Z^9t)f6&> z=wYoW5K9EbG+1Lr!RBN84Z0=e>mjiVs(@y56SE6W^*IGs3y_-&uCi5b@WOlBL87L< zHCOh>P02g*sU?8WzVwo7RQ@86daV#`I09CZ%TW&=xh(^f z`sRXRz;BII)U%=_q!peW%0=L7TEp+*tCuOaR+I^YdwBSbO-hL1*84FO`vfao1~)C` zM{o+lr%Zrs7o(%B1R%P-$nOO0jT;lA5;rtkMUA9TL%6i}Ps}wz>>qkf65C|#u_U6C zQc~hFqnzYtK*EC?Y*w~QxD~L~_xqxT(~9uddQ~J8{z}VhSRQE!?jkqL7~TfKxQza7ROrZDZ5dI%-E%#`RQ9XrkrfXj$y zi0e&V{23s>Y|wnx84&j+>z7TlXm!r9O`M1eS+yH*7Mwk*i2hS3r(q#38iifo-CspnIkZ^F4af12&S>y`+dKS)LG$KNwB+91ilG(ljp`O{&>@mb-1FPs% zK1C}Xd)+fSPXIvQqV$4C$2b?1diLO z^JD79f2rhXGMk3aiZSfti7q`xjSVEJJwvU%w6B>Y=|3l}DRk$UTupe;BRUn~pBYq& z*UmM2fWt%RzcJK3eGUn0bx8@qNR);*m~8_a$bQj*PWi?n{`v6Z{w+j^GyB)7MgknU z)>T}RY{;Lz(i_cB@My_N#33kx6{g8q`ofrlJJ46%_I{=Bf4T_+;|9HPOGRJ%b}X2f zM29Yvhi*}aS)vZJrXOD zs@>CPre;I>Bu-CHh5pSSSa6Gu1|wP@wT9Y(oZMx21_@XRu`%*tb+j z%Y=3~%qu#;8#eO(7?hCVViE!wv1CStCHq3Gd(=0_g3FqtE3;@1$4VwSlb9-Kl}UW6 z+Lw`R;-NO&FA~+ZacpQ}UIs$iSn$onIk0{qK_0rxD@ePXZ`Q1N&^oEOCgEH{%CtHo zTyMS%f1wF%L5unr3*+Dk)fJ0`bZhLELG~uk(M2|X7@mBC@xyqPPp<_>J=4u@yf@G2 zf#&tUzohE%WU`El#tGQ!gwpRq$Qu5)jlb{kKMkXzI#`qJg8Xb>*X4zXZG zZ7NWK>ZLnJK!TaVFf;Wp*f0LFYn*=ml}NZ;@c)*S1`cKfZX)5BWeKjUzM*!(50-#( z$BZFu!L%9YJqu)qPP!^dHFZ36<(qBqZa55vbq zipHjCHz5H(+t!#jqq1m!WF7zgS&ZWj3eGbg&R*q#$7ImvLtKcN1@KMb+-gp{w+y%$ zY{xZLHrgzKn^*F%Mly**s8RGqO#?SIICkCM3S3(ToV&hvD&!Z&fILxtq8D$cGj9Em z*}cl&K%WUdl3nZGk>a!+jYI2Z>6(M8PYb4Q7K})*%s~4beDLU3iqhHP2EcZ3t|50u@3OD5O;M z*D+p3!Ku;vF~wHjjO15Rj2$BTV3nG;V_NRDut1v%_H#q3uo0)lu*CDux|5l{(zhLaSVBp)2Z5s(g*MpG`|EhdQ&M<5MBrdOG|8;B6 zCp#Qh4m49a`m1u71v4FRTRYj7L3V}SpA?xs+3q3p^OyhfG1}ZJ#q~Pj_<4f7ki8X7 z;k9TH1L!I*1Ya-vP$y+umcGCp<4ykiWO*j#2srGdnKG2-{lMGhkB7%N50+jJYn%Yv zwzb6($L`b&JRWcTwG0Pyet@rR;qBd3Q9Fz0#n14T5v+qHBu}?XciM&BT-k5-hp!H1 z|1fB*Dfq2KQE#;F2VQ@*VEx8~f2;3X`V89F3;VMdG<3x#g~Z{vi&cN?%Rw(L=6u3( zJWFvtN%1%#ei6oT5n4!@?mK8qX%PPvP5SfWCF;|Fl30uQZR7{Tev}CY0aDDECtlAJ z5X;l5o(d6%C}8va`eik$kU*{Iyz0Y65|?Pa+H+&!V~6ugc+gANNB*Tx-hLlmyRRIL zK3}@<{*ISuKDs|B1)af3$BeghcS05@5O_Xbtq0TIq$52uzTFMH{cQ_wz7YFYj`{D9 zg9gT+H3|CcZn@J4bM>l`17iSeeQu{yLz(_+xLL^m}) z)4a}R>zUk-?tjQmQyD?UQgO^;UA#;S<)4bZY=!V`mLR&x){b5HcDj{Xg9i9<>CDtk z2KH@(+jS#y*^6YVQWNQQy4|KD>$k86scUX-ggbwg-WA(yhPYdBW{6xQMbz5_N*`*> zZ~flX$A8**`u0a%Sz?C0Dx-hqX42@Y33_u_YTO})<<_;@x#vCYs8NZkxdK!hy*4id zpUAvj_6Cy)SMo_){~S$zl~)rF=)5_dt+)T>nBNUD+;)!m71{Vd#`b7r7)fMg(!qx} zydkphuIK!QB>FQ>rk7|(5-bli$wrYMp=#G8==-BPr32cZCexrb89l5}g8vv>GB3t> zIZ7|wZ}J!E3e?dQW&dMr$Ab9a1tEs+d?}E)4487%&mpzPCJ1osngCz?!+E5{)H{tq zYXyxIweVNIF{R{i#s5=mJ12a0J#FJMOe2{NvkC>lqbzUdtb0;Cn=Qms0#R8Olv2@~ zdUFW^^MIXP|3sdd!iDonbAEQ#g-_Uhlr88|Na!-bTWLeY&&k>>NCGSNrUAAom1YeTxuFU3woLkrZ>)B4`^W5D8S!B$4jxqR^y}Q2eH~%Z?ATkH*b^R5IK+*TsXJwaR zV$Ji$x`{tT=Ofn{{+uI3<)Yl9jP(v~Bdn?ZO_Oh&{h~yfg5FyWnD<(DJ$&vl`R#wu4*RdV(ggQyQvHp2VV?@I#mGx6XEdj1NSCspwt$P~{E zOuO&d4|DbC;q!391k;Bfe5sSnIprYkj+u!t>{w(Zbu)c9yg zJC$u%Ow(X&+Z_Oc#5FL`K7uU;jEZ2{-~`Tr!Vyu*@d%rGHWd$}9*)8w_6$(Kr2+8< z9)sa$lVKxEET}6HQERh*M{9N?;W=@Zzka_?ITVRv&FhdM^e~GH3I}d&A{8JWPe;Z1 z3`>bxjTyvW<1-8HQ(frF$xv`7w`sl6zJH>LP(N?OJ}a!Fp88Cf&#ME~x@oZ(hLar8 zF4YgdQ)41y57-*qqkY7z?%>rZ>}SJT{C1j7#b zbUUu|7+!=NA#2|yGjncxJm;Z2X}MsMMqk56$y5-Re}khD--a&}`FvSnBfPlu8~z42 z{6UF(RGfJc7FiUwH~K*l0ql}VaA&Qw5R>)qqz=WbWKYzpD=B@wB@BvdD|({`T*u}m zWrq2M8p)`71^V-dT3HDgqug zH=ECEPwUHC7Hx;O)$b^R;aXQ)d+U~?)0dZxU8N<#2|Ppocg9wu=DLW8w*u!czibt- zt*aHfcWfk~Y{P3F7obQjX+f;tC%R4c@xTftdNqRf8&~&r@CE||*5~VR?E3ixR+F{3 zacxoTT36c&9{-1rt#_9V=mEo¬+eV66oqLxH}H52MSXlkQRacJ)NPf026C^T2K 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

    &~BGpLXSL)Fs`w#-pNo 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 z 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%0AnVV6J{IbN=Qsf3;K7 zjGv9#dieyD1>ZW!OPXf$IvZRb7uB-eE$I>nc~thq^wiu)~xs*EPZ2x&aToBN(>Z`g4x@q42Py zOcu8dS*!Z5X?VxEFWfejOX^2U!T`Li+m`lj{dhCpNola#wh>3e{smB&^Y`14fFhf``Hci959yy0*&A1@<}i7N(_*DHhx2_ z`zQAd@%zhMEpfRN?4)ghKE;rMB#=g0p5g{}D zTvlV}P&6~)#$5il*mK;Q&Hpa;eDNyl)34a`-vk=0%xZ#vnCJgdpz&|!dFA-O&E;W^ zz5h9=!iSist5bqsky6|-^B$vgmyD+39mV?0`@CIUGS(jv(J-8>Kj!k^1`TQ1e1Lgw zOh^CVm$^KIzSOp>NB833zhIt!nquIRKKFSIn9GT-?%mG}?6Y)!>^pOHACroq-xiDR zC-Yn{r_b&u^L%Yn_rXivbYco+K2ssUTz)RT9zD99BZ@)UY)@3_hY13q;B`xRKZ@}` zbzQ$p&-|YXG?D~@qK-0|%u<^$)=&|Hb9*_v*1I+~P&rL6?n z+9Z;ieff>{CfwN|vjd3!RD5n$_WVUwBr77Ayc329Q_~t^A~-WyG*A&2n~}4_z-3 zD34)ae^1I?Rn%e|uZ6lUF>dkI;<-5z-1{iWyIi6(O7V3B(&_=EYE3+uM~5otc=Ic@ z!^V#7+XZBtT2GAgs$>^JT4nY#ST&Dm0D>@o&x=x-4~1Q-bbT%e_mJml((D~nvLKo{ zqHk(#RE@#57`{uy?!#?tKyeeOq>(C$Q(;d ztzmlQR*oLX5`bf*)=g6Q)CYq$MFWY2lbAfJ18?PDpbCD~CM=O2=l6D>s)`*x&?`Lq+}SvGOBY{% zt1NRA%P!lF85wak4>1gC@P1YOz;+64SM%dU|8+Fs)TH+-e3a>XVxg7NgltSeXhdjT zET*CWG zftp#iA>^30C|l=WZ?JpNhgfNZaCZyA`Pz4Vl5h;ibKGc)Vhg{(YMi_yavwW+F|L}x`uFAaiNPQT$<_a9#M2~H)oU{@pH_IxsG zy1!)ctm!3zRfxBtvNx0pWlgU{F>YOsY-p2b8xFaAu$*dt&-itbS-8yHEB*d52Kp`gZZc@C>dhmhW6-nr#E(KJd3 z@AAjpR6^0`-dM>($0P4fY0L(_wcAq7s~seLe1i3B=kL0FW3$orC=p^w;feBQ{B#gM zAGG`!aXuLS>1ZYYUG1vwMcX^!6K@RGPAf!tY|_=~yHm(OSeny4(qfvh7vSBr=69bw zeq8!vI8X(6TvuwcE2uwgU+QI~$LW?fnU~boIloARmDI``Wo|a}~ zo)RcZn`&MMaIG0HPf|V#!X>rKZ2UA-18P1la!#<2!aGJjK~Y99?>O|cH>HZ5$0M*N zojt<4?VFcmt0(`NwV>$uPz#meF({nk4>-^%}2rSp_nm1evq5+17goi`aaGR zPk`hz(viQXy0{%*fS+T)_QCsr0KD6xv=3_nV2j=>G=VYJFZIDBF$tLA;J}oLz|;iR zw+>)!a!hCfb=Fy+WmI6UBX?+RP)P<#@x-HyPRw}n;J)EEyAkhujf2xG0F+5kBbeut zgI-I(6HZd^_K7D7G}=F^`K!)c26Dj_2_c~wXd|86gJb4H6UyTgp>t=U3qb5y9q|gA zGi=o{Osh;`B>-6o$$z~}VVyi&ER(U1lqa7lJeD)`m%02`?)gci0`kw?v+lPr@T8z= zZ3JE-?!{Sz&AV_MZd4+tNb)CllH#%9j$BlUk(s5TG!*yfoWH=K;^y8%K903K zP>WYpLhaA8^M=Q{V%{}cjZ1HdfkeLa*1#|2Lx9^?;@gWb8KzrIpiMR#vmb4Dq7<@3W0h+1;N}L1iQbFfahxrAF?iRVShMF#MYuYW% z+d2y<`d`S%-TiIV$KOja2H9%TT&)0X51P?-FPk8u_=B7c&+Lo^6jZ*C zK7;ALbTC*cO-z1nF@Z_2Jvoh{N|!XQ1394zNq(7iu9$Qn9y%epErI;~yacSf8JPGi zd-zaiaPdWczu2oWX-pYWQVi34y0ZM*DSSNf2yak$AYqUP23ZJy;T1tju!1fW;$%um z-nR+HT`1hODUfL?5_y0loEn`b zWiYr2HOxqfQjg~?oeH^Cim?Tv9{k*1n{pGEy#e-^8O#BJ32RjjeY9RuDWG@3e7llm zE@AM|j;!rIoIMaNx$&X!agDkbz<-*aZ3d)JK8ctr- zF8bna=P5V$;8ebCq*KgYH>oz40hhLW%~_jDYJr`wn_#Ufc@3D1q@U(q+-`qMJgfDI zWVm=SLTRAjlMkI5*IV%N3#Ul_qOCpEW9;V9{ZB#V=~vT_bU+_2FKJhtywSGr2x(fC zB;O8QseH*2gL#{bZ&lN~;5O1&1}#~O=xTGuLQ647DH64)C6d7!BX1_0^pKu842<>YseKp4j+lpyTLDn_7`W^2^D?(~gA0TOOVt^<_jj)HmsI;Ly_sk02 zGOVz3brp0S1a-8FW}2}846;(J6bbuP$MnAIiD=Q;LrxdOE%0yW zR;tae>Zd$b)fja;YVT?!puL`~Ab#3eU)p3A^7z$TyToxrVgsEGRoK++oYCxbdS<)T z83(gy4Utk;O5}iL&_0*TvC7SA@@5I z5QBUNF@zCz@3`MAgRc;lDzAad%!E(t*V+~Jp|h+nYAV^WT`@XLn5VJPzO~;avCSs2 zqhO{ek891H6%~9Fn5_;QN%rusSQ)`K(kM-Ncx)Z`y@UZV1}R z#|F;r7@Vbvuk6s~UeKtrnBgXZNRK-knvc8On$Ma=S{r*s_@E>=ibmpTK9(=*jozljRkS#{-XUv~O zI}j@6o<%$Q!9@IM0XKD#uWjN~U`ShGv5;VaGL^p6kT^h!|N5Nvd_krt1RVd4Y*jbb#h93SC^|2lP7 z&ubU-l6g{i4}Cxt;l7s_wTESOzhLf$c}~PZjw7;frMOS(!HAr;f7@e)>LmsF{0;N` zoBH0pmkEq%2h7a}dmRVt_~Mt>2aiM!x%3WsJP!Gq%|WFLPv#HtM|XvrnP{nxp6ea4 z**Hj~9mzBwvG4E8mRP)`K2{VtRt^V0(>qq*m6T6Ac1HC~>OGDtJytO|fDACI>7AI( zi^J&>UeBL2KX&$L*$LV!H`+b1_uw-ZdFxO@$NlLv#{dZ=`rTdR>?>-Lj|T!kV4Zy# zJPk^FAnkBMHH73ee-@*69_Ml16?C4|e4a9Yo{Bh!QD3BsTx9B9WCPmrw2O(hMSyv3 zsytpyeOWGYS($b}Q1h}j?S^@N5Md24&yg_C;T-sdB3I9COD>DZW=(&a%cs$P{0s9O zFqh9Eek=gYb86mJk?S6XE0dP9)#htz)@HE%z_*<|qmag|1kU)>2_1#Tn#NQKLh zU3+Z2k+6GRNn6?p0_%XhCA<|Vcn|>SLfiZQN}SyGx&2E=XIG!z>#u3aL;521_tTcAx?%Ky(}-#KE7 zngu_Wo!aHNxBm~uzJ)y~0PSKwn$dh4af7>HJ?J!M69sS=IfVz^$L>72eo+h^#e}D17Dq$ju%M%1S>EqQU;CNAgKosh0PVt5=Y^K0!}sHH zh(FuOgi(B7@UTfv(aDtgU$l$&N`Cgg#L2E(>SFVr80=>YKBj^176TZC`xgsmiU8V$ z)wegxF=}|k8F8j_45_wV3e$K=zi1cNu>=j)7Qgw#j!t-&+rZdYU~VU3#7p7%{LbZW z+XO10x@=x@-0x((QC+Hi7CRjL*7NLWL~Wo8eay5(Xp6^c_s8jizh02)QarT~p~8_R z;`(Cy7w&=sadkBQ58MTiJObgsK>sREj!@~?^4)|IwqX1ncd_T4kw62M{2T3psSs<< z-zHKaO%R>#De2VSjX2p_8=zf4U-*3l8Spu-x6uU!(lQaI62^D_@+KEj<77y+caM|? z-FTC0I@{TWBLj4CGRQlmBt~XnA!f3_y~%{)YN%3L@Ut)cVfilhzsA04gJpm5i4`}) zcLSibWKMYx9vwsmAd}G1-i&<@qN-`A@AG2jG9ST}!V>N=N}l6IAt1)W66?rhx)I%W zy^%4cF`WFt93tF{=Xw1HH9=T$uT74u6V_BoM^;D~cxpZ~}itV{=zXYW1Ou zXPt>A@e5Tx2K+aJ-p0Cz$?}h$k_an!<5)+tEyyy)h%!Wd8l*uP8Oh>bOQa76!IF-8 z*P&(i_bCBP@f%~!Cx)$x(?5A8xZkfbW_7wtlYU9%-w z^#^EnrbjmoBEdx zUQ8!KV1VjU`pvt)XcyMULluiZX&1$|@jd?y?V@Rt&9S2=2;(ZGah=Vti^gv5sQ$F6 z{Vj*<+KXSbi$1G`Td?`-3pHyItz8cc*@fS<3jx%>(Jo{cv9ti%1){(7kLr@9zu58F zjq36Yz+KqLNER-U{>ELH%6>yBul>T;52!AC4HrJcI=S^zq@Fg(z#jAvo2pB)kf(-63bN!-SB(-t50kjJpvU5d%c3}yT*vOicrI#K` z#jA3!XWdjxc4i_M;MPjZds7)zKgx|}S8Rm4r8#{uR@)DZefzd_fub55ueucA6C3<2 zs#TZA_idX9Tmn6{>Y&OTx$keZfTCJ|b#+bOcT1Pc>4h8I1yEE=zMNT?uc;sJ+p%xB zoZSnn`H8!jzMMPjulaP^x9fg+IS<0Gg=5I?L8-15z%OfC$@=&F1g;hd!fQV>%I^nh zT`iFh)PCXZ-w$)S`bL9a2dFL&qLQzcnO@d)tMvn_%c~X6@VZ{pxf0QTA5Z^Rh5DM} z*#^hM&DoxslKEy&6zsdQfxHT*e{^?$Zb`F%VMEL8qwowD*r$(=X{`fHtHsMQEyxqco`JDR-LPyMOn z_C#l1k21r1v;HyQK0xKtB<%){rzM#GTBrO^j;G(os?OwZ6*r!2Zk53Qb)E80O74Fj zPye4$x&B?K|68H{*YWg0R6_61rGG!1TF?P`Ilp_!}mOx$`jf>?rB=L86%RlxNx3*s|_{GPG36fkJx5e`JyBIs&y(KF`z&lzK}o( z6mU%aTKuin_xpqRd!p&YRbC{;%mmcS+(j-~)1nVHp_J-kCE94pfU(>{4W8&}4aMd*V`WFOR`rIBVgXn)To_36YwCA2id-+L73YXH`xXpD zrNxZ1sKOF5C?T@_t>!?!+G2NTDTWQBrpT6dJj3_{|2zx3pH!~+yU%pKC{-2Uue<-E za<#X7&C^|}-)bVaNqno;Ku}ev&1vO2Z9F5U?1e4a-lJuw<@=+xC+iklF7Bpg{9RGn z8fuzSgx9Rf7^Q-8u9LLIjqPD}&aQQ>+Y=iLX}^i9RzD@v(KK;!)1)y@}$gVKoP`Ucc<7#?W z*#CK*V&rWVI0URyf}i(EO6LPquC?Zn(+AYoXii(Mygv>Soy4yJDi?0NfT78N4_sho;ckCU1#r}yRG3eS8S{7}Jo{k(;#$Co73~#d(YEo3bj+30QAUI&VBRqHi?QTdzW=h9RMw?G5`{<$=H4 zIn%)V3{effB$J(EMSlac4)-p?!kgz5d!dU%57(~XhLrUbRVquJ`er767c&(~!AT;D z#}K-%W|aSQNU74uruN+nmrL6>XL@O<j z6H=S1H4$E)DF-jRT7TqDwZX0NY2BKpX9g{wRxY;(DJ>C-*mI_6VIA)!-=bCIPZj#l zCl1d?j!#@aUepd3>_Nr}Z^XIFGB0?1Y{@cG({IPX+L&A z;H3B)k{EBY*3990Ua3D`IJLHS-Z;(vC$$elS@IXl)1AA0i%+dT=+UoB=A4f(%IzIK zJYQEA0hHWACv74R8|J;UOLShYc9l>(t3k=>8Q>rr0{~r#dUtqCs%rE^5f_qSC!XyF z1Zy7Dhi;43))dB`@F5S>GYSb&rGp&2DRBj=Q>1f0OW|=(@^^2}PdrZt)v>c&B67U$ zM!!YNa^bXdK8SeVKJIp}^I<#bE9f3FR}J0^Za1z`gn<)}dwYu~M*@Y4f+dIsi5sFW zQu~C*)9O0QQ?ip+fyRzB!3ufYCkaKVUefo&p=X-Eul9tm?wPDMnyht)x89ACo7BkB z?@g_r`GlXP83&0d`1zh+82wF|{e36jZ5rZt3I6&<{_f-fP=Ly%eseq>kPwi)>>Xsr zBRdfgK^_>D`&{1<9L{%Bs83pd`Z@cx4-A@|%i~KHWd97+^H?$eKKQ9rkU6n86r$gb z0XppndaZ=kfd1;x&#sb>XFtY=ph|(uKCq#ai}cGIA&8GUcZk_zh;*D^w>ozugF?)x z?Z6qgwq2+rci%#JZ(lb4HW8^)o+fc*Uu;_5^g*SL#6&Z2|{1LU}6*e#Bz~y zf9u5AO9v}Y^iekk8 z_T-B*daVX;M>A$X^`VJ-6Zoj&SmP^q{Cp(J|6=bg7M_9`qX~*KKs=B|9ohEklWqY3a?To^|&B|a0#*)4m5Q^#@gm6ekX zR6jwKlq#ae66uawERUKvDR!KxTV9^BoB*YvlZvLgGhZ<_KL~(?rUtKeVi!>JakAd0 zx6%@zM0V4zK+Oy0L^`F8#D!@3Qfoy>=oy^mPte%Ix!uXUi%X5^U1waQghCXe8 zH_1fYanHyLwAM*pueE2~F;NhK6u8o;S54X%EtddF$nyUPP5dz~rgtE4%H9rQ3*xEvx4764?dW{ZFfu>8rRxD5xaW1KX1xSYpSl z=PzgK?SHD`38BhPGW&+=JsqjC&XoKqGVkFaHBkvcphU4em^x}xcc~bhsZ!}!P^b}T z@R}j7+62U{RkQLAm9;VZ@z)x^NY&e3)*ADemU%f&{MM#|)CO_2_A+3#fgDRg9KVEG z7cFW>E7yZ0RS_|*muzsHmWI**!TPgz`4%d!k|a2BlCHKzYT9gAhRj7$Jb4Vb3e#?b`cl2z%?VvTj;WJF7ty3~e>sRATtG~zWxQAp`*)sI(H1EQni0R6QX zwCPHH*w;3yJfw9rpNj^Gd;nw$Pc*|8AUnp!(G7m40e`wm|(J8bg4rscd;AA5io(n)^z zFp`>Gsa(?eiw~9RLUt+QTYWAD8uk(tl4C#!dH1YBLoGw&$ENOH>V~+Q{!|5&#%c9d zvci65wbFByOsCe?$ev;k?Li(*22_eb8fX>jP`ka&V3V4L^k5uyWxrTXH*a1LIhn9Y z|4@`#Z3^6Fyi`_F$g-Ku+I$Tt&*{E4beCm7yMIAt-%+)8(B`!emVqZ|b_nDBSKuDI zy|WdCWCF$ZmipHr<^M0@U&cNcaAQQ@zU6}JP1X3Q4M zAhPlK!}R3tjxd$+gA{JRIM@5n<)6rCOm5XO4TIDB-Pv7u7?q8}xn1 z;B88E>Mf_t=c_EAbV2T@%Dm~m_p4V*W zfkgs?Bct#*d4^8isd{}=s?D)%)KXxuAE3s>=;Y@%8vdMiTim1Hy}duazI=W*VYQ{c zd4iA+G&F^pQrvl9JvUjG<+x^KD~#1Z=-1;s%h&S0N|;VcOEp^(ORQ9*&aKP+a6UO& zqajYqCvPD+d#ba|n0Cs5cyc<_>%-VLI?PD}Q@Or)NYnf<3!}LKZ8vyMcu^T&3uS7? z;j7!G4nvF%2KSmxk-L*XaP4<&hPM3&e$MoY7`eld=*~|Dr;bFM~s? zDk*aVwZD{MvhWOpA`&%;P%H0XNzCfK?|ZfWfsQ4#m9d)(+uty_U{S^K^(2b|q5beF zGaF-yAxuqbJ5C${_IihxPG58noGXQ!vtU;7x9W~l`J~IWGCe)0DPKf#@G0^kl@^(d zzW|*q@pBU-mF!#Ki#7=OlauX zvn$n;EUkMW&s1$|+Y4RF^k|Y1Wzx|PuK)JrC@yDSZAN!h?evX%7rP?s=fi zk!d(3R~xj$cD}H{0b4MKA3OTMA|Qv$&PIfc$MK^qv%32kPub^(wsH{h^#0LK_-U!0 zG9sa__z_R2ZY^CR zX5la@_^v2?Uk`qW$k8+4r>%%KF=BK1Pae04HsNp%#EVptudhF4zU-fTuBhz&i&GPW z3cxb_1ir)rzJyz?CORU%rd9k}@%{4~j0pVIek}3ngHwmuCqNWU7kr2y+v^Qvv7<&(6&+ z{H+|KR8l1%myN#WbU)+r-a-eO z4j>>5SIC`PvX1!8?`P;tf2xBDnxmR;zvK{4Ben0nu#2LZ`|@*9Yau$`YzsbvIM(qDOllqr; zXky(*KW0+V1eEBsS9v+&3@xdq`3F11A68O-jmr@$sULQT!;Q~>vP1k;4sjKi|NR*n zUR+wcxmi;2FY|J{w_aOSL%jc+cj#_nL|)!Q?s9F1K*Z&2!jG@wa`KzltaV$vDXgIf z?{IvHPj-jzeJ;JSLu~DhilN{7X@`(vDnrEOxE=T3L$B-*%4!rVajIrz2UFTE-<;SO zUtY)M2swoLU*hsNTI>l_Q`ZF(g{~n@$m6sEjGnHeKnbQBr z%Znd)+J=5CcX06E#_9-n7|JOdFZ|8tE6DJ+N8cvW@>5Px#XD36>fNZ~O=NL$q<(21 z%Uis#b~*O`eiv5i=anJDi-q0EYjefu|fie1Gfn{VgvqlD(cuA$-2S><~Zl^8cnC zq9zP$ReCy0zp~tQxJ36By@xF5GIQg}ht-90WtM7#b5n@899|KIutR8Np^p944q+E4^V1ITFY|IW zJEDtn*It>$-Q?>#^buOg;vph0hlRcVJuiR#;%E?&mmjqPa4Nih=H(~BNIpbEzuO^x z=H-8g%dhPaKjZSsV6~y^xctivtWdKBn#{4|A91<1A_nZZR}7~rGK64}hU}zIfRHIV zVdzI({vVy8&7Z`-N&XM>^8e5d!H1YhA$-1>I5ofQ5LZ55H3Zo8dL~sy{%XxikT zEUAB1>h$SVgqTbPX3olU3O3xgBJ0sc*yUSx+seFt4iIh+KmUl zDs{i2YFl)}t0nbXT&aflPlJ?xz)4=bVZ6oql|hOzQM~-BQkVaUj^=jHKYfots*sY$ zS$q{$V?Iuc{!yv>^&a5?DPXfO_s5cYKpwgHZ{H$duIc>al6vcw{QoVf|BC{t|G!7o z+)CBgOX@08kzY${d`i6QCH3PckwyQoq<(n6NaYVvb^dqm+MzrSmw&aS9%G-lnf-X! zvKXQc5DVq0`x#YxCgqfS58GWw)dd36SL}BS$!%*R{Y=_-Krl_%(B*w)@{lvLbmOcr>yp)4 z$~mJg4obiU`%^MqDiwICin_p%8N9<9#CwFT$%+l7{$yybHg$=K#1|mh&6SE21_M9K zF(6<+vnuODhN-K- z7qzkA0+wnPNNW#cy0iMDcu zo(kVG=p5FB7rI&beU}>ciu!TF0f!_G0QrzVR%?9`huAY*%S>Zlv%$9?0lSYv#nws5 zr-yjIyvaCwq&YrL4J6WZoCTCcjkwPaJ|(QqohMS`AkIS1Ea#-LZL-KyaEC-)_Qis3 z1vQt~PoVCXXB)^hXuLo5P2NV~6+L;ZwIop2`lC{(52&B%7vib%hbMeBshga|5aPY6 z)S<4`%zl9J+^%&GQ&U4!>S}|X^2%_m1Dj0OpU5;CRBk`Js?^ysYSd7KJNKrT9CCmY zLlmf(+x8a^fo!}R*f1eH?OO$MXhh9Ab}}FGs_q_pPLQdqHo?v8v zSKBHtdTijzd4hjy8@dYMlo@5)mk^wdo+;;^QD0%UhLaD@>u#HjGw_?*ZR^$Kn+QZz z%BW$=5n;Q17rP?ec~D~oNacKXrx7wu%G|VVnLJ*8TPO(rc6WKW-<*3HT(j9Rn)f>3 z5K5}I$W9pu%KU9zPLvIXED5{K(eXAA>0`g3 zPeZ1T@YkpLXVx<>j`}+fyS(AGE1fyuB*zN8#tP5X9Gk;$(88`0U6d}tm)2tmkEYSz z`4a22mgp>ZynQTlx&w?jIqNxF8Wt7eAB{m1>JvE2aok*-Mmrg3DMooA`f_uv`rY~T z%khWi&}mQPAO>Sp4;KT^1%)STE?zu_FCq85Z+@Y|SNAUa=uXVc^HmMU`#{^d)_YV5 zwOYaui^-?oR}P-=oSB(>>cDF$Qp4R0NaRY!GvgCo30JJIR^&X!qBTJkvQvKRZ~ULlFPDJl&!?hMMyd>%8YL_Z3;mj@Nkm*06SGm{zPKUP!G#9#Ikl>kZDx#ms! zYMFBhb$cl#1|%w>@<0Oo^!;tW2%7SOR5JaY>IDkd+&tD@J&pyL)D6AI1H6xk&0T|n z>w~(GJj&35LK7dk6Tj+r@C{JE!Oo2LN%9r>!@$%+7Ja8z8h7N=L3mSUknH1Es!_p4 zcV0~{2N%zfy}E}%1_|ki0oK;vOCiQwQx4&6N6O)JXg~<0q;8a|hXy9D>6YGNn$V1PYm#x-WGUwps`e_N&1hz85a>%;vT|BCx(YGZW4k z;}#UDvI9YZ^>LXnxmQ$#9Nn|fF3?xvLb?D6u+=#WLrs7f0tG8tKGe<_`~q>^kSvg2zxcCWCyIEN|3Fhv_ z2=Iqtae_!2xVMO7_#0yWDv;`bsL6?S2NoOoK1$gw?jt9Hkk5O+AuebvPS=8ym?YjO zCoU5f{sJoM;3gR3C%k%ZK_$Qm%Bm-wGBHuB^V98)`0$uAeacdm|-s=AwN!Iy_zBp9t(<4&vNpn*DG)hY<9A}kBHD;KWI0X$5ZRqn%$qbe`IK=^;ThL)P zUosb)3Xp0US&xuRXf9{M+ug%iTfC5z*fO_y#Uc~U@<}oeEoxf2L5|YgUAg4E?#eus zmAp7W{&{yETt5#b3q?&K*SIm?ELRQ?3^5eIvLDEA^_H=Fh5L-Pz)_mU5|eO`JJGGN zpyf^`#=AfOO$5;?$VC%efLG|FNq`>b8!}c9VM!*;f*G_@Sg(&7t63Cfn19x0!De421j8u5yGHR*2gR3;3Vibe36H1CVF%~Rv+Z>=pn>d%< zE}ox(JOEl`7wisKyrRR>`qPp;sILM#pp>=r6(r{?^m#t2C5Tbiw^bJ-ILMqeN6T-P?MjqG$RC7&&Mle6&T8I5Vs%3b0wZg2@M=xLjK)6c>(FA7 zvs$**THYy4DXY2)pF+>GI@u&OARmDPxSpq@_6@1Ihy}bp)FaVjzJA5Kjvp^Q@{E4- z3)V*oM*U=~FtrBR-TH)z+};Y)c>UCLHu_8toa_=%{r)pgqVj?>x)xqgG+9Y?iNO-U zg~7~?J~5?+tclzZvE_FNvBFN6Mt#p`*4>0XnebAt#}5VE%&q9wH{d(Jtbg~cX<*D; z0v*6j+%i5$JEVq6LY=p~tdFh=bW3auZ9`>GLAs@Bwng@K;=b7;p}P;Xz7J-}(^j!) zMklZvYuwp)!B(wU)-6)JCLl|_CtN-Euq49GpdrBnYc2UIg>7F$3t zyHBBQi7}4F<#NEjIFdlULNd3 z9MYX#**JPXldz=6d;v?}N!@k`>w8{nvzWg2JTco;`%_t**ZJO6hA6ytDsP>f7qgVv z&SM4V$=w!uD=PX}qWWqpp9XC8EyFbF$n@x}dIz#feZ5+z@2g4D9KI&zZstv9>C)vv# z#h6RjJsRIH@wqyjtnHxhAtK;eWo=g9=+~`J@&%Fl3X?? zjx>W=j-j_u3f6nZ1ZL66m@{L&3`EZ&x?mtBQgZCYTCoPDA9fOw`49?^f6lUx>#lm{ z2`LLTeazm^8Ac1NGmMbb9686t>>llfX`2?l--3+`ViVjt?^@f^?+{E?z%rd-0ZDxb zYPFj*KXX_&Y__)QVr(=xQJ%9I*sai zjr@cxRiyb)OBpBG=ellTX1tF1Z)>Uj!%TaUAh!6SQGi09Kn_%lG444X&&5Ij0*K6$ zQ3vT}JJ+xfegn6jZ2$JbbzJ|uB~H+Hx7KbmcR2>up2alC^yPZvvk-sW)5T+*pw$E= z^&ZUS1NHe95I#0QNFV68u2M^}Y?`e;#OJB21J3lU@d!W?OI9ko;Lg3JMuY{xN?NI| z(85gC$Sim>Xv6>D(ZY*>W*UV@% zZazB4-af2U6HV9T=q(5JG*YgooUIv6xl*87)(a*v;`j^zhs8|8+=oETum|uu=fDOrn^0;f&N8>2`2GqAcbu1$%TiBeWg_C{F5~ z6E`9ud>o(7>)T|Oaj83c2@k3k)1uxraYAd~CC6oBK*mO*t+`|=qq)Rn#y_hjW;e;j|IGh0T`B96+M^=8ewxg-`N!gWuUHn9osI<+(FGC(gI{~P&*Se zKEvDL$V5$Ub<);yip0tI?uFl;{cVL0f=UbL*i%NzAn#y$4qQy%t)?AhP<1P1+bgd6 zmM|9OBy9O6d{2zZ`WDIV{ipOAy8G?O-=&sVlbiRSh+21Sr%&JiBtMFSLq^)Id9du2 zuQ~caVCg`g>d;X1(Bso4@4F9Hno#4XvgA#Nw(vtcsv`%{BgfkTrg}%N8AtA~@gB7v zy?`GD+~4;SJ@(T(uC;|9zo$J8YCR5JIPEe@ zLmar-;bypsnjMVIT0RW0hlkD>~c6g3|QXCA=evsv(VF$C(P3oc3%y^S>{@lmbr z1fD_iBBj7<40Y^15Flm*qE7s;6U|E-%+FcWjbjY@fYI#2ayoxYG+&(isA!~a7p!uh22_0Rr*n8n2eR1qsjh+~H^M{hS z;Z}3a4dpUXtN?8oV4045KoZNIR5+NsX#6M9+_IR%AD|x@%u_N|rrqRzfyrAs6DiR$ zOMFcxR{wopCnifGPsaaO;(Hk2ax5+}`ie`BKL zifHb^(=*rP0ml((KK@BGM}#+9^G#PobI%aI_4(Ea(bmh0Gh)WixcXkmI0&G536{xU zf#&cZL~~NxzW*(v`IEj6iPuE)@uGhuns=n-T@%d<_28(#6U~DeeL}B@=IS`CzZ1<_ z`1y0=5@=ZCW-Smz^V3*DYyMzM1ks!opVm+T^Up+cOzVn{A3*aE>#Bj@fac@)pMhoX zbwg}w=Y9dr;q@E#jJ6Hy=^X;0{zl;NaLr*v1iqyV$>hXR8x=zk&E+1@ zBZ%hK_}?56MDrGKiLzc8f@uD9mwqm<1IE>1vQ?{0eC9kt2*b5v><~BEe;h0GivOuDN|l zSoAL}&CalWvsUuoV4q``;LMZw=~YI6L%qz6WMd$vp*qnTf!4K^Hjp(?H{ql1C8DwcZQSB^n%t zPwFvTzPRL5QV=JSRA2G^(k=fIg*}s_HUYF9%Ib+`oe8vx0%C1tI;ps2qP8G4gDvfR zvuBXeML`dom61GY{%xYUeULbNHeN(f7yXmI7p9MPZkhB za}WY3QWj#!PB#fL>fyFU4aUnRhhy~Lxye;*AMRM1L(#8{MYLcaf$ovRi`LgGW;*N< zAC*Im`>Icz)gdaBoQ#?bs6$ZcUzlXLt%#j}k#NPY&ct!WcG} zewI8@$~as9CP-29SxTcTBM*7rFmhCQ%BKnGdxNh=#GJk3n_)%*OZ-Jt%@2vT{g_xo zW~rU$o@JbG6^Ozype-w0nJC?{c)HXe;{*82X&ypGwgq#17($H_ibbj;C^ zUVo^!>>K0|n+>+Psjv?J?(H4!nCHCebF7Z3By6!xB2=L(`_wWY%HrcKs-TA}@alc$ zlL0){V=-(lF<-3x%-jby#c|3VzLfNF90%uqB5A=YBo{k*8s9eKDmEr7g8znSuI7rw zQ|?%HMKo7iWH&5#`}UJ)&Z|vIQTiLvT*bhE3_N>HG)HAWL;UH6ei6-O3X6T5tD}ur zE#yPyCW@VFN^Q!lOm=6c2b^oG%gSt?hG;!cB2;Yhk1>A+URcI-sqeZ~ZXe;__L0?v z=Xg-uAp!g$XP>umg5U{OF`3YPJD%G1PA+BAf(QU|5p{p&E2hm)0>UL6~(1$CcxwY+^lqKzX?#>@X^Bq|R@?|$8hbK2Z zkF4KdAtQk1+m%V+A3*b$!rVDj*c;Px+~cvPF;CdSHe{{f?(b8#e|Aa*DFdTS= zq#+)+z>!4c=Ojg9D_8lsfx}%{^p$|WB57zH5F~Qq@jvC~G(Yq6z<@C`gNdn4-1owEza(0>UGENfVk~%I(C@gs64UFF9;-!bbn~g z9sPewBA)@2_pn+OK!^T{q+u^G!9kG7rKE%ZRIyuE_N7)+F8Nlw;QaO5{{)i8`aAru z9Xt92>z_y(c0|W+kh7P4Z-{%^dhcI!?5>bBKRb5UNSYrVyWfyBf8VkD|EyxSJH+>U z#qR0F!OZU!yTIF*@c)gD-5-%OeI102Fn`X_A04|NNSdpT-QQO1ejsUnR_rvt|AwUb zRk4%m;Y$AgJCf#mm|bWN`DdwKfw}MhltiBUhpG2rD)lvzW|0~BibQ@r^*&F;zn*#r z_<-|e^H>p`_}`}94Pe=KyYUF4$j|&dGWk4@Gw|_{A?aRXpKLx?LjRDdz+Tc=Xg+rV zB0oov$hQuaDMVE$N-Ur2fU`K4LF~yX*_Ol>084u}-#l00BqX=96zG9~(kpM0%;O@)svA92KN`F}LbcgxeKfVcwg?lpH zVQv^LTpUFc_A2Hw=L}+To%Eb@?7~GcK&29ENAoM3R2`L`Zk#(PSH{ni{oeSXtBZ^nPbiqS@k=-3^Q7}3deb}H5eu8DVv*U(Q7Mnh%TTEON`n;L|e z6PP+;W%2A(XKEwn$L_6<$8Csplv+>Ae=VbX|N02*k0=SwYI~btEwt+e?XpSZw?HwVVDl zte?pcNSZn`P3axZkr43ZVx8UP#p~;eU5eQov~69ydVN1YphT;`{!_Tm?H<(1Lw%81 zWPs<%>M{n|R!y&PdEleIi3bzQ+$7;LrnvTVcn?Ft%D2RE#RZARII`PUoGQC;Jj!xT zt3edJgR!wPpAdQ%LjwYF2W%tYB;iRPZi+cUpJ33@CtJOYaolcfW(y_)NM$}=?pj66$4_7wV~w&I3XozZXh`91C7qqIh}L9lIU6%&qVqI>k%eCN%XxL8(s0LECiB< z==1DU{&MvV+OfU-d(*QBBu(I(Z}tczO&;>mor$n*HyZcbJ7|*4^Kv`xAq5MEmn2Ph ztDXkz3ohlnUw6!_)b`rjnLt~bc=Jvu=w+wjBC`b-H+8z5L>w`oFwQ=7*>LUQy;MTU zFRtBulfF5a*)#sf$85~D_@tu1J0B<;vKFj@m_Y$G!>~6)WGa3iOuf*LFQsorlkF=n zpiT$t!bT{%bsj)yTHW4_6Noo$=sO~f_|Cw_v1`5ufO|ks%R78RwlVIwWPSEK22|A9 zGV9{5bMRB3IEH0uD}<}9S&PPGYj7lRG;4Ob26oTlh9JR7VapwEe9FtStMaL2blV7P z`|F2kyE5z|-vzlGb&atBctHJcor$BKVq;&uZ_pNIM^sebk*{k?6xtQGJHL}S0Hl>A zxshOYF&A{YkzwRP;yL~NV=2~0$}zExzQn>^^gAxD~@AlzcVc2|5GJDsxp%s^tCW zB8kHLPJYt$eiaoytKRyu=45xKadk4yIRhyn#Qv#SFXy4A2?4~?nf{J%j6cG>)71<~ zm;&@a`hDg!L2yK^K@{4B0U1%M;*z)z{hz6{*;&5xTFI2-kP3W54IUHHB?XZUnqfp2zT#mt zdVk=4IHp=!&jUR2_?GGPrjI9G67)PiWWv|k2LYfiRP@ycLMv1sq5=e*g8Lys?^i-Q z5&8MOFa@Afn?zVpSLh7!?ULgg8N_(@^vCo*4Z6Rt3?Ca`y6+w^{ z*YJ_-uvYzu{UFkWAainR5CzQbgjiSu5*gzg;ZuR?13>|dMes%eb6{a8BvJToH$L2p z%2J9V)DR<1iqiNLNq!PV?Z#P89Gy>yg|$IlD-~Ua6m$j%OYm~{H;80yxV?8ThLZU-S@eSjZn`2I0cfm1jHcu|rchC=(jJWvz!=Ie$c?TwpdMER z4D}haFfNQM+p~Nn1)@cd&x=9w&GWJV0YogVbFM?Da(DwkY>9v5Wvn>H$9y_i={LU7xdPgI<=*gNig? z>g3N=_DI2*x*bm-mb{M>L67;fh?BEO2N*7sNbu2OoRFZ1zf({Y*v}i7v81!l?T`Ta z=_Lwgtd`U)tRx>KjbjMmImoN>phu)$eP%uNq4$b;orpZ-NOCVLLtW}gJ9&ejqM_cC zOqUEM?>>AXglT!(&hVysE|fH{ElN{PGB2y$JfjC#gXZ{nAn!6u`{|l7)(3uE%Z|4veY%d!1F-ZZr53NX zr)mRQJ|Y##L&|i{jv65M?9qw|^v<>iTCZ8#&K0e-d+5M!_0aEz+>T686p@zP< zBs{i!y*=hxFacU@#MXfUIXOWFiLVRzaDZC4hEo;EQ0>c8tTRpAq66G+Lyhm6m=F>? z!^z4@=xc@G@(5V@5hvB{Ok}@x)#El3$QgkjZ)M^NkQJZ?ka^7;oWP|;o9jfnfq{WB zh`pDkbVHx!mW;7gW0{*lwV)N=MKZ3=QPumlLUA-N&0-?H`D$EmVkN zZfSx>Fyw>v;ixPuRW)PJxV~6DImp$;tM&Q{5s5_hiL67J!zr9FH*~38Wbq_Bt4ujIic`$+W zTbfm9vZICTW6cOtEg!PC+a9;~{iRjgP(wp3saESxN;naRyk)_*duvVscC8>!F62}Y zIy;pwq#fIn>#J5fv8?P|$j!C=HWDmqo5!G=vY2$um_7|TRH0m#DIL~|9XQ_4S2o+( zOQ~4m;q}5%x10`5)A&32eL4hXvAIey**B_ahdRZo)a;m)=i6G>pvF);i&?8K2?wHM zqOOcgZM%Coyr*4GtlfNE-c~7jqM_JQ^ELAjFTG>r;+l5dg-&NQRCM$17+99mQJ#Y= zhSxol_(n?uZGRhfdT~`#4fpn(HZz~n>PbL>!J5@9IRE8V&%i+;)1$tuO!F?)!UfJ| zg#GT`VV@X&`SW$9LAK&?PK|gKpqO)SjM$U>6dxWjlq_}f;;sHns6T`jiHF)J)*55W zMEmY>5JxDcW^Zpf;|mcXG7!;FwKiCjOV?{ac_0*%e{HBauDcg(`Ke|w$#U+vrP z$F9cbW1bFHp4j1_l}2vU!(v0;O}(L$k~$qR-R9^W)Hmo?_zk%{xw889u;2Da?AJZ zd=)>Zc=f#H-Zs11Fy^M<@JmwF!w(-DxITp2sS8sV2rrvUrhi;h0p8(SkQZT=(gnF~ zf|YgGxK}3^YcYBAm!4cQ^bM{>0#p99WwR_ZW+OC7D)`qYEw(F`-ZK;A3*6kM6 z!6Vp#-)1~0nR!!}pscDx>b-t1K6|Irq=wDbE^B2`L&f!rK5L^oFLbBmd?9z5GZX@I z#rdNw&L@;_K$Sjm1XO3$>Z`rLZ0-fVOhzJF?+ba$1no7`;nYnf29sg9glx?_k_t>o zeYWn=M(;y47AO$28Q(KSDPb&#cULKS%X^d9nvogQDmkzK1ulMD63d2ve)ASnWz2&+ za(oHmQOUPnNcWk&#(bptBTN`Gs9zs^_ASJ)KOVF2-6BTiDPe9o-HEQ6d-ErzCp%}f ze)&&eC(*&vg&=%Za5jrm?v1TRIejH{95@c&0MCkl(e`xP_x9}kV;5VZmqNzzUy|ar zuuz^opHfYH;n&&}E@2J2;J~C?;ynJaD^h4nDSyu?bZ;sE=`Cj(@rVG4{FkX7Yad9u zkz3ib7a$RyJtHHdr)US1&Y4B3Y?n7XKDTLO_Cqjz*5eiTW=(Zfz}>A651@w;ND{`{ zP!*IgSX0MbSmvP;Q9myXSsV88W9AXE_n{qJAHx>-R9ndKwG{*nJ}3c07JpRx5|@)o z3|05Um>0Gk_LQSLd%xvFU+%YWac~aG3Sip0*^8xWy?;%?fb+);MHwvT1E zIUkC-b%+Q(9`eaqx<^(2>1}U(X~J17us{&!aHV#q_()i3&0^%m$I7R-6&w0;JYmB- zV1M}>5`}4dfr1U;i_;MMu?Pno^XBFE@6{Sd7Ba8|pVDW5TiRY;Prdb6fqFMm<;#k{ zihQGjA4ft@5mWCS@Xx*V=!MIjeMAN>*nJ9r%JSpM=L#3^1W>M$@*T2CI6PPJI#7Qp zw>Qdpk`Z)`N4DEvY>`Vt<&di}++-CWs-PoUVh-_W~JTLfC4e24gu znLB$k60riOM9jCh5E%E&t8a;#|1+46q`81U<#MwZ6`1;je)X!%v+E3xFgd4a7KmW9Fcwr2j4)NqaJl@9q>8aHA zQzOLh>Te%A)F-0f5Z`z8`giE04F5hRX0!^2U&OhMh)u_*Bff}<4cA%k6dp`_(IJLX zoq#kM2ZzfShD2Us_r`HV4#4G^@g*}SaX|ndA4y&zAs;G$q|SeX<({kEm!>VuBZMC; zq#8E(k1Y2u8=GIZzE$en)|p(9RH5P~=AjbW+rESYfSBY`6`Ae6pc|~(eOD~^!B`B% zsY0|G4mGrc!Ja%&7#2?|fjvE5_MchqsgK{J;DrG`z53K4r47es7Ir^&b$pZmYn)#6 zz5tpd&C{2sfJP=#_^JfCEjTJ#=}(t)UiBzSfO(|veC;0@sm;=wNNp;S+8MrWt0+VD zmA{SCR3aA9)-~cs|=>gHPv2^(*w*=%&{Yd4R)XxZgDWP2rh7(Wk$?+!;c3t?+F9lKo5JNd{;CbvS?RNQVGvqcJagp%8uvdx`cB zEO#1LUhQi}D*O+S)YVta*ACCW8>e$j{Zp9xKVzi+I-LKJ<^FfWGxs@{fGb97XcdF@ zKQdB_jj+?NSnjzTN9IKxvR<3Nw&|8%q^ho1?kVZPzcW&;l?3joD$ zAl@sMI|2%8)TsJ*hjVzzcH>s<*X<@)58F=j{*={DOG-z;&fD|DuRE;(baq%93Xza$ zEgDlPtOMa{fptP2v48Knsb>BC=ixkr=^=vU9-4=_qCx%d9nK?8#NJ6UQE&jIe;&?x zqA_HD9nQ&VhY*MJhpMG4xBU=@b89r3MP&23Z@d;kZ*LtfIELJ?`E@wIh57u&HOrmI z_MWj9Rr&F1DBm`M<^G7{#8p?`_GB&5to&p>)n)r?ct*MPAv@ukkvj4ewYYBk^lL>g z#}&&Ro-Vys5@~z3-Av|Wv(tv2L0Z;9Bzmi`W?TP!*YWGf`QBI#L7nk~FVU|1KQ8C3 z$M#3deBmC5!}(G)4kMWBLj7yXj>zZt*gi-A5#=>cMJ=p@%gbc5lul}uFFpkIoQdD> ze0t$ajSMGbZUhejI2JdMZi+ynGl?U;iHG#>tfFJMIc8z<+TC~51rp%AN_4!baSbHw3%_W>Hwy-@na2lpwPIRjn~M&c&ahwrHPfJH!$ zrNo(ojPG0>&Qb6m+TWm>slYtw%O>ts$DkFe08hqr3=F39o6;T(Q_IXBWr zGmsEI{r(%wopd)cNcNAH^Pdh+Y5Qv3J6vv8m-F8hp5sE(f!V3F}h%cMDkVT}YHCO$_Dp*7eJ2 zq25UOAe73{`FI3=UX@CAx=!8pYQ*_U;hB0v@Z&6v#W><{KE%YaUL=qEAu|JjT_|Rh zHR4UWp9xZ#;lD8eU3piP1^LVHtQg|qu%8p!^nmKVv|>Pe<+Z}|$2J|F$BEi4={%Di z)3cxdB8%mT%fJtq`>@$fA8F;%us4NLa>a@XmSASigQCeQ7Ucrz$zsieV)bu?H*LJ4 zO5JNzkUv?L$Ie z9(qZkbbE<&t?F{sYYPY0y(4%Z};(YQ+^6-?4+fK8}5J2K7^d=n+y?9n_Ev&cig zG5RvgkIE>J^1~XBs&-=onfY784+Z=R%WRjr;wH8a>kRR?8ce|pO89m4eRAavP4rP8 zIgT2}!pa>@Ru?ujT^^;PN;tnB{IKnQ)U=GfbBi?BFadGFNV*G zZ2F`Y!|Y;)KE1zJ*$)*NKF^jlnY`KXJ0o>g;?ZT*50*Q>0a?TMq<^(dm*Gb+QYYK1 z?~}RHSbtT`!bK=N1yA2ah9g++R|-!}Ta~8je7-QL+FQw2+jRJkak}P%43U31PA64U zyR7*IbFatYt&(r~Wby;%US06P#6;;Q%U!OJ*e=Cb%bt4%Fa41(ou%MKCO74^+wAEE}DBwF3v%**2Sj!Xya5}$;d&u$HiBD z+@_h{Cx=xj7hC4?O>@&DhqX-?-|Qlq7Ct{YYMj5=b{%b6JQ_KAdv>woh1J<%{Y;cu- z?f)~c--i9gq`sbK@()TKe0Q~qF2WGw+#bfOw_!gKL1i-XAg-^~|A(soKUDoMrOtn@ zzwoJu@cLbtX(xL8PgMOJ5dI+j%A}4FY!$T|`_rWUqrbqw#=-Ezq<-CBkP#-$`X?s! zU;PD<5ZNiuwVPE}`+qz21OSs^GXhn=2uWQ}H3%Hf@ZqIp_SqOD^R+o&QQhLps*Hpth*(%H>YaQoolSkFqk!E z_6Y#mZJ(&EIcM+3I#(lk+R*hWqmbRqMw9URhD;DUFTbBz1E?>trD7hFD|Lcou5H;p zOhh8Jo-Ffc-sZ_|T4-eZrv^dMt$-t!L4BPt9{@YK ziv4cgQ+Y5$-C=_S3*cD?l6e9EOuV5sk3#QMvpSVPOe^8ssW^}~em%VL2&K*zHR;|= zD*xr3G0#*G_+2hoYTF0Thy4?P@uXi)mEuK%fiIG1QolkzMZBH?Dp|8wo7BiIN(>e% znHbGb;7nEG($OdQi&;D+-8bjurN;bpVJ$)%U*lG+KO^Jw_Y_{(;MK!Ei`=Nd6e+x~ z=+UP4uz-E!QNInEB@9WLjdVPmktE$kaY=k34~-RL*QJ^YH}$n-fvf=QSyaU%Be6v;NWt+@k{OI+|$=00m*l>7#_^ml(|G5ymo?fTYum_yE&>`TV3#+ z#6*egZ7I^@NRs`3?7e4HQw_VW8wim= z=+bLYkX}SUKtNDI1f=&GkPgzjl+ZiUdkMYw-iy*ZN*AO^@1S(ej{27GUF%z8uYJbZ zf6iHd7-VLKnK8nTC(pd^>)N;{(c1Au&pBv^lQGcR$*a=(&0UK;2{CT`XKCSXIgFov z(0(kyRXp?`!|#=Td9HQEfy0(Fw-Sn80O3{u`@ITS?GcFRVT?Q$V2sBU?iYiLw3C1c zQ`Ymho+OrtVF2I&fMkH%K>8O$aRRh2w&Fa*ou#LW(79Xndi$dkPBTk*yY&43Ql9^Ed=p< zX^04&>)2NUYt!pFo=|P1=|>?TC!(2Qn)9N(%qg8e_z_2Ss>%XU>v7z5lvdpiI&Enq z#b=4v^!YdQat~-vpGx{GypHnupmFyE&{-Xg<@4%eUj#&l`G(H|>L%^FaApvOE)pK) zvfNR&;NR%Ov-Jq<<9m9VQps@=fqXa?mpZ%Hy37wOL0Q+|Hn+c4iSsba>zMZ}(0ND&z5(Z(^_+W~_ z#h8>cx_|DYF_Z8XUPceyfX}ZfU{8WXU_jGEG|50XCG(@!JhS#`TSiw#hC(VzH8@)m z1Kp(8=PsZ7!Bk&dkoX*~eh=PxT){v(Fk?S}y0EKA#}`M$I**MCNK>_dW)X5&Y??=7yLzvOs3p5Mnkr)R; z;l66m@fF5(RMvs^8kB+pL3L>IMgnh+xC6>Sn%)|eVobpmS&Z^i765KE*+RU0BaA1E z_K}5rMT{XOb%DoGR;gQjtj}G1Z3A*HgbmbHBZ6_;5<_3)IJuwe6Ff0HtqiXA39D=* z&u$EBzX$`Is5fsxD!}3Aw}X2%gnKT)MjC{QN#R6yFpMWc$1hmW`E2s*f&Sd#G-&c4 zT?ts32|j5cBh-At0}LXk;gMgYsD}!%_!=T7b3mMSXh&w8V;5NavxL;#*nt{vQ6_cS z`;mZ40d&ErQ{|{zZqEdwqHyM-h-)zL1RAE?Mr0dIrj zD&B!s%;L(|V7~A-(l3OP>*QES1Iub+Dud+=9)d+Lp=*n7AdF zB_~*H+hD=;EiV&n&2K{hfY(K+P(n;^7r?G5Q9n1)eTM&WQ-W(UwZuSTpj(p3{iNWg zU-<s9cYSh(CVuE;^0s1f7hzI%2sqy@1#iu}7)vns zMYM8kO00Q&85Z-BMrvbnYI9R+s~`>OJ%-x3)b1u}9`3Yu46*?8w7}Eo!MU_9hSX7t z^hv>=`Go>t`g90A!$r{S&-_CAi~DR(0U4e5!1GcWhTUmf$^4!Tzw!%n%rhiuapIXK z^ly78GJ(;Vb3`du$qc2JnPA^obm{=s`*V*Jdpqri2;=` zvk9c~0KP^*6A%|dMeQQR{Wwc?Rwpb!!%!&S>>e5)09|u4(+&;f0@gY+hdidl^QJ6l zgd2rUTi6zQ-O9qiw z)KVr2+Tg`m*c8h~>dpZUCGLFBB$a)xh_lUN{oy6;h~la%awe!d0FmFebKff&D_tw_ z9VP#Fa)MSZ66fU7Z%6l16-wSM18W*eb?r*GqLk<7!EIAzU?CCNT3@g`+C=|t($xWS19*FX_&cQNgmdj&;w+%ePvEfjBWDx+|lOm@41L|nN; z3vAthepn2?t!nDRScV2MkT=0#b9PV8t~^)tAY{Y#d_Es)FdEoK)d1QuRj4meB6d7x=a&Vg-oL06p7K zJjxa`Ws;!h*rckkD$7T>sC7aXJVaUw>{nltUx(1sMm7eY;prEt#)oRX*~JdNZb+hc zpyR3BM$|@>G;J&!igdzl8xbY~U`flSqm_7A3M}|mf%Qxo?RmVjQ}ei(LG}U=*ic@$ zK)WwUS7e-XI)kUI)TnTQM{br=+tPxOUBJTBoRLcM?hfolVap(djwwkcSUq=}+c=&I z3!6u!L9319gq|_5?Q#d#XQnM&p?Q^xp|{s^pQ>XkxpllVUv{o-W=i9nu|vSV-Jlp3 zQwt(1S#h&)XVnPrF&z9+1}lFDYe&0t@wjsp9!k*4IO>v^*x61(eFx(PXAIKF-qNLZ z;{TbO&WWviXthH!OA8X-jaS_vCZ2D;5GRF=EDeEnai&r8uGc_Y@zi^>1$7t;3@Vpk zAXZu2*Cu6mwWz_Qo#HyUCeyhyVkTbwxC-aiy0<`wXYZx$Bf3~~Vy|)bK-o{$Ys-V< z*atxtP9|@{-s!CL>gZstOXkB$>nGqZrKdqUh#nbs+>pSQ5m2w^r>>YP7kcVGQQ02j z;`ZAX+4wq^WJzf5C0)VP47XFzG&e1$5q-}9^h)!6W6R3SL9RI_xwgZksyYM90C_Y4 zm7K8m1^sGP>#<(y9RRpb`om@hk3miGdqq9H6M2J+<32Gah1CMMXfB52wgvN0wCqRb zNzeN8qKzz!LC);M@IkfNUGy*$+}Z?WTO%V1F|5szMq#w0EShICOO02jYF--XvLsuS zBiYe(R6Ks)g_;RW*E%{fZXP=ijCUV-t_?<|9_rLa3v9dFqLpXgzq?7p^>1+ecw3l1DV;Rh3^Q5&;?jUQ>Y;*jZ(>kr%;sX8)8tjB#sbl)u_m0X5to{w+ZzORk3 zz+ukg73m4GdMAg2gU1;Du)2fO#F9BZ?8n9ABbs~0c@r|!l6#~+~^c2uO#anHz5TN@YR>5`paJ3W9lW2%emIBg8)pE+l;Lc3@6 zTFuyXpJ{Lg^cWXH;|ZBD%Y)q@JMiddyuTA4leuYoeB2spDpbWVHnBVQiHgykk~%|I z+xQq3m6FmFM;) z&q5#_3@RZPv1H+^gC|II=0w8>9BU+Nz&^`yI@eVJJXTH@$UvLj$9(0QNNm;HStevQtY~=~ z`@6TMHjt$A2Aq&@n^>d~4iuc5G2MgcX(i)lMqNXj={y4q+oc9-n?+GiGZfJLTLC_MUxv3*y^)QPXtPG1XGs>x2n^h-wQp8I_l zfWn@hE{?o~Wt${&KYi5)L)4N zu4B0;Z>imsRn9s?^RqV}rjPr!4aPXnog9jAx+;w|1*d|Vne zAexH2BqzKm?6@jD#IpN*m2G%li886ni@FeArLRRusb8;mTb3oXw9;{Ymd)iCyV!KT zs*APg6+YN6$3u<|wu1$H&X8MgK662<$FOe)#0@|G zv8DK9r0mBho~r{oq&V;Q>5!WfZ{*_p9~b%(TaIM$bT?NhYF!6X;^gYO16jeKD^!WR z_7=4`C%Y+ff6;=xrh9y29&)YEaMXbutd2sRQ+4(8%xf;hSqC!q2?$Y4E(D1Ed87l0 zyw1Gy_1AB|AOGX0P1`k6u>$q%V_D>XILAg=7X>;%9ULP;UFPM46%zjgM$C`vOj6W4 zLmlt8MoJ(5y6Qh)D17qkRev5NdqjbHPye{+9}jmMJ8)1>(P#hsBh(VeYa6^XeMZVN zZXTT9 zxx%JmdnBW6`6ev2q-AJf_ZmXYE-b5K zQ&djR+AA`nynS@(;0GQZ*JFA8T{Gi%{lcTFDzV~z&m(Bnb|{2{xwE~UQ&6Q3Lc0(PW|*t{%_%7V)a1C!$zcfGhgyExyZR0hs6;Mz`9r8gambY3 zQUc73$jwNrz6`{%X}5<9)@+PaG}>wEyh139=E|gsM*IR5C}LNy+Q4?_YX1ZkWOy9? z_!Cs{I8wOjH>hB==@578H>jZHZ2!}rpaPl=frVuZqCf@Hl79Lz?b81}P=S`ZwiNc8QxJ{+6=K`@ zC#S%+8=GtRzu*+83wHJ0dFye2#emEVw;yD!7(Pjb)Z#b{^Nh(ljEJdOI*ba9kv?N} zI>2!px5mz*20o#S_-d1L4+Sca%dFk`pd|m&X-ZAslVDWCX2fYm&l{KDQ7Z@qDlo~6 z_ysE94|&z_A3z1KA2fL&ab1^Dpn__UKV78j>K~v2&JPQv?6_|02_1~@)>CZs(rnVa zY4;&{z1Z&Cw#wG-JH^U@La?VtO7C~7$9{4Oo?dS6H*1&s-HAEG^El$f`lg6UMPMJV zUIrQSIDOHz;qkTEfqvxhHV0S8=A=zWGcFC^WWaMjjWN&54K||yd=VdcFZIAo{KpF+ z$Y+yaUQsxm_m8U&4#JG8P6i;43%L9ELM9r%6#m&I5D>iFg&AYoL<_a`J^jwcLA3hdmK2?U+qmMuv@*H5zJxN>}U`K7U+XI)Na{W#EguClfju zS4^BM%Do}2&&vEFToTz8I?Zf84$7K?X?>PvEY|b8 zMeS3fTf`7d`xW&eww34?q=*7^95p$=@3PYv&Aw-Kt}^g_W9RG{s~Zp^j7SZL^6 zleS-K`WT|6YsO!DNyYIOsDP#ipbc4={S#EMP#V4J+%Wuz&Bpt0Pyzm{c@(IiY4~-y zLndS~`EpwAgG8KlPT1m}g-gq){c;yjug_s|ZF?wOC5_$07uKik zkFzV@sJiG{sV=wQ^o;CYEp*+WyLPfrv;X203~i%hTXS1r>@EMrDJZ>@ZSV)D;1jY! zb&l*k17}r;eE2GHiE9tL^*=!cY0A{Qvy5EIr2Z~eO&G)_eeJ;N=(pit7}(qfWP6FD zQ~v}NoLEPk8L?Tq4e4y8qBWyH1&Q~E3^{9($HF&w{{$7_Yzhqh0V)XJ6n?PR=YCL= ziNx6wgSe09E?*^);Ee z`(`q4esT)xDkAo+kd|*2J{_D1>b_)-bxSo~rfp~%i#Tw!;iRLeDQ$kie&7mq_-`-Xvw0nd+qACH;a~R4`~Xh+{Ex!^zf#z% zYyTTB!2fU!0-OFd7a&@E+4(aUpp@$OS1#bzzs&_aG5RwX!1L;#?jVaeV7SFjQDJ`Z zU-3+!#DB^KkQN)GasihADHp&8w(t3$T)^*mX8F}l>A%D?t*`eRH_K7!%=3e5R63LE z=IA|{&CPK?Q^o(^y#RlwGdJwef8_!!a=?G(0{oD&zj6TsSe#M+As4Xz&s@Neh+*~r zCKrI>8Wg*uqvDw(lonWViztP?zCfv6FM;MpYYxMH%_l~jGrQ@7LMYgC z^)wSuN9QkFGy+G(Gp`;nKJiHc0JvdU@hZ&E-foSB+^Nnc{V&u(=0jV#lL^hdPUN1y zy#UjeqN0`NM0Lb>(>J*DgDbl+!HNo*MA4{Q{iJ|6i;s6m(Xc5HT@R+`K3>mtf@F~( zG5H93RdLy@;x%OghSFsq6#$N@1+w5O#GbxlsRfH{nQCuJt9QOoA)srv)IA@ZY5(aC zQpFLV&zkN;xr6vVuo;s5bO(`28%khEVqR<9Cate#P$5ui8V?vU8iRSwu~}D(p3x0jSmxMj)zSW&5B| zhx4Kn6o4obh->+@G*Ex*>68T_!R@&ncWz0eb#eSvA)Uh~+zoz7@-8D(PdHxi)^#y+ zy$Nd20|eK#pQ5|~D0R?4e?tcjyQwJ>0=qR?pJu{g3u+=zugxH7!)`|)9kA%9D8&T2 ziFu!p@F;-k2*}@|?QsB>A%>XUXQj}st{@ql&Y6rl%nReH?`rJeyHT^`_v^7DjEC1~ zk*0m3y`Lidge9lt;Qdl^_G5viUx<|&23`%{kD~#9VL>VE%ZsYzYr~DtSPCJM{CO-mS97wnTjcJ>)(mA$V#k=wj0;3HMDE*)xs#rpaVj z?@OW=rQIglG=AuJnnmB%*5Wul47?>~K=;yo@&yH1rW}`MNt8~LvwN?W$g!&>K%0*H z^5ad4qcV>IkQSCWl@{pKX)i*kH`JX;G^K{L_RTBNzixSMs&pdG_6YEWw(_gaTa#vK3dVc^gC>@$=dblx2X2MwR1`T0zkoq zOm8I2?vQaQ8_?LcU9*vgz6_eB6$s-^)BVCK?B!x$OaJjZjnAu9Eqr;xAaMXZ>*|rX zU*!c;V8Awa;^`U%l1RDlQScpjDyNB8AYx?i;6tnMx|vX!fzU3HIZ5Zs-3DJJ%cxb~ zwHvtu5sdMiYEvqK#oDe;*E<51w&K*<4bLBbn2gS5#CVqyfnFvydhwID?A-FXh9bIkTRe6W>exZ|A%G@x-3(XxeIF? zTd%FB+!~(rP_FB=9@>v@J99Nr!pWtI*CiJUZO2Y7m(zha!$V}L&mfO+*0FC=$KQ&k z1$R)h4c8yoe&;{0%WRcdSU!^37e5{7XhoCX29m0YUi%PR_1)EeRItrH1v0QQQuh8a z_3G72-J%F3-2fa5_BRLWi@BoZYXzHlGiKIIx^JBLsTX9i)-Jtv9tB-7# z&l=R2q2Di1(d8U&9SHD~2J=3H>Y3GPpGK+lF@jg){R_JS6qCr`#i#@<`yRu|6(zt6 zd`@%G>iT9>h9DoC29@0zT%sOW?568$0lrrc!8_{sHmV@W#2`7p7nK2My77hv_kzdX zX`2-W_bKZy2U&lSV1Bk0T&Nh5fKu3#(|ltBD{SF9G=^NP1!Ol0k}??*6Nct7Lmw%S z_BVtU@pzUmqv(9UVRB)B9B}pM{*kpMDBH>5fKG%fEkhmusStJ4jUtP ztHVw--kzCZEi&7jZ&B?R5`J%d`^qm8Fz`r-JBt66&#_sQ=m*_3RSWDnp*a&Lz_JCM zk{|x1Ab+45?zuaeo6yXvj_#Cmhs0YNEJ4j41AnzgSc10UQec$PJ~GzlHWr8)Gqxy4 z1GFj6W*)2V02IEA6{Co2GKzk}!Us`^lS+=WI97O$0uEGxq$%Q+2Ed+%7M7=Pl|!(& zSZE$4#p_+h!zdCA1rtQ36^u~101CRxq=Y84_-;7RDp^pHJkjw5p0;M`yV^mjch4Am|i)0fI>-m9e2%NCxuRq$pG_KrlIug0jqvAzU*#WlplEG1)FI znQJ0GWBcK{z(2SKJ|~IgEDRo(;7U!b8j4g(`^3f~WpbvZ78Z*6!n-0QF&*ZNd75ec z$sx7mX#;a<*;_V-Pcn!zP^duPSuhuSF1U zgoGKOP}W>iD}vPo3_^rIJd<#q4wDjBw1L33J`2}A4TPqG+zx6<^u6xYCSc9p6wiia zWuZr#i6q8wY9XNKv8x!A$?oh*ef^lX7+d5xW1z^&xT=99jP-CFXd{*0d z`hJwk_8B^#ElhSk7roksuTv9tFHe@xM;PEr-U)onlpkiBj@gy3lY*NL0+sXU-tw^p zcfsm5(0dcilaq671}O|lec)ig&K9{O3idLcwOt;={3_ z>3Iff5B0pRNJWd$_?M%m5&6l@Bn?5@d3=TOU7*n(UnckBBSrnKb&E^`P>5M^3}Z=g z7a-KxT5vtzny{o*nue(otKL+L4}rdPR`f}su*ZU(rx;&ikj{pv>;P7fBBpyGkvEHw zm*z&2j$Ywi@Ri3Qpc|oO1qx;G=<=4%aza9F#=`P^c*q-OFu^hyAB0~N3U=4T>nD-!pcHwUx~g_uCY>PnN@}tMo7@@8-9e2r44cU2HfZNZyE=X?9x86 zz`qu%mPW7Yf>tR@gLm^vD!ADpY@}3S)jJB+_~H(+jCe|>=ATV`1xm1)N{DbRYkt_4 zRuk0j0`gDAt0YqK5)#Zf%xclIGhz|7dtwf1kUB$t2U9cuIEVgkr_0*GHqZu(MvITwP5_pPpmPf6WNe) zjzxZMtsU>a1BEwCTg)*v(x1>@&4BnjLH83Ix5d`E%LBn!eqK zwdPsxs5P_$e2&!Jf*bK(fV>ss(MldQlvCYd-SK?=+%D+~_cMkz+_Wfs0kS0t&kyqA zrfMCq(;s632lfLUW}2JfS$t<&?xB`@@Bm(gB2}@Lj}W@_9t#X9U_x{KWv_+8CLS-$ zQZT8V4PBc~48FR6w*|r3!7ObI?YO5TS27KB54HNV3n@6(_J>t2K$~1i>@jri@H=~f zWx-`J8dKhPp^vX>**cJHE8hS>j||V@*HornuY98BU+Z-|n0tdemXm(WJw(4_Olj9CrGIGGpd6y&d0UEP)H^0_)J905l z5@J_Hv}yGN6R~kmeO}bwLU$m$yWA7PBnkdpN*PQDI_=RGCTQ=~2Gg{aRmn_---KV1 z7Rk=`j&|i%ejCLQ!ESFwP;>%4WN~nwyEW8*=;f}Va8(!cq$ZJk&8J)Jhj@KA;-knT z@JnGx?hKF+X1PCyTTu1BC##7A7x1IBbE;~R`I}1Lt?^D++hCaG+#U^OKH59y{udGM zF6TzvZw66_HAd>0f|41x2Y!|~5KCRk(4m>d<*qS>NqKwZr2js4sIGL__gSNR(+Nj2 zO2QSF;vb@3W7m?+X86t}f1g8)cmZM3Px~w zh1g<57DSQ=4ApYd+Ny)g7Ag#+U5>R|ZtzoDvLDYAc9h}waD4i_W0E@msgPjwV9!$v zd(qa=OYsW7y!kazVcy5G#j_PJh2|n8K)t@cgXpM#?d8%}`oWz9ZN-spdGHjm73%+7 z%S{X33HhwwZEB!~;Vh&_E(57ev*`f%ga}zJkuCtr=@s8t5y3ie1t58DBOOt>6W8s8 zv`p!Ftqi&glvZ9yT?p5*W7*k?YfSS8HQ@LlHsLw4F#Q~Ipr*wzy2{K$*Vo(fT^qs= z^;dumb>y!FcYhWUgU4K9W0ae1dag>gvyDnvSV{1@s|VIIT(7#b zxt(LpuCW&x8nsrEaTlKPxkU)Or_`~E)4KM+BO8{P2Uq-%?z;urY2svY+}JJa9K7Ce zl;PRxDaURsULTG!vrY(hz1a(!Tx^~J8|xtl{Gz;dp$(If`##ls20{nz3UbPgh1II| zPPBxFatB0&1-%g_m631NLUqUU_D|ZGfuugEj62b`)~!Pw&z26ud2;PYKH-G#W-zZ7 z2oD@b9-%4eAM|+(AEAxX;snjNl-_#PB6l2kQmD7MaxDTTwZ*cU!B#i!;PyJa^Ok`h zhT@u3#KG)DNJe+n2)XG_BYhMLOIi;~a3ZH&EB8*HM~+?%$rm9q`e_N!-+t|}>l91E z7UB996ceB^#yN`#NE8J7hLEdwe7ok^Z5h`UN97J;HjTJQc%a}-^Q_nST=RlBQ#{8G z`gcrh!2Fqbi|zO*M}V)5dKp58^az>mmw8c4auF)O6XDInf)7ytei5gCnK0&*_?R<1 z^U@4G9pwdZ`i5SHN2PeEkNAu$MMcSCdo_fZD(!$(d?tNLbzQ4}UH|rh=iA#;QN>ja@q%Zw2ZtNL*B?& ztl)>O*a)qRA!R4$)i;ng$meWh$k=710?%2-3i2isf8{Y5-XOBqzVOC|y#P%++?mpQ z44IM5NRadeG~4q^pY;7}(g+B-4% z;p5al8~X2bzigr!`dwIgA0jG5?1a927_sw%rD zjQoLxPLDxO-&-h)Jxh0v!dqv0b#*u?pK4ThJOA_RY|L_uC6r&W0_(n;EPz8W_3-=l4z4$L%#Khd^ZzwPn%{jvgz`lKem8v6gu zg8tdo9|ipiXe?#46!Kotml#?8?Js}mY^RESc8ykhi60WT5dtoc>0L;Bt9q43MCEqu>2&~EBOL3v}@d-|7Jrlw;z$dum<5B$+DnT4)uhcGJ zPswq~_yh2P&5Q`j9^VmAB^N3d9`RswnHts5uLhtq1hiz(ENN=vc z^zrf*7ds7yKdz7ZxR5trXKaw)FE%TXKW@$sQIH561OQX26P@x14wglrll6Dr5<=_Y+_4qG){C`B-u5qL>|BbeFCE=<5XEp5E zD8_03FMGUM7d;g7MgJ4Z811e{|GA)l5|flW0OT1MK>nkle-bBQcb8S2f||}9Jw!v1 zkvUA6|lq#+~615c0>0j|39K_XMZ>JWiP8!mr*O=cugO> zKh>~BcQx}@Q}@C*J(8Hm-0!>yJR4?Wkd(@&**eV>^I;8w+((gQH*a^QGf1MBpYq` zK6##4?0%WQV7BvzjOk4&K|$?a455bIOBF-E)2>n1=HM9GZ$-`9)GXY$0ul_6?8Y1c z#cF;}F_>)~iM+*MkTt^is8qVBQPnWDhC#Ih71Z9cGl?W{8c6E_wSPUr=H{GIMT_#b z`fd3rev_U(Gzy3Kbpk%iDb4n(705jT0r2Bid@1|aN+L(B?0*o=#_Ww2rQp7{9}H}y zZ5696?1{uLj%xVWJS~{`0Mkq#wfp)iV^=q_?_gW9uyl3Su$01K8?M=ls=x!bs6_fqagN= z%HROtB4O&qduF*m^zlhv*Pd13Tn-@m(LeO@s1@+_MIWXRk&Tb6ksnSIY6V=4(#IQ_ zNn{Nu{Cj;osd@N2*$sK>reQPMS1B{C5a)oT5!=X`w1(pi!3DS5FEu%o4~I7ujP^_@ zc54vg$D1|LPUFEF?=$6zX6`dJ50g_3Kpd4epW{=$l2D+=cOBP~c|%F`++H%|@kPKjwc*off^(Bqn`>}mgPwT2*wD2$5GqivUu3=NwPigd1; z8y+(rYi`RctgS(*VJ)<&`tTLc>WmrpU%x@AVeuZmEsN6siMHL6YiOPsv3@Dgym+)^ z`Lm(#zHq&CL2KUdS4028e@TSVccFh7UB0oKZ1gDb5%nV)*NeD^h>$KR>UMBPWADRq zMk5@z&vSsLfZ7o|mH0PGq|9zHgvBSXj9b^a9}|eak~>XtAqMixpA0#So@QL%Y>MFv zX;`tK8v5V2r10q#Vn@H`Kl;9{@V5D5f!yB>{a*!rd3;#s3}Y)mJjCC(j%P%K>HS|SDUm@I?;=Nv^+jyoxSy2srFFU4=-wpjk#`AVm zLq9fecZG`XZpGvO)X>*PUd@iRpEZnqKX`+@UdHdZ=#&2ug4S`fCEsy1Gv@Us1Nnl* ztRrrT3wgDG{82Om7~Db7ojX!G)dBQ!t!8Tx0vm;Ek-}%>bA+O|SiVGg@`-9%3K#?Se*NV97_5%zmNrPzo!$uG)(EnB+1k!mYs#E^FTJ&GX3j`l(--1XOd zI{iQl;ZJI@l@T=FMD>eqbQ{M8@YWb!}ih5v~tH2-rx9nPUW|2?0= zadLmpr~eip6=SOXE25B$OJ{q6{7sND#|QsH7ceq6=l!i-c<~EeP`X9@hkD`He2Ql7 z|9d|Dcj|@T^XZ6nuLbrJYCd&IVh2D?(zav^@P>-ysGSSbeH;_`X0d*&7lsQ&&j;jX zrwTK@a!ns}n#=u+D4?V82R}l_1BJeNo4FSfkOAPgr5s~RTepb9iWH@>YjdEuMN-eD zCu35+{tH1WkGm{c_?7gBlV{x-w=FOxs8kJc8*v!g4Nm;uFI?F&V}Y~2m*RHmd? z4N=`f1GpZ2WIjXO3P45`L%psbMBKG>6LIm!-cV3V|DyCQi>JX?CA_a1W<|b1TEOez_TgbC@_4BV*hB5n+sDuUASCjgbzkU`R3RNvW>%`0_ z-hWM42+guK6m@5O5AleaTM;6tPps@#eGC9#0XlEh)Rj3XYWPuVkO4$0eXKCibYI80 zwD{gW;N(GlcUMp)&;ds~Pf&H2%#)SWK%n zZ=nEEhXWi)|29($q+DaWB&@)9$K3#rC%#!Z-7@G!(kJm&XzN|l6;+5LXf6N3&wvC2 zw@@1ctHagz1C4*M4bBs~{yOZEb<($>LYU-mA6N~_!OJcjdk4P>#_z>Lo6c@L8^AoM zngNZC5I4SUdN~C1qD*-AsScgZc*sbuCgmqVN_%qH8a1D8%5GMLH;sb)A7reAY=|W8 zjcRY#WMaNFQ!;NTtmEMQFWY7*_*QEiZA zaovRMBe{iTVoNEt+Cuh(LK1+OHe%<;NWsL5`Yy#(?Oj5U8%1`0Sc%<=`SbH;iJFnG z{&>g*Gh@1IG3-HA{NiPx>Fqc7-yKL)X6iz>O-KOJY7_NMG+8C>WB>{RuBOlGsPA)7 zAP4kWgbnY3(_PfIGKCeu8>Qd%?9sw|zy)`l)|%VGo5#U=RZw@a-S=CX$~q_N@`dh`Gjd}udO%91oJE(%(i-51di?r ziDFC9{$U(L_kKnY&uldzAIVy(7AQUD#ISzK8H48F}k@e9e=g4;em`M|xy8 zB%&u|E@W-hZC^7U`){Mcr?+LwlcdhN>Ft#No| z^nYYO@wTfDv;V%9>GpWj9Qpj-7#Yn&m{Vjg=!q&ExOImgQy*YUMx9S%HVINkSiZQW zr?={jJNrmEQA_k5IL^hDreCCJ-Hs;4kzCz(*}=Xl2(97y8+K+9l35U~i=D+L5}l11 zjQ`LtlU@ra3HNIQZTGs%kg12L0M(Bvzm-m(IRm>78(uFO?^5@GzCQ&#t^7PYWlX~m-lV`8{PePq0zv*$9q8j+-W?3%l3O3e_fe}7Vr?!3p z<2D}seEv+TIvP4BP`5({uta50OLTzWEaO3>A21dwI(@wZ`T$Jvh}{d~yW^D0vpCnTZ|m+yMpdE(i@p6ZE3COpM5Yk6 zVIP^>iS}?MDm%&sTQHh<;P#nDbcRDTIg1!&Q?!~tkd`9mP6)RQcg!I)iV!{OUJ*Uz z+*_NK7`7&E2J%>5&DetR==-Lzg}$*u=6uX^v0b+@#IPRX2*#PL8SzcqLT<%Mx(U3P z_Vfk&5YEOGD`S*t03W=FFI4taYV;K@ig$jcDU5LTM}&$AJd&M*V^8V^j0eM#h17{0 z6~9?8pT*l0JuFr?3`4}Ygglf`jSPrN@GKJW5KKa$3ry?5i%N09MMz#OD307r5-Or_ zS6uP!CB2ejQd|i4Nn`S}cK|?(wJ)f( zxN+{=rXp^;wqB-gBa%BcY3ntqa|P4h1f?n6b{?bpOh_40nNFe>V*@*%&(f6XKtBcJn0wacTVZk zLTuBnnlcZF5a@#s+BHCrxPku5XpYfrPZbc_CvhUnsjks%j{sS!F$TBi?X6hAf-taY zaF*e#fERsww^_3X?X!jl2-U>gEuXtFYdthrN6%Gv`$2)s=@&;FAaZ8LL$-SD$(~19 zMW=3t@9rwy0h9G=Y1SPypyu zfgWl5DOk-Clx*$Td=k=DEFxF9K+gfY-*%}0@@OhymW>gVe?fTY7C7?}WZ%-pI%BQ$ zH1HE^@CmGPBilqzu_z|Gra=^83Dh|)O9uMdqT_RuOYtY933tY6^eQ4P1!Z^V#Ql9ZP^8I@3&eJOKe;j@^uvz zmkC227hIxbLZZ34CTQJ!a}bjZ*v#1J3|hZ|sJ)L?uN+1oL#FC0_WDq$#-@a~!lEIj zGb1u4#Kn@3be){uw^C~&)H{`M!0;7YC$c`HGW+&QLySUw&@S!Ey!rux#@JnkgjAyA zx~96W#$*UCbqgWKLeAUDrlb<07^-IEQB^&6v*t>9Btcc_HFbkDxN?_C^{A$fDxwA8 zl`huOPURzY>o#JcWz__fQ37d@wCf9N?Vixltv8mJu}jW_j?IF;^U*Dyw8mFDWNZMX z0c{*gr~(0~NlEUhfWwDMPaaIi22%a`^|nN~c8K&W3y6Qyt=xjgB)P>oTe8SD{QBiYqVsgQgV{%a(_x@qo zHBIP3>Cv6q8E>Gf!k&gTxB%>EM7GU^cCVLoQ?a9nMIO8a6_MAtw+Df;R~6{N@3>Y= z)ydM{KhGgEty+Z_sK=ub!PSiV{E~y-Gf$dHjyuWD8?GnfM$g!DUpR>mL)=l`6T$a; z>w2|h@3d~HM}|QBP_#2+V7DdY;RTw|#rr{p*U7eiIh%cU!*|t^o#Pr>D-c<1eZ>O` z&5;VA*PmQR)%*Fo9Y`CT)s1y*Z@`sPx~5iSegJybLdOJ;f!A2MDa8#k`Mny!5kzEN zKFLO^N8tsfcM($@G?STdJAxaW;sE$Gp!2ayOH-B8 zCiaJAVellMwtA&jrYX*JY4^Z%JEE_IIBa|{T1$*oNQw_W|`2kh)Nqa(J9(ZyzD3qvn)gQhqjEybBH$Ao5v8RwmP z*>N0-)O$gi2o4+0nZ+rnR;-I>Pa6a~tp5`(E=9srZdE(m%lVUZ)xMWm?>mRx89x<^ zEIYC4wlCtCK17q>`;24Fyh$>=EIEct1CgF->q+W~PXSxKrV7zsnMbiAJR#^A3~bh` zUE8Z4o~&?ZAX#i_aQ5QZs78r7MAx(lJIA1FKIUWJsc8GLzYJQn3w!ZM9)KTZjIySG zsk*-kyC8PJUWb3jms2lOvR=PdvU=6O9yDdL#4Y*lXU|1Jahmf_VBhw+@zg zF&8_bDvbTrw&RY>vtjH5I8+rZUb`l%LrJbRg?JG6GIVtjh)c8)e~E9^(w!dBEm6u( z2TltlWk{{tM;Oq(!6`RvWhO9Xl*=QHwO(4L2%-K~E9?kVBnaLvIEpp6+clMOXTW}c zcPW8itT#L5uo*PfjAv6+O{bXB&!>C$e9rH7jZU3PdL{Aq}@0jm+y1L0Y zz^{Jr7}ueY?Q@+w1)<^1ZS=k32Z@`{H6_sja zgCpM_5su#yDK(L2?fE)=zjbQ1`7F}j`^3vPL?O4qcE#|}j_c^io{I&M*VZh#X~uq# zDT>_m?qG@Cw^PS$o>H&%MRb;ZCp6By2u17kdW_Th%_*13E_{ig*!t4RpyPTTYc1GK zVOEcueKely>dC5^T_5ndK9=|=wCJef;IgXYbiAy?s}lN|PX*W>Gd&y~#jc;O+PN69 z1aZ{32Woj%FfBn%P%M_DlRE4E3c@ms;;T6t8Zv*YHn$5Ywzgn>VEgWr?;3=i-|20wYslV!HqTp#L z^^0l--hgITEAD?y6pW+_IP82H_$yIRTlgpP-<IO$F%foW7{tu`Dm4^+LC_sOO2DoqZXtL1nYG=Rk3rawkot=V0{uerOYsFEs8hwHmRilvq z7aJviApbG#v3?@|KM|1ll@6xhu~GaRLePpPPbw z`>0ZZjQQ#(X{-1QSLA=O_tt+^uY2F^gh@_6jkUE@85rWWA*zwGsc^1f=bFW1Zc6h4ug z5y}hF@K_Q>5d_G#PfpV_kD;$WwE18?bxJ;6@^$QWgxaRESuKa$OIcoca|)_kiBi!{ z$5o;pK5mL}+;#R|QPgu-N{z+Fna>fg=BLTa{o(vyIKN#ua5E|k*f{Q~|2Zlffvk5B zSvJl$PFnoksI0lR--G___@m>u>(eD5miw<;xhc29{{>LM-#ish?}{0chQt5>1?qd= z#J_+7_zh8z4*B=7+&W>%!CrtcW(H1x#CuxOeVD}a&#L5c7*qgJu=kP{KexA8&I=vX zl$k-;8T*t)-OEV>bLFha2#IB;4P6F5lQeT0nWc(LQ(iNZ+!i&Ob|(~-H_xkjtyg@5 z={-b~>_jcFF*+dgvE996?5Jfc||Jt0fs8jM+V7LVa%=BrFw;NjJdW zg-mutZDnnTyyhef#+(2l34$^i4g1Q;t0T>(NM3POiGeFAEL^KF*SZ>n=|unwsl#1= zrott#F8X0S9>#MH$cmn)7Ok9eZwcJ|C4sO0nN0O$u^Ic>JSSq*(BrI% zq&>x0rU7MeN7G$`;GkR~u5RSpJE169^SQ!+Y}UI5#!|tPCz>47?I!@pW`8>W-9suf zi2uc?EMM}c^FNz2^yjFoe=mb?XtQ!R|EKaFt3Z~CAuXNs*j12s5<}B!B1hmj-@}Aa zF;_h|%OWUWai~DK)+APM^2^JWHYSxGQWCa}Ck3yh3w4cTZxt3C7h8oEYOeomL(R(t21D3;KkPEq|(pn$!ig* zx$%UPsyyjp6P1CvsfLs4vgm#!eX04mxs#f@p<)Zif%ye?j2eGtfqSpfo~ohPPes_A`WDX2rach*B} zOdJs~IIfQuuMdA%@fQBN99j95O`mLx7(h;}JhAEwk{jk08Fpeap;H^sjp-&b=I!H5 zoTbbxh>C4>TjRUEBCq4-MK-XrCXl(J&|lz{SEL9y`0o=dKaXJu)&*0&KOKREp~RT$ z@`=mDHw1w?SsYzG@A&!}qJw0)EI@6{D-UaT&3Mag=8C)B!SJ0^{Y z5{{oMY2F%twJ;r@XEC_Tsa$PrmDq@n$@heJWXM9^X$375lugZ=46&}&7=J2_BzZ>| za)0)6VL+?qP~(60MfhbxTKDF3GvAP($l` z-?cCKh9?P?^aj-q5P*r&-?HnEB~i3CKC?C z4FuL!rO1aYQ<`HxA51@jzRY7Z9nNI94qi3`G&GEP~wl))j$4w_H zi6%r}$|qM;$_bj{5tOAKT{91BVsYX;J4=+j8t-VmJ{^I7zoa4^I`Tl|zaa`xoIJa1 zts!-utTb+zXP!93UU>Xo_(s$hDqh5KUZizij8kA7Fe`jgmQ!k_AR(_oEfnqLrPaRpX=8>!USi{~DFO`cpPrA7eHfV*$u!Nn&m8$J(jI zIylEV#mBnT$GXkNx}V2-lEiuch~)w=wy^lPpc~n2T-f=qO_^GJjB|Wke0)NEe9~-u z=&k<}9{*pHP>jyu;{Ui8EVw)Ea2)=T@E}%~?+WIb`bBue(X`(X$g|S{qBr*fVmIsu z;en=pOGXSh7?i}^UWkKS;3b@Mwr%ER{au`*`!51nfCRtcWDB?#ej|`I zOk(?iIK|sIp+5-^1E3Lhf0DYF;G;jwE^sfH?$&SQ{9_{QuY2K-M3~uLJLDe|Vemg1 zVU9cd|NDahXoUSb7-Yo(0$EYzS0hZ*@hfmI00i>Pt5~2BW|UieGG|u%^<>_v=cW-h zZGQTz5%v|h22t71mVAjU&X!>ezc<3ZM5+8;BMcyrv;HfgF#5lXQ$&Ph{Y-=b1Ttpo zEr39laT$k`Jw3}}6o1w)pYWC{P2fi(?1fc&bXiC?tKm<=qwXe7v7E1U@smIf02*O@ z+)>@n|0lx3#a0{rVvQq}de|nx)-ONmN$j{YAfc!X7<4g&X3~v_Sd6nD1B6HWY5$uG zKth3)x97qnE7Dy_qKNZe1Op(D>2X9$@8mvakQ_rf`Ef6RI11#L*sC(5t{DFr;c;^> z6jW1=9_8?VO_s2A>2jiv%GG^;OEy4KampD3)XQ3c;}`@N))d}9?_oKI3@p-H8MKCk2nLt_y zJ4$^)tao}Prx9$tP<@=}6liEBM0k{OgiLl`VwiT)zmLX=;eBF&QLff6ZmN=I;HXC{Zt7Iv};AB z`ceES4OM9avD8Tkw#I&=(cQLxW2E(DCK`n}O#~X%_z9o#s0bu%Mie!#^(vyaslQWL zbsl38XD+SfA*(1sO7J2DsaJA$nx)6B08JgcXKi305k@q)H0vov^!$w#+^1PZ7c>)% z0ZJ)D4c7HzSAEt&%AT%}KCp~axL4)9M`$l?CfbbGflgq+1!+&zKc-df#`Z-}LiN%o ze`keJgxu!(MpGDx%nRd!pn^x=?H$>zdY#Aa+%y2;F)df$uWz=CR5rNEZphZDy`~oh z5Xjt#=YvLJtI;0-!lUtgNK=F(iK7l6kk5y&5wz>~Qo`k)Q)k9N`;%ZdBQM*zERpi@yE;Ie}o2Z&_YOjF>zlmOU9YL-o zM3EW0rZ4wvSQ=jKusgZpG=%ZFG#x9OyLNp<*{^BnGEb#W?fdju!%5G-ilwGzp(T3=&zXq}FD2K;wuGD}5eW3;VIxO_CxZ6Z} zi)fDVP%}>}L)GOurkK08g()#CZQDDQAt&)}vOeqTf?t@o5xJc`zZy=s^nlJl`h{|q z_Nnxxf@i{5!lOQkE94JQDc^UbcNDQd*GwPTSRX|g1$(~KA}&#ObkOqjN|^q*{o+MD zfiNem_(3OxPuCpfqtLM&`2;!@hyx1{bLi#1F%b8w<$jxh04J)`BGXKBhMLHNiC!(W zc#Om=UYCTd&$XdE6ubH?A`2cAUof!vc5zq6=L@A<(rOo|T!RSyQMTaf@V@w#yVj_! z8DxP}T!?$e+TS5I&Ha?V@!{U$sjCkDBhmt@@BT^d$$2b5BdiuzJecxYS&9PW=ym1T zV5bP3ZoX*nL9}z_Jeu}dbY1XA4663{&P35Fuz+ndv^e*j{8;;;GRKp}5k>fzTPq1h zm)m}h?c6#dudv5;&uyY(#C=@a5EXN@-rK~rREJ#d#>XDGMpWGERGNG4BpXI2I8G{b zo*Fc6OTymXI5Na%UVGLyeoKlhz23}+I-7K_xXv)1F2UJyyTJEgqz@T=g1kHrWs!NQ z5xhC=C?S;n(Qd*plD25)-95?48vD~}-{&8^c%9Ur8DVMZyJ#@@DogM_1tANgf@B$? zU?P8=mkJt&-aBP}r_R6lff7%xP>^R1IAgw7qSUBCG_39^KJ(^p_MQajMRnf z9|Vr8hE5rwH9Jv_IfcrMhkPWy*LxP)l?exb=D#G9YkCIR_h6)PAvKY@m;RIw@EmG6uJoKZQ+l& zU_A9SqE^rfBQ!J+h-wx9JEAz#!=k8}B{o@sj!q#X1aT9SY&43)N3$9g_pw^kU9KqQ z^Js3qXc%pb?(8iB94MnPM1TpMUp8j*bHpxARP<6b$O&zntf#s`;>NEA8a36dm+DumShj8n`ewwx!np|NI=ByDjO!ErIg%8A*L?CcHc|d_PtQ{oWXF7Fa%gz%xseAChRC)qrQeb%H3l zmBnyq`H(YPQGk2<*qTq)Of?~!e8t2b0;-zUQ#j8K^UTpzXXN!%70Y`CUve{5XD|Jt z=*Ix5?Z$x$J5@$M)%{y z_UBnI2cYzVscNA_**SL#^0Nvwgd4DEGIFxj8RD6-9p&tD1uzO43XX9LGY##?#0zQ1 z3%-;o!1N0HWRV1Wz(TUX&w9oZXJLa0LFNUvEg}d@7Fy%?iuWF*$0bd^zGzb~HmA+g zT@`|j0|)H=cD_sITvJ7Jq*O4k68*9CtNRdC6-Zmct&xP1gEmhGN21(i(2FG(KLkgT zGDq>(W_gmh>jfC-9VI6P7{POd!-ilKBL|_hBEfFlT>FeN;qv;v!jQcj9|W_}Rj^!6 znN;~}3=Lc(c`I++$SlW-+jy_A1|X7UM2A7Qf;TH}m4onPk<%3uU2tC!MN5(f!@%cO!s$Wg%cGS$e-ksQnb5%?4rOHMYwuKy>kXnniQS(jI+^)tu zC9YVdF3PQB*m!(aIrpqM_F~&Eo4Ur3+v%G)o9WrR+}{ zZ9~iEPmF4FMcT&pBzGm1f*l(_q?JA_bL8>#4eqKVY@%G~cJNNK+Z8J>C(H12ggdL{ zWA#S+yzT)DS_Kd^bqso0EmSzI>`7Y3Hm{C48yMO?!hAn4hAbcL=;qkDBx|<12bMqA zK_P0DVWoBy$rIEC0yNzb@n@3TG;gkIU6 ztfUZ9EH`p5^8PVhIv2qX1V_m8-i8tcecJx^oab1SHCV(_m`@#Lx3^Lz+f!z}h~?6B zzpeHo$k{pY_E|2Qrx0cI3J$RDTa%n3-3o^I36d*$Ci@7d3@2gHX4g##!v`~Db7ct3 zZ625RQ2;WrfKrrP|&HA6R<&1KJdak_ch#tQA*N18F+3vHi_Ba2d*e#~u^RN{l-O zY`v5pF~KG-E)UT>%!y;AXZ9mzlPKtX%ykcf0{X22Gcj-z-{9t7&!*ydjtB>RbU=&5 zBCGsrT-1zKsKwaeI*&V^u01rLxUXGr4(WV|*43QV_9n^VHBNQ%$KmUbqtY~`Rr6!l z46tTwEUi!RcyqgZwR03)69Ku4Y)m!+_Uc0rEgR%IlMgG!0oM~BeXTxaQOjR+*^%=h zoF;mIHD|1`x1vcdfB(jMa;}OOr}XkGqZSS_-%@~ko%aFOyNALh;(1M|C5)x$EnVtG z*WI6r%bZ>tEosa56If`TGe8uThO&e|jmi&{Gd-c zPwU3>P{uX)kdPWz=e#E=Q_2@mkukn68VIoksvv6<6vCgnJ6+gV%CJ3Gt&~Cba(0

    Z-W%klLdqoCvN6NyQM@-F^_{*%8G{=XPviC>es3jS zh?cvh`^^w>hR~Kl`*Oj;7ID{?kO)Zfg+4L2Xl-k$x=eCq3H(eRS~p;2VAF0kcwF zlh;9<+yOJy;dc80x1}h)&LOK;EfK;Y|Kgz#{1E@`Fkkz=cfq0XHz_>(BgxjI=Zi-& z@FQFgB4+GkMV({i@Q*5~$Lb?Qfi1_{@MGO@9CoS`Kkk!P9w$brCpB${(!D209Rns* zr|0@7HkJ|})|>1(zSh_rI*-s>ES`FXKP{+@_0lLsQqOV3@rD1l#;SrSH3{g6<2 zT-K#tHnd(gEnX6nT(p#Wrry15*SP|vuXcZX)cc5RtJ}J-m1)ahRP5R56uD(HMhpDe z)yN{{l*Q;K``dw5zM<6XIZJ~!D&Dbgi}NEI)rlk9FBWDPuBD${>%Tkt<^eYlf!B-8 z@pU3U5q4b+f(KW~@Tg3lL79Syx)t2MACP@-r5*M&amY#4U2nx-eL?Rzs&Ke`(Egzl zIjydDX5$P(!gT*1OAPRTn_|$MzYUXnXJ&VWNx}9|TFd-RXmWA$&~GUQ_pKsT#mSWn zJq0A-XUEbbJhilSWbqpu%9+;Yg@i#W$R89O$xPxx{LGj0j}!xpE3-SaX~X);s1Ln2 z^3LC-7@ohOM9_>6yqi0mEa-Z1g~pRNn*QW(Qw#+Y`HF?=&3~I>cr}plFqp4+?)MbK zTyyZf(uHQX%O5F*pCyJ6{_@XVA##&unD;B-zoi(G9=LwT6sX!5`zytu(ddr#pl0W< z6ho8iV}d@7lyA%LgUS9%F@AR&A>6|fFGIER!B{Z9-QJhsLh_j_;iA~jUPWdh8NYff$-eng`W}}& z@;iB%XLRBGv}&(o)GeN6i1S&Y8N}%;ON=~zYBdIi7E;; zxa`i7gqc#VgjfX|wIQdtQ3e@hguGFcegN7llfd<7mNd?e*_wO`RsMKCl$wfl{4v2h z?VA)shJ7v;A55TtqmPGnGrwY3l0|KY@ht+hTvP!Ge?V~Vad8K>RFP6UqO1?EH!Fr_ z`LGa%xg77SG6+QD`Ac5{53vFB+Jz3Jd|Ge(F;*^Rt4OoL#gYMwMtlM;NFMsb&b&q- z#qh0>cW((1Dz|o%Vi33AZUs|?SapbqR6#n?A7NU*_sD0l?jqC)vF;|d9JKDC^k|Cf zqz->>(?|bDiNR)oz4fNVASJpFALLsM0a6U#25m=#;6RE&6e?{uCPo!%H!jI>lVW&; zWj`TrskS?ztn(?S_g9L+VMae(y5?zL43J__F#WWP#GLm>iowc$F|^jl%=OY?!Tm>y zVI%{ri2330%Tf?W7(Ri*fUYKTSU@Azv2QjBN{)FnX#J)GWNtw3@@gO1}L^Pg;!}ktr zx-GR~2Y!K-AM3=&8g)n~ale&6Pf<69DXf!x%PK%{CmpK6*G`3Q4ST|xfg28ce}~yR zP*0TRRw|^6QF7mifVdly3+rMv`I%xs!++A_W*wrNNJ%nsCLoe-9SYk_iJI!^<`?P> zv?;p1Py!*KS^Dhn@FT?_!QMw5;mevu12rasU2S?lYQIfObzaSO26`KnMA`+D?R#!w z^DgNLE~)^UB>H{!s4TNN2C2Y)Mdf_$0<&xu9pl?R?KUw&w-NElpABek!EIuj{z@^t ze=_uPLv`>~$#z_#XbyMkIUD1Qt^zvRZJyHl=f>*k5WYRH$7N_TUiNx4A^g6ioq@xz z9Ykn&B?zH$)F*h*>vVGtSP0!ySffydFPV-$ImY{p?53IV!^r@9+#KJ))we zeB;$!T=b`TPhH=a8N9ZmE^bc9m)Hyun zAMS9qGl}u?xMg$!= zIsoK2l=%{T*2V}{H6r0D4>2!#Nrf?cK*3iLRb2F%qfl|sWJ*y*;-kSMjJeSuhpH^L zVj#t!zWSy2GKSs<_zPazLu#fF8Z>Yw_PX7FFxL3LYN!zWv@zyhHgAbtpNvF9PzE?29oo;jPqmyDF&^_ zhP@8MQ%gLa=pn}SPtP^lFsk!?(t8waEk+A0?E8i{w^RpQrjFY{#g=a{lviA)n|6Ps z7`Plb|4oYFro=F1T>Fl#%@Tg$6NRT+2k!z>3=cv-ZdueeE@FLi8gN}W0#Xb<=k2zO zu8UW@wXJY0tG8PZmXJ8=+M!{4zASFbn3i>&RM`8lUnz#~SXwXLR>;5A^*qA1sWuk; zvf;Q)w^u$N>qk5+Cgs3yHlA=aj1e&$ zWwN~4v~RlmAypr4a@q?0z8CCq^@XGLd?ft)QK856j%DlRA{2f$;PL&awDtO1 zIQ(kc1Ag@l$b&&W5g0we5}wFLo~STSv^-CYUQetIPbe_#V)VKt;YDENMFjIA$@3!X z^`hADqJntSFnZsH@CVBB($7E`H_RCzAl40UrWtR}GjA3~A6^Ncdo!F|FrT0_@B92d zLPmgY(+4!_BbetS3iA~^^N}R>ea`RuRKiz$qrvwXv7eNxpR|+T3r0UR2|w8lKaDd# zWnzC-et&gFe_fcrVV?i1IDfM`e}fHwYe<0YjGwtgfC4N)GcMq@YJlZTfX!KeV_twy zZ-A>&fENtrzY!1wfrT)_{3Kuj8?Zp)z+lzDP^Z9f#=v-qz=(~&#IwK{;-EPGpajOC zG+0n>UQkwC5a8C#*$66!1Xs=k=1F+h!h-Abf*X5-n>T`6AtCLIA)OK-T}B~2u#mpI zkbyYC|28#B|0T{q_D`A`EdKvSs3yP=HJ+#N|Flr8%Rca*3)PmqY=#1Eglfd{1lVGX z%f6(|qojC$;0&UjcIZEF1|hKCZ}{`Ho>3p6KM%s6!itSd1Mw@yFA+~r3|`&{E3)8T z-0Xh})nbVM5LQ(FCaf?vxUG@`;0zX7xM23)OzdpZ|+9e7pK3RI|JW zgleVNCx7D4@PExe|68HjKjEMMQ~bHNlk(#4@aGJ?*xvW_0{>d5mPyIPStrm_dLf5RC7 zq1t-6!j){HH%VGpoXIURg zL4<6>A$?r4JulHSVRZyvf3=mMHp&U0a?xhOZNdo&Kd|>uV|#+dEvzb{*bbo)UFAG+ zQAM&zFAgQxq2AS>>6aXXDDNR?K6HH=G`y~vNeAH1jrYhvZK6fZ8Bm!ob2Hxi8F3QD z=3a3#pH5_JZ*YbHsgDxJF*t2(ySU+nnpE7i^^|s-^lOKTo9LhGM~l|@qKn+-bNWD!ggd7A#Lp}su-A{aYO-McGbcNq z;O7s15?z@%L@FZlpGoKW&G1^vu|}fxDb_ipUmbH{-Ivs&IgDr#+&~D@Gy4Ml{Gm~V z&=;D9vr0c;C1gwIi)14Enq{O6{bAW2waZfWSC{*KO1&W6o-0-Q)cZaM$d&4-a!B`D zNxbg+KY^No0J=hr$b;`$%C|wT0vD!HU&=3Ox0;(yxf^`%E_7!=5$44;F2*hH-p$#Z zdYMn{@A)9F%h)P_AHiYIw6Qa>2{*u10cl0=BwYLt%VNM=W1Lz+sUuK`Cr<&}8u6pN*Y{ZIuIzNj>%}ssC^Zqq*9@z7^ICgew8v}G{0y=A2 zG8u0zFz~+AB5{Paj72r6lAax(w=r@VFntT{l1hE~)U#uWWPa7qjN)=JS2G^LN{49U z`&Od8)#-;)+HZ&cYeQv^uF39QTwlWBIXJWm$RG=DN-mXG@5M0DAfBnW)kOl_J3(HU z8~hlt4!4XRDH=LHVDM@LS-CoT&8K_x%elhDb+tRRdxhoZRXnLB2xy%!$&Dx{k(`2+ zz$bLdLsoE?Q)EPj18=r7JRyF%1Vb<$r<1!9Qg18*}xmuN1~W^&7Z+=6nW#bGpK^6rd5-T z;Gq_eoe`oD@QI+H8bjALEdYm(sWqT<46ciyPv{Ng5efeWp~KOKMF;q>7(&ZnL1g?+hu4G4B3!W)6#g6AAiG?EP2M}xu;h~`oOW=O0i^Mu`*Vpr>-DD>6 zGh(`rLo;jYr~4KK!4(o2$-soqLqderhk0M^UENq@1T`4ch9F2HNyHg-HU1WE^)7=t zDnr&-tX|^&UevpcD0yQ6fPhA~i&ouy%3pSaKQmP#={|#!QPT+Bk7+nTf3Qht8W=e)4)5 z2(*;M%t_E~OpYm>>>a5)wwcWQA-PDEf7v-{KAt?DDFyU0`HR}EZ+$60gcV$yYN>^< zlh5i?uV$$^XH$FAkvnm~po9k`%4v`U=&7;%!!qQ;d^R`}`EC1@<*GEsbdb+dRFZHy znhE!vKD5l4bl;ch$!)R5o#~h7X|xFp-|^E~E;2YtGr0vadowe5T;Q3_NKyQf&-fDX zx9c<0z_G#tSx?jfLq(QELY8C!Cu2hv`9V5@M6681UAg<&F?U!W>t^fVMf%XNK1j<} z5{;Z*brnU=3Cwg>Fvy7j+rv!SK**$!cvX=MZ&Er1dgV7RdEt^|&o=`q#q(b-#~Z8WgAnx+d+k@5NWUPf zyPjIJqADe99M74v;W`qEQiT4OMV^0s^-hj^!5itTM8oFdVFbf+&bnII%@_G^xy^ z>-;35=tNcnT@(qEOWD5e&8|zyrd|PGUCAjaRB+n$R=cWgZ{gVmm9E&EHD(-dQxEz z=n`Zv@6FZvmYh`$TU99)GE&CrD9PFo=R>YZG1=#<8S!dB-HyGJP|e_)f&CimxSY+m zIEOjZ^cmc-VNn_b1I{g{Z8w}91THA!z4K-=$L~_QXt{Cq%nz&8TtE)pnd-Va^ z&~#U9B4g{8SfUT6%>*LK%{{rp^H{5w*a;FZuQv<}Oj?*})yK9<7Fh@+Pn5FIhz}%M ziP}N8KxLo^MCV9lJ6LUAAQ3ud8v&P30FFy_BZP&z7G>E>P}ffolpVg;8j)5XqSuby z1fiit*k&OxRs!Qumo?CJ+%6)REVQMe4R=a}H+;hB?29lU>;_YL`splpaA;yu8Ka?S zA_pgy=~>fBIk{Fib_9<$vmkVcgy2NaqvLTx6d$|~90hGHweK%^F?K_Ir3i%uyEtai z_^c3v$=tD$2ywWTG>8b5s2dH;ucb;I6!?`S+p~d=mrrSz+&FkdF_Oid944yu(Lz+ zPL)~J3wz`{rkJp9E0I&D=i-ASSG10i@V@s~ijQP-n~gB_HPDPCbw3HxDe&cgDYI=F z!1N~{CV^BfH4RVUs^7V^{p3l^H}6_ok9F|6@{8NZ*>eh#-rR`zfub_`#_eHH+o*sF z1npY!mfNV5jT3;?-+7E-MelNt$grh1(2g9Q3+h z!=(Bq(nc~~%X;vcvwxy_aPKuOD?2?(k<1L1c2{T2ba%Jj=%ZrDOw!&? zLr4SLJU=3GRsTdsGEZVJ+dRQc2gS#hjIJK@IAK-FV)9SxR`YA9`CpPKSd^wEyGCxs z(`m1cO@)#q_fzb#S`KP0EaMD}Ftsv-()Y=^ZU*`029AbIsk*BVJgjv<`btsFPzofB z1dZ}`*svX~Ntc>2bB6y*_BUoM z*gluz*u8@(br=nixG!`ssneLR*m*_FFuO98d?_lkU9PQSyjYSi8K67qlaKklIu>+Z zy{cJ)e$?DlNRGMq{PU$IW+kbuSqW*|hF1LC+LEkm1hVe4FtosiDk3bSr{4>iixwx| zU@E(pT$zD+*64=6u0={LbVQUS4oxmR^mb3d4teeC90mdPD8tw=#e`Kx3Y2xvHa$PT zIASjAU|xr-1~6{a*30(m5f<5=4Porygi{Wd$Y5*KZ9QbgWI`>PTJQ9^+{R$t#$TY+ z0+lv$Zp5*99xIiOg$3L7!j<%CJur5nC(bvz=|oC3NkC zTwjxgcA~A-6U<#)-e8#L8n_Rwtq)^lvg2-use*NuDIqlHt{9V5lYF7y&gA!k(q82; z?-P%heMkD#m==B5zEARksav|aLH8>S2faFzTC4Cr1C*0~@!)BNR_3mH^sZfi)i=)Y z1CIw#w&X+J#|_lq4&xAMUM`?xEv^=tf>}9^WHMI1vF0koth@$l@Zo6B3^#Dy(eI%h z?`s~X>N}XL9F=-@#yzu_fzpkO9&3jWGi!|Qa^|bGo;=(0GwlG>y1+ z!tR~uR%S%VN4S$dcZd>Z6rH;m?DV}dqg0dsU}*0^Wcl>yZ-o_q6fl$?@;>C@)q3~8 z6IP^)fu6#ZpYrzqV*=x+u%ax{U)e`9@^1T%-=43^*6h*w)%ABc2#iiHQI^*31G&Yl z$rwy|*Z&`d6`?21HtUjiB-Br2{x*S87EmEE_cy`{IdS@Wd$oq6ybrmue+ny#37$=) z%gVbvk8J^^-O?K`GWwao0E88}DbnwUQPazm8)o+8_(~RAJ;4~1KmkJ!7(PZ~Zi9ou za{_LJ74;RX195jNNfFx?G*!=#vhk}Xg2IV358S5)e+ettoP*)CWU@iN$YmF)61Wd$ zL$jru>h=L)1xxIdqb!tBt8PbIrn%v#utLU^g@(Pe^JGn?rRn?-5LR$}%!Gwf?q=9y z54nz>xu5EUX#>Ivpg(|OgacJ{lLbS0sJ-8L{z_n^>j$Wg65#T>Es0_cN&ga7+~GSw zARwuW5W#Z5l7AY=+0D2T!ZSrY?@j>e@WBw&Jjk%+yHN}S!iqaelxa?APz=gn54Jeg z)V(;d6H64)nm>dU{`W)gN(ULQ#T(u1&yuqyXn+S>ru8H{8x@0Or?vd`6gPufomAk# zb|cMKK1K&H48sdH0Aa-+is86}hb|jg-e!S-u;S*$_J?AalS$-{3UXmf-&SE+H!}+j zgRuR2QQg|F7u(+kXlwdDrfl@vJC*Y6pg$DD*2+O&Yd$*sTgC8ddnIej)yej^*56)i zU$~fdVBY&nSaF3V6RTdd-%bAe{;c8-NovtSKPx!SW&kK)91ikKn;j1EuNNH-PmJ{( zj^J@%@-RQW;y?OhfA-+Q=EKkZ*;hC?yin1w_?Z8NCB@sD0UDo}N7$bOG!;5|Z1Z0O zv_dUMl-tDfIQ{9*sRNH2ZCT_WHhd z{@*^>-qI@<{M-GRF}=3@VFG-2;0|ByGa*Ks!^Cadchp5zf>vQ1@h>aa^vDrC(eMzH z*Ftg+`Pz|hH-Ur>1{u!lMtvxYAgLFa8z)P0BT{)Ac)N_b!bIq|?JE#dD!IG~Fnzr+ z_m`|Ohw=*W)yaV*aN5Hy;Dt_dT+x~*L%Hn9)62lIw+)K&aTC~37iup`0t8BiH~BKI z>mg{0?WiZ78!`cs0_J$fc|Hjl4pn{=IkZ7cB8u2_wp$Yg@~Es6kO2aR4cS7MNeew^ z1gus`<%F-nq=LTQSZ`IQYAOaP!qQQd4CVM7Rofx5o-c?FL{sV;j!R3`Bwso~KE^&rrCTu4HE{C3a_~T0uJo^Sn}@%Zav>m%oIi3Fhr4!*ZT85L9Sj zE}ShJ^-?`X&QwHJY9cKMa;TV5;=PEr zN7XzUYwFWFE!jr?RdykyiW%r^%_UA4Cu5Xm8})~I0Slum)B6qg*qEwCfkt$6$SGP=fD2Ok;-Agox% zcICf)aa{%zfBqTo_X5UQm(M0^h~duLt&&_A&v5ztorxrz?X#Zw1Nw-7=U-?Qz7;|7 zDk9;rgA62=JIL(16;Zj*Uq3&u>sKX=dB;S!%IXRzhNmE(OGK%>{m%#Ak9n(?gsk!D z(1|F|RwM$7VF6%(<}_THayqy!1PstTv8%XOSvN$)xZ$HGlxdqXt`{HDu&aN**fuzm3RM@V4BfogPJW346&ad`qLpSVR}J%WK#I4u zKS-&!U_08)eV&%|R3)cs7z29r< zdZaCi{ThE2F!GWcKkbFp{w!dSMTNA~www-qQ<5uL1VQWCP-WnI9nBg%$S?RsUZw5% zKkk~sUR*;3qpZUoT+9)UIEi!a;tzkMog@W>72?`iT<@;FFuthgCRBipp!os9iu=MT zG=~Y$tOg*LI_x-Xi+0_(Ua8GC8bBE_k9)mAqQp5KJ8aiIo3kk^9w4Dd`8Np++nptC zXyff+bcgap3cRp~jdPnOko}_TuXSY|n4hpu8}2!k3aJ*7ejPr2yK{WMq1@tNTf`lf2iR#dKAd{7X_HdRng!K(b8Wh&;#@a9c{F`_?WEI6phb_ohfH&RPb)sE});niahIUM^AK!Fk+o&mc9q}Pho|s*ZXl#!Z@$YQFqcA zFG?VR;dGyv_(uX`25-XAn;FJ^yY6oj7~|g6qjzwOe57i91b-GVB&3)m?vV5UvjT>M z>r>T#S-_xt>uChB6sr3rtiZMNwNbTHVdOMX4UqCta_P0;p9$#g#CC?jd^hlH7=V_B z#Sx8|N*lIE9PI7~|3iHz+W=U~9xP&mvvQgviAV*=Av@Xz%pfYgh;T^jHGfS=;cyg~ z%g7l=%uQU0pE47)Y4C)vOquIx@Jfveuk4G4I8I@@d#bB)?4vKl_HZP`_>JFT>id_%ip_&4U1$9^z8L=)5RF2N!9NNs z(6~P2#870$Is(Fqe7+ASv4F6mur1d2UkfWDj^4%n5LTp|$K&M0ry1)~-TxIqe&$;^ zn^1C|P!`YWb}KPSK4H`5T@@1xeQaXWY~ng?LJJ8zspEdqYsilm+dz8i*rbB|@WJz> zQIcff#dbn1dCEC?CjOUV_&j-uB<1t{lrL&2YtAVfOc>qqDLb<%yXPtLG!c87)Z1w6 zb$qEA@~J;wY*X9$9w*#R{mvwNdOxjKE)69i4ZVQGt}gAsHxb(U0Hl6(# ziC9wpqCUN0BAo`DK`D@NM?HhyC4(^`gSjDtbuNSb*NZKWdM2MsCVxVvKtrbBT&B=P zrZ8!i=uK- zO2{#3fajRayj5Kng6aJFFGhcmN_rJKR;12FEt@A#RM3j+-{FU9|h3H@tKNaLSiLXH0p6C%xx{(l1#BKfzN(75prOo$|3 zc=^VXsAqFm*4A4a=bvs7HX35_d&d>WD6EYQ)9lWt5{(f|trK@8D-9<5(pq+|AzWBkB``u^(LoCiJsfe8WD zlRn_;91l;p%I3VWo&cCo@4v8~&=;np4OzGx`m5uu-UBcpV#30tyNZMYhZ4^kiw=_k z54Yg@GoWjupit9fNI5c#$qexZj?O&ceN-An8(RPqVuZ`)%hJ$;K$u1wbR^7UcMz*G zf|?k`?)8s_xd52Z?_C?F1N^MGoZUT7h_hH&{k}I zD{uZuRSm}DPi#mZ=Fl<_iAp+(buDq_d`aZ0^X__gK;JfslHEB$=EGUHN#@en`Ya=& z(L6<+w59$nECSEMV?D)d7Vjr32k*hG6l3E!j_@U|Dnnaxy z-s$E*Hcm7G-~JDFD(xJ1IN`oD#I$HHh@I61}^n%^=_1LkQMIrd3RbyddC0 zy^HBd35t2ojFOI9H0o1=o`J%brxfy_7ny3Jt=qc{!OgL${YXCz#~q6+^8c`Rmr+sh z?b`4MhLM4xyMzHnx(rG{KtW0brE>(7?rs=rXawmRy1PN?4haPTky50)bKb!#?(4eu zwV(Yy`~CDj&t@$@u+}W}1Ix9}|9PCp5269wB|tOpVn{2}0njmgUQ3OY=U%l3Df3ey zy_HP~-j)mTj*lG!Mx}Hn*b<`;@-%&Amn!eZJ@geo51q>P_tFw`mnBSA+hj2g(y*WX z8afM}+{;9_o=87zxfdyW~gj;0GlQWZD=ImoM8K6zro9e;ChC^EBQ#it|9hG-#1je2QvL=Wlcj z0S>X){D|7>DQC)qD;FZFe2L1sAra6}d>LSeqhVVs5uqF8&WiE@vMqHlqDxDg3Hj00R zFMpnWo4M2c1v&%GXAezP##&dy*o^^!CPlZFCCVN4-nLLu){Bq#Jp4-2LEssx%ZJX& zZ?y7=d)_0nJ{M6&mzrcas~JS%W9*BO)+|3M;h%G_T=5dFSM*{}BP58!Z8^n%D0bAq z>Z$DSaek4>`iy$b$>8FQj1k-9bX4C>GUdiHAGWu0eoMsG^SmV~nHK1ZK7{pT9=A2e z`kckvugads#=biToeuKhw*l@Ldt(VckX-iGQL2Kf@#6R$r-FVVcL z+nml?4Gh14u2?h?uYrtUNZwnxxv@P%0$B+KVcs!HWfz;03XCs$@*D#UTIdFfL}4Tu zyS4Aw^*k`Vqv0n`tj*Jle-Ghfo~Lm|Y$sZ)wi)Zvv-4_BKu=MIOm4-uP08iiI8f-w zulJQ{>$uKwt-8**f0uaRD=Ok|fvRAtfUo6Fi(SCTAbZ=k-QRSAZOfI(Z*U|9-6(H+d!&ei~cH5lEn;N$dulIp>T)z;IX z23}?{aaEM#%iCbU6oSEfJj~D5tqL2!uY_{4stHat!B+q?j-AjfuY@Nr7%aZFF*zjY zT#k@848~fv4#{W#Y7*(T>t4!F_`wORv=S*+7128qF{{qpZxTf=p?qmVnuYC3RuQSZ zVD!@DErBV6V-R$7N&h&`fwqr;C=r*8jSzf_yZrer6^0Q`#@kL9&_2jT6cBSulW-Z! z=GG3FZIxV<8uF-**t<*3rWa`E60_)IlV1&d2n7p{+|4mTa7Q6zPKgp6F&>U$D86tx zj>E__iBavt>vN*6_;rf4cas23UpB+SNK91*J^KXw@T5}%i*jUFaI{)?Nr>u zm5H1mOgt4|1&_NPI@x$n5)#&1Q5YocVGg_TVQj>>)Ho7Ci5I}Q>#0)+CweOJ?u{hB z?+KZ!4~3PIEbJ5WUGM2o=oC>uBsT%+5QUbl3O}*2j8RRj2^LI<)k~D|+pJ5@^rP|& zGD^Y`E)+7;fyN}VI<^N3=gCA&bO-mHrWkd+3|rP8I7yt46?}H$$~l#q`^mDXH+2y` zbgq(FB&O+90lJaN8`rK45%E$QD=)b=Z#obdH(roV`-uf(nSWDi|gg71xJ#;oA z@urakAtr=}ND|?UqgQEUTC}HZc+Xukl4D?WXBjInB(#x!LG~t4I5P{D!CH71P?!1k zUP7aI(o0|#cO&klCMxTZofmt^A5&)`zW`14lQU^PrEJIh*<8Lz85+URslQE~p_N%0 zxU5=dV3x+5lgbR3)>Gs0OhY#Tp#Ur6vs?O&*F$IHNUqJt^%1BF~$hP^&Myp3x|jhBIi5FodRHf-heN?D3F_W|_=K${1{C zRxref%llwdi!T zz%X9-XFWBb>qXB4{T-I#5?mc6q@CO}9&rUl=CG|~c!-}Kq~Q~khq;Rh88y7u7tn4~%9l(XDHXHHUob;thbd1aBpoAmUNy}K ztEpF^kSEg9uhS&ynV>)nlABb zWA~fJj((NLgt{X-u^Pb|j@8%;Nv)JAHp$wy12kF?f<*^bzalmUI12aT2jCoFNQCKn zrR5zg&twFzs)yId4iF@`sOj8dQku`*@>%BI8IG zjH=CROSN%dn+Nz4Df^e#@A#;aMqyerMQ@AO1uGjj6cKTKCFGC7{BjqA!hrB)(|fkD z_pyM+Z$7HBEEuOzUeBkmGeYO@I-={#SZZWJsG3AYW0<7H zQ8>KQ5JExjV!%k^m(<@zfdLYn>A-1#Fi_y`OT?#`lXWDtDHP{%v0u?;woaumKT2Ilx2bBC05{4DEI5#{HE6 z_Pd5tM`2O(Z3W`pKogu;O}&xg!Ed9mA##N=g=nT})X*dz*B82vGRj;e4>1vbfW+o5BP)0Y96;@5!;712|)_x@~w2hriIHVJ(qL_TpNm`>rq| zE(9Jpu2T-ff68Jc5{6d;@60Lm6$99=N`I+9d2*<@ROIc3a96%KBQqDWy#%}bf?pwmTbnr8e<3> zN-~qrJvKB^l;ewQpC6Ifv2u+E!VIYAqsMoGOS?bml-$zm^-&AQ^QWxbRL!I-X1?bh z62Lp^ojf6i@9zu&8QzE(iPE#49QZ_}_kWOKh zgMFBcgn^!QtA=pmH*ya6>fp*R>D#z8CE?%3oG?Ok1ptJC0>mpy@cXDmG(|_Ol4jrq zA8zB;sopQIBup;on%82Z{c=Qy=Mo_ITHTO__tw44+V;_rGG8hz9T@ewi-Q1uSiD1# zI({^$Jn3Y*N%!_Wr`HT4R?@2^)5*y{i)ng9XFrZii`uwsTH;c(;QOe}#oL0|Q>MK6 zrg>Dcl;-sm*5*2)-^!&8wM!;4Oy)jzmXp5Oj%5-K=kP zN?nK1aDNU0%qK=I@P& z4ur~aS|tu33zv5LjPvynRI`$b_=iPAz3yLl>wINW=_Ry*1Vys!iZ;quIBke8y*5A8 zJSMu%^xlZkKL4usY8HP?c!7GQP$Jd8Yr5Eai`fXX#FiUx3bUk5qxFN5y{*;v_vJr{ zd{A6L5^ z9awMT(G3+fi5tk~$tnbNxjrLSb($)?qF%@@0My$@t*wzFCd#2+mQ(PzHB*GIRxpJI zo3`-of3Wkp2`QOct5@Pw75BGxaT@kQu{dl3lMsu^T+2mK73Mj8i?f?NV+Jl&CGsylz-~**F z`a;Ot9E{+e4Qy+Mon9cKx9`jnXsqhuwW2Ta5poq*L(RiNv>n@62uU@beh}rVZw0PR z+q2m-1~BY?S@cElF%&HuS_FJ=gn95=-_emac-#Y-S$8WI@sw&|+bh-3*-?dG9rR)j zSMl!FMQy2B-%^B(615+0ENxW7I#e$K$Ncc=azIKR!2ZY9al0hyC3v}c+w#Qw?iy-v?Pl+Z-`;c%{rEScMKPFtHQQ;( zVj(T(jFl(YMM{OMr#0mf>jjoNt<1&*k>)DP@v!o7-f(?StOFzs-=ATmYMTWB^5)Y$ zN%pb1P0&)_a&BHw*ha7!V3W*Q1FHKXB2rU9s&FY)QB|=Y|Lode@ym~p z12W7K`o*)b->bkgp((83#nw=&duD%iZL<4fPK$le4+J4RP6!dQyKoYcp`?FvZB}yW zMHMmT7mDVy-~@zAcjamd$BQ(o%)a&ia&1zFrX|3B_w!!;856p8ZQ@@@R07m6pqMcB zX&A*i?sZIPp#$;juJa{9?x5QR$jx3Us$9VG{%@`g@^R=y5>VU}pq(&I^`E&mDn$+p zW6WP5>DXTtK_7p2ZHCz!Tqs!)anJvBZG!k+)lc7pOHN!~Nu8fuyEf_Q!%k0qk=hfV z#Vo;$)?*Os{BN#JX#=Gn^ojVZn_9e#=)+DjH52rUEkTVRg|tTeLJ&0Yx1MUSPrpSg z(s3(sWij-(n9$LZ{vQ(gz-=i8pMxZu1$=RUbfM154IX_Och>-DHQx! zQ~g^^C^w7;R+oEQr&%*J-fjX7k-Hq(wI{Is`1N2L(rXLSN8jjtSLy@N{zjiV1}x)VRYZ&@myYw!tdbN7!5kBblBGf5e0Y!i}QfEAt2FnrhUq zp6V3)Thc+S9ZXg8DTlxJR2Q8)%IfB!d#VYZg0Fk3hX&aNCrgfJJ&vz?svl;33Dw5_ zTTeAc1n?ByQ*9Xmwd|Q}GmUlLI$cHv{VOIk>+rL%?w4!BeZEos<=VAbEhfec-EQIRcpDv5!-H*^voj!5S#+3WJYcn;52Y#A>yeSdo&#I7ttKQpAfsP6BhGpOx%XHA7V?u(1 z83fM%I_y+7Xk+~4+Wd#Z&cbbf$>r&AF_U3+K z%eoS~HP(<>+*lH7k}M5e)%R?gYuTu8BUdov2R&yqOUn1_!_K~s=E$nlor6in!BYrx z02gI!_48Zb`<}1t*iv&Dyd@W(8iq?MBF{5&B`A|B)(@U$e1s`WGWL&zC>BFVHzlKx zPI#Jjz7T#Y0x2%Ju>f*oWT6KOOBgJGeh11%s9Iocq&1er{wCoLE!*8FJ6y`oK5_SJ z3Y6MZ=^Tt;Y@$BQu;@Ju8W{2h;mtx7oQX759E0QmUbv+6DA5pBtiX9np@z^sIzVyY z4F(reiRLpzvdt@I>U;@-$+n4#X;m#wQyI=RnqbWxA2M0x9$oAKp4>5LX@P?@p&pTX z8_7|{z8nff8I3u)AD~L9v;^n8(Wc((R;v+H(uTE?m}Bd3RF$72C&8UOJ<5VZ-%oAp(h+xZ(P+0a9Bs4|DSB7FY4wA`QyuMo3$ExU)hT7T4DH%5 z#tKpMoc1Y2*sVo#F0rc*_NjfWjH^@NWVc7hgb1n=s`(Xt*!i)h)Ol!K?;L&DNl;rJv`dvQ${OT3XnY@2NRNroNY_=g*KO^Wx^ z&M%gka7b!=XU*&dFqczLsK$anI+V)hKo+bTKZ`Cfdmh@YX`uWaurWRtpS!JIoeYRS zo?Q9KJ8Na*) zvmBNSbQ%#Bsi*ab9e!Qu7HG6}mqy87F-+qWztn}D&uW+LuUeX}e>c1MI?Qyll*em7 z@44riYO`ibnb=@i+2xmS$n$x^mXq&Yi@W9wr$3)R65=hrI%+~)?nJg+EI;?Iuxq(G zvF;@APe;2p=>LVOe6C#^LH;d9Pf)KNIKc;R(ud&0XOD%L2<_Tv_)@t1;oAHb6QY7M z3I2)+xxiTy;OzBq&dI;Wgk1cJ%jqBpzu_YfkrS&&xqMT{eor*~rF+ea9R20$uU(s% z4z6>!S0FS%apkTAIwqt6RZ0kG`ALTC3D}Yhkd2{+C0NMWdB4to;~5`_VTc0h*Wd5j z#Z>PJY~oii3JP?fdL!874NitBbt(&q+kRvdSF%5d*gl3uFWZnx<-NvTRh@_>Dr)ULP+YQ zOmt0kA~9SuDgQT!yy0Hn6qn~%5^^u8QZu>MHMuhvV}0d*Q*bikb96J?1br)YN~dPZ zOq*A?t9*50ibX*JIwn-5W-=1|Oj|Iu`$x(I+mivDyI&JiXa6lGl$f^G@Owk@TM)SWn;uImB zFWEQBrN!hnDtiAlI5i&lLo1}s(IDtG@bf=Wm(sJf;{W#G^nYO^PPDOB#5M4fh|i$( zdn1l1A=vg;BMvibAu}5I*?X6N-H7vB)TKC|?61Jju8IF&fuDbly5ySSP7LPq8&h!t zpl_}laqybh6ser@Q(W)IJ?ITa13!O6U7pJbWu!S98Q&{kedd7%e$F5h9$Ppga2hgi z1L1rEN`Mb3t3!0Q#|n`qeYZ%4hb% zk3+;Tu|&&nKM!?@rvYbT19l{yycYUQN7EMLU*2Y#knu4$?YV*uN}L^Vn-_tg@5qPS z6sUfvdns{HiA}+TMd*|P4C!uN;6t#=Fs1SSxn+&j8d37ZyNQ>j36}Kx*O0sDOP88}k z?Yb^WY&PP@PUb|TtKmTChQC#7>zg_yOnB7zWZkJNRKCP~Uhn14;y&HLQe*i%iPo>^$O zfhQ@ROseu7*A;cvAFnjogy8F=8kin5l!4yQ-6Vb4CeZQIa?WLJ3e(T8ShVw&-o^Sm9Du|Pw%uu+1I z7q@cL{v$`nC}-NQWenYTqfUm;)f^UfW-$dYgLyE@DrvYX3C>sNHA1y zQ(L?N;#UHhAN$Mq;@w4nMZ~T7kYKtAKEYnEo+C!dgaAkeh}#xJ0q!?|?au!N2&oG& zsfTdL;PhdW(edJnbVFY(2jWUv!CfpJT^_#020VAP!)FO1(Lm_F@=xEhc(7v{icoP_ zK?q?4BMm?zt)BONFn%}%Cs5HO)kAsnoLiTyQxh;|1wxA9Ksa&G52wIV7hxxm<+*xj z%RL5pWawr&1_@J$s%=PsO;9rxaTFq;$3?>R7YOLBq=j&EP<%iCA^*#Yubb# zJvgC3&_})~w+7aT97C)Ex!&*GJ#pKczKe#nX3*dG|d+r zMuNBGmVq|T2R_W+XNV#i;tXLN&uN0FW!cnz++|Z-f-aJ*q@oLGL8Vgh7&W1)8NvOK z;>ChuyV6sgZ7XyOdFt-pkYq_mNU^Lc>VOs&+o~Qq*O4*x<^x$hIyY>b0^vn4k-{@|cmbOQJ}Id3BK;I5?DP z0~@p@S0cHfci+bD;0R8jT`}tGcGMH6#%G1@(IP(A!zC$Uf-uCNYWw$+dyWUMf&h%? zm1DlnM?Iby%jBbPtf~vE?vQ9R)kW$kbG={zcgR%(NX+|U&G4U=3A&RAtyg1?Wr#pA z?$Hu1vu9=5)M!9%vagwnNYoe>-F9wE9bzYI4bnGAt{tdw)XH#)Vy>e$&@z!HYYM5m zb1UB~l!*bZ^`p8@KEvFPsLmIHy3L&o32&-T$t=x;sv{U1qRgQo?hT944e`i|E?7fS zXlCS2ect>_cXEQ10b_BRMuoSH0XCGL1C0%pPP*p!1L~!f^0#rvsylrA_yPK##Es0K zMyVz@$t=E%iLU}9B4lDQbZihp-A=f|7^X{&-RAU??D&v4=TGI4asg_?&L7OQ1BY?& z&#-ETc5I0`z|^pSG>&G*7tTvJ^l_uBK;59Nlcs5NZ}_}>e6Zt=_U(!;C#5J16&qcQ z!0hAxs)LDu9U6x-1Tx)4N9d%v{MCn031x~I6?11B+Mv{tavKUcD@$`cJFp%sR#&;b z2}6X*JTKLM2SZf6FcT;vgFbJ+LXX#>4kd4ta^-zmcpGSkb( z*SpMk=K%oo4o6>$Pqut9jx-)5{XJcCUf-(>7f%biT^HS_<9&tF{cIV!Z!f5%%H2iQ z`WbBdN!zPxQ|vzz^`{aI^Z^Dp%3l`0A7FXa2$1Y5@)_v1Ak@GFsVNOMFb)n`5c!zM z1{M+N5;c!=($>xAjnkT4fX{Opd=9jnL2ru7Py1=64|c@X|$gjmtYt#8cL<|=)TRW&f!(}0L38+-2Z zN;>S(dqecMAA&={jaL&Mt%q3+ybLkDo}9v;t?pX;A-l4QhcC6;YhkGm*~jmvf>*~! zNVMKpLJ@$VbQ&LvJV1(`D68UywN@&w4w3EyKnPTQ*z%HP!`P}k9wK^ysh#qrp|aYq zRgvl&n3EsH&}P?zNei)1V4j*8;(J{;cYzz_Klqe$a>R~ug*F&YG?jF78vDCrka(`< z&w+60=S)immmzRM5>CR0>9<9ec}sS+jlw+0Gqao?a$z$C{zdGK9S>`tT5!V>fj(+Cl+U6E8X`P(VT z*5wbCQu&vP6M7Gc)%DQLH$qS7&4S8jy?rOybaVPj z*k2m8DS#0g;=?@Hy!pfG;Z!rhklxl3-^!X7J9cx-CjE9p_M$t+#-7*qNpo0x+O~>a ztDzN@Fj4G<*bbKd&W&xdBd;CYmL0sg9Rk!25yLLYqg^unT?+4As`TB1#Z5Huqeikh z^>&N?(cW$Sy*u7}tPGOS^gYfwnf;1wE{6TP45Nu+`}B-^W*GbYE&C#9;D?Y(n1PHA zwf{u_K-&92CjEEd$J~Ekk>T*gqhG)ej}!+3iG=r|&fG8HhvCTJ(UFn<(VJhuk6Fu+ z#detX+>s5#vE8F%kLbgDyGIVg^onW69&^WDsAC_76N&o=aQ%}&Z`27_K{cY~By8>^ zA`-_Rb@CbG@P|i0wEoQ>Cg3%>K(QUn0mswfw)Yc#pX;C+o94&JM`3&{mhT=F+2HA1 zLdpyD=_~~X5FeV?Y8S};V%+(&Dd_LjH zx0=5F;k$?FsEaw&)b~p!35%;TyOMI$8E-4yGw}R2D#m7Oq+uv^6ZHv-mF4RvTaOB2 zSSqwx)%5inp_{*Y9`a=#{-X)yT5)_;X2yNegt3Ln$GFNv18-EB2cjMElSStp@#Xph2{s{AS*}pI_mN)bIRv z(V)I(`H_!Wt}Z`0?x6@_K9~eDFy9;W2pAlf`xhD{qoqxxDDx_SLXRrWpUSHDRS^9V zX(x;Phn$5V)Gsw?3Y_tq8su`T8?6TM&mwLqi!5EML04d-sB1OIy@@>dS`F$micu89 zVUA{&mVF(orWbsz2KBv;*YmnogCb<#B)&-tev@QY+J{DinsJO%>^{mGr|#puF-D_7 zea7itS2!y+6j*X58G+YmPzZOwNmhgyZUO7d=DUX3ae5&IukIT4o93mB{hZ6oj7XY; zSdEFB6&8wVtrnIxf>_lrM#x(=IN+OEHLel#bu?}@L##Paw4L(SAC6{e zRS8eF2CQ4It~h>B00A!wv4&geo62WR$v4Sue8s_*hx z0>Q+up^Zj^C%k14~N2@_EbgK8;?&k78_Y5uCZ%`u_i_!xv19X%aLL-R?a++#Y_keu*L!|BS9&!{S7u(V$i=cAG!YATVa114%Iw z)RS2UF|+Zb+dyJJ0=E-|*j%GQI9X0LN2zEusMsG@`wuiI1K-*u9%J!0G{_s=3H>`7 zq+pTx8yaLAqEehmUiL3Es0G~38)6$~#F<4sjOe~!Xd7-}kwrTP?h)*_jc_Q=y19+$ zSzO_X^w>aUF`&S`;y1E5+{w^tP;l=PcDuJ>2VSL%xc0QV z<#7DFf`dlfYt%jOF?nKfp3OXvbXLokI8O5oHkP(eR&P%xzo-(j3W<5{;y#Bxoik)x zSS61T&;2=pGc0}bLP6)GmB~yTOJVSyLVcJqTl`qq=&3!@a?cmvtrbW??2uug1vw#M z1Rp#I%^)kum-@bn0Z_P4N>`u%l%aY!GUW4fK`J)djNK*&v&T791_iPWlh0qM&ga|@ ze^G)m6Yfb^bjTBN?A&(4{fxvN52vImR1V1gl*R5?pm41Q;g09GOJ%$$DO4>B880?- zUS)4K%+sstiGTb$Fk3|KA8voUw)xMT*a>lLnk}g zo&G?BdgYvcLxV!62F;wRQZ|c?|Aq!le=c;YDYh&z*N1$a?5`D(O+}+YppQthZGWLb>V_S|4~i288cFJMHNTIRVOI(M<=+;Xv5=8b~P10XJ~Sls2lgkkeo z94>8mR^@&Scne^8mv*w!@_>$-S%|qy2i;bA&?CG>B_j=a7O?G{w8bJ>kxLh6Z7IH( zDGybhO9yjWMYWm5ce?fZHsP5Hznb;$&`?N|BzNUo^(CKMPbZ`0oOnZ$Ip9u3l6xV!y{Fx+t+B2>#)aGRXPf9MI7Qb z@&_8k;Wip(Rh`9vzbYf|HukO*jRu9UDww-{O4+K;dxXEH6zcXlo4cmqdH9-&Ji1z` z*s7*TAAkK?4XQ4!DX|V;*IEBl4T3@3|6iytwF_|KF<=6tEZm<9^w$lUenz`(@(6vg}`{fd$KljUq|GZz8{BytjY_hvG`yYb2e^x1&=_$Sc z_xn$R&-<_RD>oAZ60H=k>Y#b$t@g6*1*!f8+}GoVLT>k_L7Q=iOv9 zrF8srzdY;~C>M8Boh6hk0g~9bmkz*Rxr9FHx40HpzA>kI;}#YeZydV^ma zpv9H^f2dMm|LzMl@p-{dbjc5|h%KN9Jg|Y* zN0{-8QFShFigpkjwIack%ZnF>3om+ksP~+3cNp)WHM1kiOykQjW~Nyzku>@ZHSZ7z zn90F@;8LVxFVkO$i<#;E+DH&6KiPfN&$EyW$lZPpxUGuZ-mq` zpiFiPXQ;+o3nr9yo`LCJ*}tvC#opqj7ve-0_)W^JF!S-LJ@h4QI_c6Kvys06`JO3} zz#&jt5#cJ3hfhp^n6>D+VMF6*5)+4Sk#W4 z8>>ExN#m*YtQ1P;vBI%`PylExgu3`FOB?gl`R7;VlwcbGzNiza&K?|)6{|lEZS=@a z$xkb~moAsCC0!&PnX4ZzqW-B-7L{`7X5hJAIMqmIx%=7Agz$HO0Qq!88H>E1b`KmhPMR(gIs2u?!n0k zHY{Ih>;e5wd@>if1W&j-%6u-ZeNJx{xCwy1j__hyKN9!DOGuh`>NsjG$ryVdLc3@m zBM^Y01M-7Bo*j=9=*9+(V&t8(Ghp%&-h~0zOWmn>7#gOcKR}WOJj``=+PbVi?x!91 z%z3BYi1XR9zhZ1y$*yp{`!2%aocrDCGwV?O;0S`u=bqvQT1QYM{o!`DV6)q<%e_uT zM4DF9H@-#8FHQ7u2}M~DH4S&?Vwm5|#Qcf{j}njT&L<{u@b={By{e)p3>4+O_MFl1 zxwaSSz?Td9QkTYh&o~1E9#H(@)Z@FZA!{ zzisAY5Wc55knZ&qnxV%c)M@n#Dof+7PVe!+Ma@ane-j(4!EjusKbs@{*)GN0x#=k( zceUlQZuEh0r0J_O;Nc@)t=H^<<~)Qg=Hy2UvhNu`qb}=yh%xl=L~Vb49$!!K>Z-n7 z%I`Fsdp`D77$Pqlhsnb6ufdlF}O2#pDyyjL1t|HF zR#*ctUXhsiw!nQF#Nk}TASM|CIhH$uME98E;e(?XDkL20p2GAfGo+K?-+xh)%y!72PjS&@4W%4LEWTVL3kzs z>AnHwfu8&(AoMmt7Yq}d*JWf43~u-HCH6=7s{2g<3!VnrfQ5h)#wJcW@8i|^i2~ha zgj`fzsH4=~G!T8Q7$lf34!*AetSK=>RCgjD}qZGb>8QPZq6fGWgZH{?$!u~jS28K z)*>v99eXE*U!H^&_yvz?gijzS65Lg0w$1dTqRVbzCT9ZBIh$KVZw4jJo zKj!AH@C_4wq8pLB8j(i`5_CA1stRy68F_^uk8h8>zU_~q$K8o^B#r=^-gm$2X1X5= zp~kW9y*WyOPUij|%#Dl%(4m95LiB@F(KX6Z?IZBp)Iuxq(VW5fq*KwmZN4KIZ+WM1 zZfVBc0fq>=3gRY0+E4C_HpFB{MM@Ujx^jwt}XCJeSq+K2!I3TocaAqeBu=4<1b=80@oJ;3SIN!wQ61n8_xJbR;CL-oGpB zl`6y^gF~fGoy6Rcn46gN#h>{wHX)MuU10&ks78|d=*vXvLd;+9kp%;OtcxKKzeo9z% z4HN|@DrGDIUGqtEY&3(lN~kWNhjz=j10rU~Sy zUtu`=x9YDaQ0@Dwqc@jlHvoI8sd2Cja3MLvo|>ghx(|jcwK(v&FJvx<*Yd7*yQTa6y0xEL0N3%VINqEF_8|h;gf z`)DUC3YXeP4iA3j5(dpJh7~*-&5vg%2xTY6#fH_^5bW1O;@e4Fg$qx_3#vv6_vf>o zJiu6DH8rClK%c@lk0Oi93%-r$FJXY%*NWPpg%L#Iq!rIKFpFCEKrwj&`Cm}ptdTroH3~c!_oFe*tsg$(>a@QqH z#zGwe_ll1d7XHquUvtPs=k*`h1ZA>RGQCjMjk1?91MY>8W&gnJd5{@+1m|vI)b-In zod6oYsW<|pi0x?kNL7o$d_+pKhGxqK0m60Zqkh>K80wdz->*Be_#IV`1z zq=A8@Dw8#&ca=@RAQ~H;-0m6{Up<@9TGOB2!XZfxp?8&SfX^kg43q1ynBMq73y`j4 z(HiwW15EbXC|pKuobcrOH+ywa4;xy#Qg|2}-mODJ*NNf|Qu-L{6KNX{fF+sk9I62g z?*ZjGp==M%ZQt}-IK-z*8ml90i;K)}7kfXPw))emj2I=sp*ONDWusZ7dH({0reyF$nJe&r3JM4YMsOeylp{ZZYM z8vx4Miq8_w`My-FC)%EY{so|xL7OyxpTAA}|5dS#0L);-;-of%`m-{Z9Pb-6kqibZu>LOMb^7OelwnFd7L?$W|H$Cq(c> zyHMI5bRV_VQ?h4VibaxeS8vot+_Y(aIR4%LyXRYA(;ZOalm)Y$^*XP(a-5gGwiH|#|HFHGbZ;E)+U&7i} zspPhaJL^y7h3zahqBfk$cK>U6KXR-uwoJDETg(_pczLuN@a2<1IW{gy=d;<@74O9l zy?Vqao;?`dDf!x6_x_VzUL(|9O*9xcC4D<}F6q1qvlJJ94I?(HQeD)<+JfMd#r%g+ z21JQtu%Jk*(JlhC79P8IkBH_6cxEVXkX7#8F>A)il8^W`ib}Bhn*N{brP|q-m+UW zdcVxTXGN+po9H~dTyQ_f-)jYtwi4335~f$<+_n@>zlz>3*G4VB^IA>VBJ4|9O_^Oy z6C*IcTGb|5%hX%T^;$!HNr+2hycMxl+RT-Gwf3fZnwWe2bsoEe)w*NlTI1}x><{a% zmGyQn;b*<;l#IYoSV@D}#-N@+??-~}*^TVB-Z5_W2t@RF+Gg27f=dNzWBO`yUd-z4 z%`JZelTiYao3Ml*&08C@TU%+Q%U4@_V%rCL+ehgAa@zJ;^Y+E;_SMxkfMMqe$q!8Z z9of!>8|i=BFNdtpkf8U=b4ys>yGSv)6yj}fl64w}J*G!{c|Uh4-|pT{-(zn<@0a(u zQG2}T{c@z#ok#op-ur^-`@${zr+#}dzAX`k1Ib4R|F&ONL>(wG9Ez&%ztBHa^FGwD zW`d?4iY;#HpblYw?3Z~cX5OS9nK3x3v>aJ&KLn$W?8*c$iy@YejuYP+2t*urVGLK6 zH#rX{)@sAN>ISzAY!pwv>5|5Oy~=`P7*>9y;4$ zT(>3Ffy2{}8J}y*Z6DJQ=Q7Y$GMfs^!kw42#lD?+qBEHfKd=7W4{8Nb#;GfnAJ#@v zf<=P0q?Runy*tY2ypER#tQo|eyXur$hUe%43GmwWFQ?P_#ak{bQ@+eHTrEDjI{$e7 zql~)ab#xK(WZ9c~c=qb-RpJg0bS(n+<0Dj6`xP?kGNYpC1cfRXy=)kSWhn06Bt+^ze)e+`L5X z?)uA~d_v8k=wBoRu3VyaDlBBs-w$g>>sUUzMA>JcP?1gOPa}A(EiO^BNYsm0o;~Ah zsOJo7NNdgHAk-Ya7l=_hO8xbaGs>Gm&8Nov*(S=H-c<_N^S~Bm%^-i+!Fq}Mwo@2k z8`}KH7WLP!;kR;Us7IrhTL8t;?ftp~gA6b*0|^ow5+pbz5P}6FBtX#MFfc@b5Zv9} z-3b=l-Q9hF-~!7a=g^4fm)-sgPhySL7%Teo%>HPy3v&2&$9Q?+XS`}sX>H?K&S zm#F@~R)$c&AKCPPcpr&05kYm1KpQ}{$cD)v_h`N~{X89_6}UzgUm<_$Twl;)6gS^| zNaOGt^}5;m)f0-`zO8eOl%>=V-9a`{W%0(MHZ-^GAR)IokCCS>J4kIw2UOD#KI(+5 zi(wd`PX51JSY4v{`hVY`-gC1u^6Q{g7 z#}0e6Yqk0pkd>Q8By#sXChAJwEPE%Yi^=xuR3i6YA-}7j-s;3Sfmv}-JtNGT6jaZV zvhgFB9jLddW<3JfN~=XbqLM8YVCNEDN9tZNsCyFw4{(4)9xVpjo*~Z&*)BVGP-k4g z80Q#uPoX~c;NThync~%q6xyb~7}{8sy-Tu>yr9FN(>_OXKK_O}h!B3-Yb4HZH=K*w z!<%~t8T~=#w`09|^VdRy>eY(6t3zm<)$e)y>iOqJ?e-84f_v0A_cH1`<^O5xZ{4^Q zf7^^q(>O;Ck=^Y5W|>9(Y}67b69v^iZyNqdg1q_ao_D`?KqLR_Wbu8yMlSz$rhaw) zw=Z(`K4!x6mJyzuA@@AKvB15QA-+TS*8*x&CH#M$5>D}NQo>pPtCVm7rpW&jDdATCWlFdL z@voF{@`nGfqmv^i|5a)0Kj`F5<_tE+*@7qO-!f-HUvk`J&KUopruyg1ng5iw{(GgZ z|KsT76dSjES=5_frL7h?tTn-R5mnk!du9^;z?(`Si#q57zD4dI=p-s7yzGrkH52u> zsX#+?+Qgfb@Ke(K^Y1q);p^A=IS6loNT)y0$%B87P9A+>md=qx>p(=+9{p9?ip;#t z{#**P#Vc{{t1sVv4(52Pi-xYp zcAUFbCI-pQeN((y93!4Ru3ToIOeUTK`uw{6#Z2u>sgdJC+kreSx7))FGQ}Y0fkn-m z(w1&efj0x)Gq3o`&YRL!5&}-;HrcIUTIzo$C&T(_3cvy?PV%A?WpDAKH+3sZ{gwjD z!Bn>lO+s-=!(4Z3Z@gM%Fo)fLE>Oj-T(DVv#uN?NZr_Jm-22LG+XCojle!A1E||1c^}e z$7OlymhYyTW@Iy4SO;>B(zeQZIHa{w-1 zcB>U;$&}uqbOY}`npqHj0Ecbt;M^)j88B#uy4{K#W~x^`T2NJI>6XS(+(#QOr7S%v zDEB?ukC&T0$ambe8F@WZm)>Idw0dCy2T1|Sbil7hag2nVk#EpUNkwEaQ{)QJuu#u} z>EWg0zVIb(eW3M-^(+O8kE@3BYyUxQK}^=Hs@(ueO*Q0Oo8$plZ*`bsh`;r-_@!*^ z$ow1jIF(CiF*V{vQlllh9i^lP*J0tF)3mEf1DjTscdW4pEwkq|HaGHo;?}JbUC?Q{ z2bX};l92~_|KnLjZ9xqYDNTn-<+ZsQUb8$oAQA_hh7~z3sN-L31lXtju~*#ch(pLw z)8sQX$utLCB%$vV_^0z$zABDZyG;dZ}vbscwg zzo$=uzYcm_?CxZV#--0rct(t38rS%c9s<=K^g8ZEOCCbqgrdx3p*AGTF;@7bp7q?G zw?}kW9vMqydnUUB19gCM-G;B3y&OG^_*}i@v%Ly$nM`ClXoI{LP}t&#yRME&AFApV z>!rJnkDKjoFXodZ=czty)UT|YTB#K{0aS)#7?AnI3_Cwx^6J;cd}QkMZp_wGUqFi) zB)ourhgKW=k#C4Ej_D*-Y&L2A2`t4H7WoSJ&dVoG^%l6oFHHf1Zy$}97G7rKkKyKh zFWqQD1<0}QRtkcO0eC)+`7Y}E)~)06zT%}jbM$DowdN1(SAC2-;y1w0&w{P=fh_3r zJ4`tSO=I1l)KRIpQ^CG76F>(NRYb9OFV>%3f85}S=7j(vVuP*kGHyNs!9XFKuk;j& zgHL?&<1X3k8hg4M!NX)`Ngp)8Ln)w#gji13JIM;^6^`Q|Xb93t!-BDOe6^0V0DBsVLjKfp68K zb?u_{f6JVyxhFLht=Q^mf)it@7Q=zUCE+oqC|ok-rnKdHCl;lqGU1LXJqXv7h?Vn* z@ZUg^I!(purDNLR0Ehu`AD+2IOYmukVmw_y^9+rRtKn^W6`dN#!kq@viG!*hC|aw; zzdMX7y#H{QETO!|!uvjcYb_eFf zit)Skq|GUc{!Yy3dz!WSWR=XI{4PvWn`8`glRYe7cQg2p$I2Gb0m2`WBWM#bP^7Py zd8nD`!{*>ntkhcu6dxwFUaCQU+CiF_%@369f#i{6w5e1Vq+@R-p5s6XLLoyqfT}K} zuLnsQdoCsE9bDy5bKVs6vJGg?Il*Hk;L?V-QnTt_O*$e~3jhxeAWYtlGXLO30@?Vo zj$r(PkOHnlp16`os}r#EW(L7C)$MV5ddPSs@gLg~QlDg2xn`F5>0aOv-gkw*5zl%| zm-X=i($P)kh)bk-kwsDB@`A;BU73)w_tx9+4DVbMe?&SGYQQ}W0q|yrZBnx$vO^c7 zRn1MlDr5tSGil83C*+!qy`_uXWYA`bjVC8cj&ks6PTPa#5iaKBsDm>%p{~cd?=L`> z_UP_D5P1DS_EG5 z9OoS8eE`)$>4T z_dZgNSPMR3Z4z}S>pwyN5u@CI2K9mu?zfuEfHSNdYPy~APmy)Z`BbTVc7^<3`dou* zCV`rlU?n*}LBrHXhWGBA!4A3gzVN3t7Mlg>t8*nbO2D4s6f2al)ByMOit;-(9bdAzH&hEfmGlt}|g4Wud z*}&4+#m@u4s-?>NSXMrAja7@%&t7(WC4w=fx+Lfo75kj^UgH@#CeHbpCL2L>}$aeMfM`tNf0 zp@o%o2KEP=bq@k$R%!_g*a#)I`?0TzI#W=AWGo$1$b`h%0TZImDAV`ke!jD8gNs=M z0EeCeF11=mTtUH>-TXnVr}B=gA&2rqdxjksYV~ObLpJDT7Sov4-gw9wdtO@K4K~F7 zB2bpg2w9gfBslzYHePjOX8ft& zY%G{5Z*Hn6TK3ht=F5KhY-TSJt+voY6X(wlZ<#?<=w@Z6^2`M|PXx__vfH2i{4ktp zhbN3Dz92zzHLK_>rYPa2mx=bEF`0FE#~<@;;;eSxp+9|Ghl0@SK- z<1>sbqR~RCa6K-^Y)9UR{q*MmsQ;M7dC~`bl7tNS=#;5P#AdQH;Tx)~Y>yX}fcCay zC^U&>@MF=g;$)nh3-oDWSL{@mLQ7on@Rx54@(KevK}@mVrr$*56brMFljFHWmz4dK zqDhmouRmY|B zM6)M9Kd3IvM8W;35TJ6epf`e}Bm?*xR0}aBjoGfcPXzrO4LhO1_n$8~^6-O|xhCE? zDDEXKeh~+8f&g}pM;ZWu?_OX8NH19v%|+89HT6HK^IYS-rAJ5AxSVm9)feLcrc3Rn zg^4@M@kHO6_ZP&CnRsy*WSI!>Hhxzy7UC3HQPz4R@4TYkD5=!AqDAno=;unR`SRP( zENWV-VQJs>8&@mdPgkX`>X_viima)nVOV|^gE_Cg63eF$TeZJlbERIFAX^K<0!-_S{u$xrhq#!nop>JCkwoc5JfTe_T1E+5!xlc_g>teZ~p zh)!ISiGMigs=h)lc!W^Upf{QNl1)1lD#xA;5}E|*w^t%CDMUa*a`WNIlpI+~PV;Zx zN13!|oF)~K=4YQ*n~n)2I>^(XWtrSQ{9!!xV*J2y+!LyDLVcNQW^o68ndKVfS-f74 zq<9|?T+wVl;j`1xMA1YBiw;06bzTh=oq0CfMrq-u!hR0vXsCfMXKAh_M^Be%?xZ{6 zEofhFHeGMijAhPWyP$b)K#)h;$hOFzCrA(D19XLW&{Rn3gyGEK2cE%L`*h50NQkvZ`@W_RHxl&ubz)mX>r^Tu5 zez#fG>wUS?JA)_%S#WuJy}QBy^x;B&JQ=-FY#OzWI2OsFv3+ESdcOx*gGoZakWA{B z6x<@Hu>ZrHk&M>~0#3M58DZIqdFl=Rym{jVnsxs`WY+cFo31dN`Bx%STw&``@j}c0 zjL5XO+Z-?Ga19nHUmyM=l^_x%P_a3duTkfWFIc%fRsLzFF-Wj#SM#U!--%3fcM|tI zFaqJ)qm8e58cis9^U2OEvd#fXAX0y(l?cP93K40zINo0F(T6-~ygEOkpw9h;WR`2~ z&x^OY{6aE0lk|Q^G9zdwzd|cxm*FTR(^tov{1=kB8QtbXAN=aA-!CGQWqcw*ovIyU z(Vu4!MPyp3iKPY!?4pQF=?=0UClM5p875Bsi^$A@Tf7#*`4D;ZgZ3AZx$>Ce{qIDk zZMWy2MCN8iNBl1$Q&MWp*+rJ-MY@T=(2nhPo?vWtCPRtx)#>vkLa=&I|gn2Da{Ymr=BsPF zLS*bWGEqq8W^U1-{Z?TU!R3NQmyE-XcdntsZtdQn!(Jm2MP#-@WF3EW(u6qPTUkwV zJRHpGygD3_m32BE*A8(ynO?@eIGJ;SIG-(r$U2{|CWkm*Y!(eUU+y;jMr6ADJed!1 zxxUyNazT~yAk6?=(|<=~N}9UgMiH5uzAfOt6PeKnavWLT*4w!#BD4J4v)7ZYWWA=| z5A#t(rth(Y~KatE5-uH>=R9;=}f}3V2Bs1Mlzmxk3?uZ47oP^}N)`_v0-~9xR81RQy z3DBp7X@`HO=fr_JwOqsFKNg17Nu_n zyV{E$jm;4Y?#T>JoiGR;9ev0ct*&?AdEa~Y*6_4kSDs`$P8>0d_#!wXZ;_vLDd<7M z>~`j(rkof&SBu1i==JCEWtJY2%BDu&qw)L!h6X34Hb(P$yeK1PmnkW zS6s^!4EAg>h(E%U#WEFal>Lkbci30*>%;EE>=)?|g98k1zs9ju6n}&}66$aHrVA6e zb5XK0;C%42_rHkDwx_J`Xz-?Ph|ErB9mT1FMh`m9dC6C;cs33g}vaTY`{Mf znaIgr>&o(izmUwG0uvX!*#%siYN1lL-;hk3ntr3g^uU>nTl_I@h@?WRq5xRlE84nQ ze5?+rckizMBgzpfPDJmgxuaa0hUXj94)b||t*thVZ4_)MB2#TWou{ZP*53Z&7 zs2PKx!&TU70sUWzOwPbX@LxnGG{Cm~9!H6vY~XK1rg2GtHh7t=&$jbnVM&llAd1Me z?GoB832^~`r^U1DevTqCLju3wW3}sfZCo0W3|?WDvg=j+UlW;6?FI~u%M$*dBAE?y zqJaMplm8(mQHi|&_lU{Ye^2CDotK?A15Xy1`N_RaegK8`ZCBGA0{jq>J+!0KYbTg z793jM_ZX!z`6H2+ouSWe+$?b*#hrHlSZFD3LwUB0g}xUxv=#R$)h2$BB#5G& zg}8z3x#ELig^bUTGVW#AjO?TWW1GI2IdSGH zf35-(PLSryE30ap=lVurm#s^TX?O@L4hwGE_|eH`>{pnsrcK<_8{>u9jyqz+2b(Y= zbDbLd3OCC>)|PUPXy^-7PKP^W`P9D0*#|#gIIkrLDm2mpd2LOI1Bn-J( zAK*mlXmwpi#YikVNgW)Gy=ubBV(&*nC4D5ZZNTkS10$%mn5tVnZ7^+gVDCg@Cvykc z`+eGKN#EU8TQ_BW?srCx%b3A$I)%?nLnhWVu~=21tT3GfkX`r2K})$D_yZnE z3$FBBXGEUR<0+E2b($RMmP}BT$|O!7E^;^$Ub~XGulh@6vi5pSys~D{cChU8>1<@q z!DBa@>#`JVs^r~9J1RFul*%ND+Lp<(d=TEB{eWE);Fkw2^57yX}Zlnb;ccJK=La&|Gv)7;1qn zDx+_aFS&2IL(GMLD9v_Y2^T*lboKuc7&6gDCHsQZAK>*4=!(6>em(~s^-3d1YroIg zL5z~7Kk?CAjUeJzsFgEh&`8JoNZelbq#33Erdro+V~WahGe+4so1gg9&Wp$atJK>- zSvdP+pBD5AkT_{J=Vwa0=4y9NE7l)ldwrOnJ0`FGwr#!ThHuMdEhPeL@&E{0qaL9~ z)*mNg3z>=)?-=3R;Jw}SN=_g=qdH#_J6Z(zUfwT`{Q6Mk`c*OsV*Uy8!BB*=f9#V6 z-G@biUtQKZa%D%FzA0#q$GknM{MK&9DRMD+sW)Zrb|sdU_i5ttT2y$gwS&}>lo^`b z+!fP*u;>>1S=kM*H6~zVPo6!fDP>ipdiNwZeP)Yv)TRhZ$0M1wIK7;y$6hqWqN$Z`o7vvZP+gb zB$j4-@5@8K^mT@)SpN}4OtNnOV%w*bv~;%J-X;7*D*8Ct`owjUBqXG;sxu0!SN8^e z6r0HcOP7HcdV!lhfwgk}fRO+LG??6iV%K`0sGH7^g2R1~^957Tln>+H%yX(&DYD=3EDmQ5{N{{9N2i8{o5#5Pl;K8u1xgjPC%cGp__?Dl0AWG!iQ1a;lbSVR`L zLWBW~jE=rfOLm_sq9(4gI5tIsjUE691wlCY;}grGtL0*3+TwHl@LcaCNVl4%NhDOq zCDhg=)W->xO(it@z2b%@x*jF4nZ>k!;JWoX2K^2jc=q(by_S_%$!%4PF z;tfwC&_SDh%zw8E7_x*0*bgn6$uGs&gNzTLC~X@GDE5cO)6CRB-1+Zbc%nc_ za%^(C_&aHg>XNGAm`_b_9onVUD8vzpS#XeZ2y&%8kVHO$*rtykqyU=J(cKtMW6}YL zG<^9qf!tIGA=?XLIESelx6K#RQLA?`@WaJexn90SA2eRk$ZNX{{ZR|{P`C;oZl?sU z_+|!$dFE0m8dM>(>;xp~pShTpVs5|=6M)31W@+1lET{1cGPCZ6e=zR7)sYdTT}4EJ zo4s$Eg-+*ng@Ae3gA8)BtK@^)PstwItYz%gh}CN3$jUNCQ$tkVT?mb~jYb6$lc-Pw^s^m~c&TD(9>$P0i4fdQ~T zI}f)suh2BVC7y&S)LOn3Ga{bA=qUuA9mcSMMCWx??Cr81GoWGO!WHy!V#Lz%KolSs z%&9;S7fejeE*o`8IEfx;#=h{BTV}Tga{oLV_XKTe+UmY4Xhib%{$|nDKKd7gg=e!8 zq_TLjSW|KVB2Js~1~+0BQFH{=q3y%DyH#9Y9Omxo>LTX*WCQ(i4xGdQ-%gT{hp(($ zwBP}G1m8;#Frn1FIMD|o=a6c%v;y=|E|n0|WvnCg>BJOaA$@J7rreBa;#DR^LFv~E zx-)~X;YQ1MO2zWY9@fvt%LA_N|AxA_=d%>j?bUFidM`Q2f_M+#bVDM*by<12?G zhdw;R3IbJLnM(tZasaMI0*+S##7F~Kg>F`rfT$V@&3lEZ94ZJd?!kRpM?}(EO&C^~ zhbZ>ps$4N8mCq=LIzZ|BYRp8o>}y<5DEbn;H;8F z^!g@~gNhzeN4|x85L?`LQAfE2<>rg#DTm7Cg%A2Ko2C~&K%yfrePFejc_c#jV5YG6 zc+hoTNv+;n%`Qu8Y-10NR!MXuY(6V@JEb`(r65MG@jORiNU}}JJy&i&fPdKGcDEI` zt(!Po`zv$*g)FVk>^kw1mKRo590A3CDQz-=UK=DZrd59lTQ$mAFg7JFt^!cK*OEN6 z5jK0bUC+je*G1Y*#p-2-N&mfFeatRhx8};*r3@9j@m&%lc@HM7uoGN9fC*x@z``rG z(lhm*fp-@wlr_6*BQzfvowhNaXCANXEvD=% zy}|=^bd-U43i@$t>g}qoI4WoRn!$Qrm%YY0;Cqz)AKzxzkk&j;wC+!A{p3L=AL<4M z8~e=!A9B}qC*IYommOX~<`Wx&ch-TDqOmhzCjNZz$~5L9%E6YLyKLasD@Jbu!D#B?`1y$J;~s2w2L$He zh7cG&0Te1$1;5Gzby_~^HluJFR%?}ws529~>Wc@^iOYrE?g6HK!UK0jI!?G_W`8=F zC0Bjh6c9MF0EKZz!^IQ8%FR|Jsz4GL9?TE^>4TeCr6bl)@-G^|h>3xxFdR&MMb)g* zP88rB(~%npR+am(euVNzI(Sm@zo|;KLq=dgV>0kl3D^eQ*q#&V^2o2I2O9qrC#9FTx0%^}tfdI1$eyyLH#vvv95S#aOI-Dpu_ZR3lo{X~bz~ znk20r*LPGzmjLo?oB4#Q%72S=7g%#wSX1+AEGaJI=u@Jqa^n*nFJx!%rCamd#liJP zlfIZJK&&F9d&@=3CzMvAcJE0RMm(fi%0+l`XHSOLZonTk;fQRKyGQWSqP?cVHbr;@lpGRKp?sCc8!Qg#Xt-XP_^8*XgCLN}o zGT^k}y)?5u^dc@2hbAO-4JHk>EeFn`cr)HSOPgWHSoR{JHf!p5#^Nq$tKa37GXaX8 zymJsjnptQpok}!0~D-q(l)*FohO--r=guI?%+Tk6x##E zrJomsP*~eo-J7x+bUZpmui}7jy*_o3+2gd1>EP=^Db*GWxg#V~OL!KrQ zo_QcapDD(0I{)P@#4MSF7oI;Yq+~ZxDkj`#yz)3C-NaJ-^7`&D8to?Xdhh11N(@D^{=WX_it{eA z>FG`T`*P%U$UD>u!Qs`=3t9_QPm_n2dq~Hp$X_2r9&1b8tmrnj0{6qU+EiQw9_E$c-`m6m{XC20c z-&&wQ-TZvjQ&5dXuWt^Q=A{SA$#oF}Yb6qGRuR?5_aTjVk-6smDRQNjo)JdcVWYU{Xr@Xy!|K2lm0&dK-_ND0*`-SfvUI8NHWMosS@5}xk3pkzM znvR7AQZ?S+ok2zi(jdjC!;(F9`nqXk8|%*x*GKcThZ-9k1{3Cg z`MQ5zo`um54K+2PJe^p7__{$T<%K(#Z+*c7Dt-pXC;H{<*3Dk@&fo5$GrE<%zvz1} zTK^C2T&3^4GDqhx?VM`54<9+>+hCy^?VKpq{hL_8`%wg+zg2)l#Q8S9N63k9;1H+Y zXIhC;y|Kvp{;r*4PS&E%T~7<- z`{nCq+4z!b^_=L&*ZtAc&vAY2|_{GafxovMX{oJ886;1@>K>zR4R@zd(uk%Vi7 ztb6rG;yDF`zWN$BzHX`ab*mT4d(9Z6v$McWwzLAsdFQA7HdGyJ*~49wJHL%kFW;;r z*F1Zwlh%jrz^ymf@Sq1_9hlO~jI7!|=p!n*lIh`^FtkX1w(KWm5JJtttl zY}&Mo{ggfAhv+jbrPo3?zHXQl#Az6lAE0w-bhhZ5FhUC909{)zg}!v=hdAlb#>|E5 z6+Zq>g}I9kiG0#{zWxQT_u+FJG3zQ3em|{?t>U||xH?(KE7@(7uUjAU;TR%fw;6k{ zVx;wVU$;jw6UqI})RwIby8mEK#0p2zQ`E-qd+qhEi->*q;9Cq2s?C3JIx2Bu&zy=uV?_5zah zr(g{{&A_+c_mFL+1-*RLN<`g@#rT`Adn6|lm+vnB)<|KDJ!MW+M z$eX|)gdf1^NnydZ{pqMl?w7G&N^T~(O{N)dCb=p3?sZT> zP?Ox9^ufV__d-c}(yACrgM-e}?>*}2k+DCBh)H?R=8oB`Kynbi4v%M+Mp@_H(z}h~ z1~VdI5`F5^2hr9285|*)JyH4QG0hl5Y-<_pX;(b4-9q1K{p0#|S4XgUt797zC8Uoi zN7X!w-E=e628`W_v|z68GHI!C!I}@a+Kw^>q|Jc#I7_&T&vmrzU0bcDBf>h^-0|6B z2>WLblfCc7tmUTNawUHldXbNdC6X29Az&HO7b=CNDTj#sdYDQktfi8x;IaGRC|&D4 zJ|JHXqc`lfR|7_lWLM-M7O%JNnr6;xJ;~8{g*`96fepg2yQqTpGOpKXj+~F=*EI6u z>{rsc3NgK3GwBO64s1PzUjdb})Ol6jG~_B*^^O(VALqdfq+dU|?NuCqoUbpPr#{h( z9IvcBE-($s(_E9BsGYuHr&wz{b0-=vj*DFJ^WoSib_%7P^OeqjOWOAvJN5Tiz(;*k zgZ8LNZv36QFQleN;!n!6qf#Us7e4E0z8az{=os|R*ITBXm-9h4FZ)?}N+ z8O$vH;p=u_VND6IK?D_AW=Vb9R6nhqT*1^X>-&~&Tvhig7Eo&L0L4xTvT@i?^v#{r zo;K_U6*+QGu{pv#Zq0vFbY83b`l31y_j0Ak_0v7yF7R2i-ln?&y6*y(g&!`xz9)$4 z^&)E!2H@7*a{`ur9dyj$Y{6!s<4ns@&efg# z;;bj;H?e^H9%APuq3%EY zqU7M(D%V~7=Ie$rDUV)^*G_W(mJxKcDO{&0EYRhyQFu`v(Teg zWlq0-F4(oM`z7qIUz7eN>^>W;YCIj-bH2Qs2SBQuv1Rt%DXxC`x=9C3iN1Y!z-nCG z&LpF|{61=lZ0Ibxqap9Mexf@ivby`m*FB^RBs^8`mA>8(D${(=;ZoDDN3FX!A~Z(V zR5O^`v73bQbsIb-L%;@RQnPB;#OKe(%|9Py3jW-X3#t8@C3Bps@pDsksCK++@VL<7 z=N24NH`yg~Qkw8{TVJ+rdSdXTvhL@OX-M7dn#^hK%+Fohp}M)#!PCaepL?#5`UPy+ zvsQ}heP7x7CDNg@PQmLRp&|9(nPks*GJj1 z4Vx-M7vpu;$HgHH+j_E>(=*p6)k6)tHba+lm)EDwkj8x<*{dZA06Ze_v1=bj+)!=;$OJ;)Jo*rU*ccX2rTA#?&Fqt)6Smo5YKkzwItis z96e#+_CJe%Q6sR{5#9SCe5esvq{3Uhn-SPXW}@|PBQTaotU!a!KZBV!^NKsuKjfE> z8*CL+ujXzQ)}L%{6*Uvts}#4B1ib&!`Iq=toV7qo7R0kv{vYx0e}b7`qefue|2=wL z;2`XK4#_1S{T^Gh86Pho!({}u-_uyQc`IRdlkkrF0P zjcEpFa`{N~zy0^(U-iTIym)j}F!KO80Up4214XY(w3&pzLDB1L)M5WbufI`{sn$c$ z>tG}IH>hA{W~4W7vg1uK^B7GWQEwY2U;zVM@a6tp^>%HAuVGj9|1OyMhF*UcJs71P zhRYH3YXs(2QigiWAVn^owGU5{k&Rm&1H5 zvYaV{l(Qa3p#uQL5=ecv~E4NH2CfgGO*bCeV;|;+1g}hD=y8-yN z%}RjVZrOJlw(yPi(aO=`+3v@5r2cZiq7&B~U1>vnCjnnS#TgXJ!o*Cu$t-8nZq9GD~l&QwT$he0(aUv2DE1!MC2TkP7$s z5g+6EV!Z|XjK!Dy%r$2ZHgEM#2eW7-Chs*b2hT~u{L;@-5MQ?|9##u*1656!X6Hg; z7|8)i_W=dZ$#Pv89L1Pzi7|p+u=z|?=_o0tVhgEm(#EU9&_iNv2z5O_ejr>XojL0q zM(4CMt8e)v){XlVpHSD%QS9#Xs63?=cgU>Nd+_I2D5w5jU;?FBkuzIU360_>Gx7F|>k;BSHE$^yXJJWVXI7+9wCY-pJ^USIc-(B{Pcc^PexIR7nZ3IRx#Bu#_kAodG0;_!&DRPYV ztN=9vvwtehP{FV8b5nihLX^F+;@1ca={?@qsUhwbM4*PPp=&Z;ZXStr+SV1MVC{^? zD@%4_M0hh#eAS&d#UV6;TT*b04)P_I-(Gk|raZfeN@HG?8lwd^V{?g~UNqXhZJTb! zCMj*vS%Hb{G%7(kLS3Dj2KF|;Wnd{_x?%w2fcT`dPWHr}iVn0(J`qJZFkVB*kr1_$ z2Bqv~X6`2(XKF?lA&JBD)mYgzNVTME3F#S!+M9udtRw7 zbB)mR#C7urHN2e^-%{=h8>uf<^E!V7;!FM9aHH77qkN4&Z0*({P0Bw0VC5(YI))|M zDDbfU+KR$b3}rvLoUSLpq~V_>m)0wSIGXN7^$8nG?}@4AL06Fm55Iw^ISnDYM>fyA z);VnCFBAcJvtUpwmf5M-B-$2`9G+4_XMB~^yL)?u$h~|tWqT%7PL-Eb`N*Nq7XRLY zYSW{(61$9+cRIqRrd_~#nx0fW8{ z@Y2?Ah^Q>(i%f*8Q9PUcv+)W%I%-J8~-qg z>C*b)`WB}OP9AM{BBm%VhZ0Z%UNd`sG&AKrLmzwz5(D9nDFKBL3aLtF_~ADCq*^TE zUQXN$aw#g&dUm(5-MgAGaWi#UGxbcXDaNt2OjIy;R#ZKGyj>Ty$*Vjz<$&JnKAyI; zIun@Q>*&Es9B}S zyQ93IS2q#(rbLPJks;a{h(|?jZ9!%z78-g63AI70+PGxn=UG()>MWA9$Sf&NL-$Y;nx#Up^YILvXAp>cO2~ z5v^TB{VfdUQB0Pchz71u(Z`X`AKy-x5ah(MP+oxfkqL5ShYstjzCI30ijco!8*GfK zTaIb%SP5E@!qk*Q4u_S%Rd7Ibr1vOF&FroDGDvyfD~r^t{1!~P8HKbPL6^|iyzOix z_@z~1j3;7-yd@l~0@#>iJx1O2urYnlk%j@p0gk*8X%4!Q`5c=LKjhV3%}EY>rd)5UlZ~Ac z^v<%^2aTiIc;;h@3|g{ot7<7(z~yR6XjuR*-+K-Qpah0pFs40;v zPEDoL(T6pM*mJXVux%ha9ac-J*55ji+~4>aMXK^f1-9;3beou5jD5q#IHC zy}682gIKcC(SR@Le4#A3x#Y>#Jvl3#WNdUHu3`x(KCwPv=7sa6T)e!--B)-7y*7T& zS)rGbV1a~+_+kI+eV=y@_~KHPOWZ1AV-QAtkm9k@M?5zdH5?rZJgdG++aG`^(S%uM zbqx*t;!VI+?b}ph>rXw%Dgb(Q9M`+U5_IcRsZXr8#8othJG552t2ueJ5EX8WXI7^b z9#J!d`8_p&AB+i5)ut~D1p64q8nuO7$rv-3Qr5B3_whXv2rMh=g5ma!0kxH;q1+mz z4A#j+v2}x{p~UFQPnqg#;7-m`AZqLqPk{V|X)Ri+Pj4SdKVAa`S_Nx#6?_pmei^yo zaF?F~=bizxZd@b7j}kjEW6u?R1^r)Qb8L6zvG8aVA<+1sXiT4VwGUKL-s z8ZPi?@lGL=tgNSZoPxVSEi=twW-TRLX!##~y;54L5&Gqq1c6pM7Pfings2Cw@G%T= zl9VvLSsO2C+ZIfbq_8NJOcp%Cd?IjtD|E3s5$d`8!S356$OIcOf7!TW3ZE3vCUgP|Sw_ny&Qou=8x?I4lEw38Oxq`hDtDo_f z5Oj41fq8bOqvKw4ggS!9$<(Ek6_Y95lkyp@@|iO&xpbElP_GA7U$GlIntT zC~<0p`p$+GGbkI}X;bZ|T4xt@*Zcai9q}tPRi*Jd>Jdh#J~hK$Cf)rEu|jyqCusdD z9=H3PqW6(8j-*v%SL_Ulg@|0RdOgU}FY}w=pk!%Z7`*wJQ~+^2J|=~hKzGkBnBilW zRS_6ZIR$=O+-$Dc#VV(JzkX3@BUzcp2v+WQbr&R{e9XibzAeGE5m_ zqhaY0OKXWvN3cFYgZ?bz$e3P+(eyBcTXUj+go4OAJ#oa(b<`W)CS~36Fo@w^LFXev zZ8FLJC-@9+eN_424Z^7mh!~ZA+pk(_qZ|8D%Byyj)2RQCUIlz;Q$8WnDmp4OR^;25 zMmSmt*{~p;ZR#t8E{wr#3^-%>^}&x+OqMcE()4$-;86y*<|!uM zE+HK>b^QhdC%NA>3x^iE20@?hOezv-jhrbFzZ`3QC$9~A6D~9bXqk$JafB;Qn<@A+ z6%gTl(ENhWRU|B%CX91h)iabboK3~y+7a!+HCmfk-5WpioyZ!y4ybzL1+m z(=r_H82p~((s~Tmq@tF7gr=;LPz9aIzKl8TENhg;d7$#`JDMsC`oY*{>6T1aO*|6( z+(?_N5EM|6bNr*gV6-QorBxHxeE^%#%OJ1vDAc`GNY%7;HRHp?2jFuU9 z4_zWKTPEc030Uz8j$IG_j7K=0r`-t@GF@#zV5$K8PhNm|Q_xak2JxgPvIq#o;cE(? zHwf`Jy#aL45uixQcwI2Fd-r;e2v0xmZd5{~rIA#Sl9HAb2?^=$p&RM$ZjkQomIe`|yOo}Iz<=KHtY=F$1l(fX9LvtvkcKgVSg#Vo-mQu${eP)+B4+o z*$#BWS_5*?zvra6OB#IRt6j!Da5!H-$Qv!z03hZt>1FPgs<1IU&^|WQST=L|hQa*x zW6k^O)+TJ(6Ql|y1P(=7?nO2?2utZI8t;@^ss;`KWX?_wMC!d6lU#HT) z?(wTgJHhxdmLnHB#lQ9T;1nY!%GmLw05D72y=Tb$#GK|dzswe$VkG)39dByGQuc{P zljG}^BRffi_`g_O!$`rXD< zyES3BQQPpT8&k8CeO>1CiQIl6<{-DZ>%n)?Z$u#nQ(FPy*|no)ow7HwkTen7C7Y7! zCFqk#(<_3bn+;jw?Qgfq@07+$!3UVo#}&HX>QfB~nYJL%-<$LTG{Yhy|F@d-LOvyE zc6GG%_Vo`84nhC9O0S8aw_8&~KyK;x%>3y1aUHZRZv zdX2wS={U4%SjPQf1~uYuReD7IzL=hJ{hnEUpL0i2g}lIIl9jN` z9E0D=QMW^q^%37E$z;i@g2_VF`zpQk5CY8-+_!{PhHWK(R_S>OAIWo;d~I+z+5S3E zQ~IqXs)&VNL_7_>)&Id$t-;#zm7efNQYq4P6>9@=&rC`je#nOn{ff*hx4zJapecmZ zSN#^5li)!yUqMWE{>;o}8f%YMdLwg5A{ykZ*G4m??lN;*>7vr#GV@73uir9r=4p;7 z{-&#+hbzBl<|jK8+L`^giaR%4sJig@MoXR`;%E_wPhRU?W=^-vFDY%b>_d2$nIj4G zEc;RV(q$OX2LG9vZ+;JA`IVU)t%PvnI}qv%tlnkjw-rLL%=~_0>!^Y*`71Mjvi56W zd!LzW*locw^M8oUIe(0Vn*EE&+^-UOGtC>{cr)Ff26~^FCrH@A@!m~rmH)OF*6DGV znO75i_}j$xu1e3?Rund|B@TkgeBOAwHz7UUg-vW>nR!!E;BLhr=Z>kbB;3;S=LzNc z=!&Ukh*|Z5-A=K=ch{%;wW~2E`*oWoC<+)`)jRtQhuyHue9i!8-sEz{TnhqiQCR~5(=IGC@6m$;u)Z`s>LN5OI_f6C-)Q)&?`(gq(tGqpZ>MZSi~=i}8LEHl5_Z~VD`b2iK{lU%8CBJX!=c}>iw-=karMH*6HNR)(r->On z4xQ6?k@-)UPXd6J20#{Xg(p7r07=6l^WIh@-orm4bM-@*0x1oNtG5lq33}*7iIxs} z6xV{CaOh3KKhKlBN1pg=Pe?;xK0cbR#5I2BH8Zzm1!QGi@<2Avjd7yUmhhGmJ{ zB|HRCN3;j){ywp_v@~R0q!0D%=9*)br3`pUCRN_UcgZR%v!zE@i-kfD%fJHYyETG6 zQLU0Pz5Rn9lcQ%wvQ0rq@FZn6~FSn>{%ynS5di z2xaOOLU*F6DY> ztl(`Ri8O$$Vo3zE!f}YW^H~y%}k(*CI5ivCS*;3FE8cAY|x2TFID`Hyg54mWCb`1WK46Ju(flPBt6|6OGM zQo*%QW59b#t=RTnH+tl$RPy)>g)=&Xer0P+E%-;7Ou^GXBXj6qtMtxr3xCVZ%?Oa` ze`V(AO2#S!e`MxTM;^0tcbWOG#jwjCHLd6+7TFn-_nA5MBtpc%f(~H?EHg(p%)HCY z?KQqMmDr6%ecij|1SRx7QLo?m`W2ksxH%c>@a4D6{LI*FMM@iGti1Ug5#8}*K)b*u zJ&R(i)Z@WQzXHa2s~am4!y{pJ1U`qxE(bWepI1xZmdB3>b+df9itzdE+Q2+xEPk(& z0+DvSLMfQC$t4EA7hlIlGlsI#)6jgv8aVIf9xe}=DqJCd3u*UVDi8D1Kqtbw=zZnL z6ajth5FvwZ-Is#L7L~h;^+YzCqTJz0^j&5in_H@d@j0%?C1}B8RZpy(Eq=NYgYoml z(30GL-q# znKn7Vy;r=?%+YZb$#&F{XQnVsIoyOq2sKyc#x&%H(%gp>)i<)!x;j0i0)}=euXGZB zXjH#SyrI>5Bp#3(ij+n827%lq4GD15T9$va<6j+#w7d(a*5}%08vDJZ$G>q6+sq^*fv23H|t$OyEwEY13 zh~cA|rFoRe^*JKhb;Gxxk(da%)-dCKD1-WU$h1Q6PB9?FGdhW0o7d~MAg7wcLJ&V4 zY>3@_c^{d#%&i_}o-IKCMP}X-{`J{iX5M_7D|@s37J4}|()^=lqv2b7hbr`HLl$~DpE_93(sKLrTQlt;w6#YLOZm*bB*GoR!2=ZM z0d`;$5OPL6_rN0b#NqbD9fK3asn@3?*6tNNNfgnI$+9}x|xV|(l+?jKm|-`ffZKKBnN42a+k zh*AxRaR`Wu3rMI9NSX;qIS)u949wsT%u)@^aR|(d3oNJ&ESd={IS(w$d!|DeRH+(N z?GRMEDe^fkNd45S@jM7Nj%eo&o?i*-bO`Q^3+@L|UsMFMz6%b4_zZ)nbvQ$&976Oe zf@W$%7G^@)azhpgL%(yAyKse;ZCb9!g>Kh|?#_hnpNAe2h8=TECj@IwSirLxs3fPPk}$sPs&B4YJXNZjcA06DAy(MY-pAjUfh z05Ie^PZY*_#7mSHxAsx>c~LCvk#*mrq<{B~DmzB2#z(8yMQi-EO7E|}QCOAUMT`Ye ztQF6lZ`95))*(LD>3%Wn58tS_TAVLzF)ThVur4lmHZJrcE}SSnf+s#oEk4FEJ}y2U z)`*uh8=rC!pGK6B!IO}smXPC^kQbj&P?u0Nn^1C*P)3wk!IN02mRRlh`(D^=V)I2} z$^$sif8-PYkx%?zl~4SquKT~b$Ji*o<8uEapZITbxoDY$J>uPL2}i+3zu#jVg;)f` zxLolb-npaSxZM9|@`?W!b=~*!iQeH~od#PitB=1V%)#UnN>hTxJQSU(?77b$>*KlT z_%JOXW(cjNW7m!X$w3*&N^~OJkz?ao1!1US(6|^%4LL6uM4>)-FP~64RExy&FKl04B|4iLkqw&c!?(;Q>yuFkE5N8d9KirrgOA55E z#pT5hYfJ9rn^1L~c1c5QwU&a_Cdescaj+P3OgS$uDCstOAHuyWx{$q`ns(PXghOWo zcvQisAs^oyAe(r25*OJPiyf9iAw;S(A6^eM+&=gArX}TLh{x|J1eM_x4d|Z6bKz%6 zTLv`LEaTCJM~OCxK%C*;5xg+Zk3sN!lRb~vyO`0!X-BU7Z5~L1o6#*SkcM5Lvm|`l z+9P2=`KAl(fhJv;2N9}xN|~@o2OO!1XDp+1z|wsYPDo_fED_XX%0zO$)bvvIS>nxx z7yWzXftm1=q$l=@09D=e;;xevIDhICV+W%CJx-o^FpM07 z;&Q#ZYCPSW%RrxjqX67VLqIvM3ih&hjhUNLqj&bK8 zIWrq6^Hgd4X8@x^$b*KruDVD7l|3i(A58$Dmj(U1D>DJa*)(K!i-I?BqaPtEBgkT$ z6;42Q3RAx4uiDhv8c-(=gPgBdGCel^^7tvuy^`$l1?&1%hL8EB>epDpU|g<@HJ3o$ zdV-{*f^-V%i>o)y&wJ`7A#On#GO^2ko3*2*Kh`tnv%#D!mkPGcHqV4B=KBjJ_uFgPghhesuIX?<+oZ8WHX03fea&oua9g8Bh`fpKi2d`OW3Aa9OX%#0aO z&wCC{+_*8*WMRS-C_6N@Y1;=Fv1s!-pI56*9ZsIhc_0dVA+7LNMyue=4=HS3@kS%P z&Tiyvzw#WO);UezNN~pfxR&^U4Bs2w+~FIEa~12^5>x9nC%%+oPkZxEc1b=B@kOl; zVzrBDqrJSn5EpDRcZO+uF`duaHzdM}I~L3QJi+rf$BEytMpdMAzG$P@rD{KWY+&zg zo{B~q>-=)T9r|_`JVxO0?Pj1AQ6tS(RMZuNO)op!-MRcd5+~#HaPvJm1ZNJAroO`| zExCKFE_jAOSw}Sl86elHX~co?QAyP&P5XhLn_sKjji(0*H^J1Y-6t*sU=M~pww8A| z6z+Q6dgYTltT48m?cJ9(FXnSRO;LS_5JH$3hUOYPc*Fj&AC;yd@Qbads6Q?ewG!o$ z4zjQQQJIRyCJ>NE;b{nz!}^F^ZK-mO?_sA?Z%?eeiCTQ-!I9?eh2`@q#s(_Ss6k+` z9PMe6_t=t~*cO>ed0oYGhCnY5tsvL6h|&$W-1`j6K|2}_r&Xmr*56hb!ARIG^~eEH z8A!yUqm>;X*`}XK8L-J>wWA}G;($#-i1nFPOC~QcN1TjsUDv)A$Ez2$i5snc6DTL= zy!11uh8tU%4%qV0V^%+?$Nv#oD_QAzu;5tGTOkmM#hv9MoQ@b;=|4djN`?px{l3Yw zsu~J!6S`?6I$wK#lTph7vs-u&hH;8`N0+(!=mvYW2K?}68a@w$=Lru<3q5TMGxZEd zaKwJ>8;0u0adIABl?lY*;RLJQ)pZl-h7(_KJz0m4&GKO3Ju);@`G6OZ9H~qR0Jtfs zhWPUl)R_iPsz9)8=}>ra#B~UT^ywTTQ@#L+u;36lL85r!0s-7#;FbJ(fy5p zc0%1Z@rkNO3F2&;!Jfuv)ydQ1t=&C#6v)aazW9JV}nx^_ZzkUQlD2 zm`#QuA>VmYa=Q~&`_TO*KsUIgO-3mpI`JDsZbw^O%paK3y5disV3yO7epACO_wlY0 zR?Cb}MYt3=6K6tDO*_|7|Fp%BWnCvURR(mN(d-#d>p1erI*0m|;Dz-1CjM-9LaR=H%9~zy7}BYh zdJy4EvJJ1Cquy_1s+~*xoI}&VC~MD(AgIcRGfky{8o@^gk-1DWKc85`5ZLX={DekH z!$LO?k3oz&`1u^Mo;u>mbgIZ4Ny>SWrlE@1G?wr-#(NdTpN2VJ7Pk6`7LWXu_3Cp` z(t{q1Y1viF5$V|Is^>CtYr6C1Ct>T5)TiIl=Eq6qzvqT2gjE%6(?C=iyGvRw9Dzim zxoJ*hk7_hUm)uE=lhNVKY!bkUmv9w`Mv1!ANcV{sfJ5X%8q#InEEQ`G0>(*-(Z zMHO}mneiI{^Ng_Gy+afY*W3%F^k*$z=77Vw#Oy~wY;nX|2}DILEQ3m7?R5cPmZgK_ zeI(Pg*PL+KFUvlc7Xjpbv|`Iiozo?HO0HY|6ao`Zc`H0BDtedlE~CqCmnzbQJ~N;a zkj!Iv8-M27p`pzOmGGjsg8)eSzGB^<$2=b&M3WFUkcL*71itvli8!_?WfNd76wi` zDB$rL%K;Kf{L0UxA-KY7zEY^te9%;M6D%VTzy=Y5nn3uDq?UZFR-?Q&CXvkSDT*X) zO4v|GW0e#sR4d3@lQEC2n&BIE2p`9XHkXf4(pPN|14a+8KWBxLr_8*Nt2zQCYY|t~ z29bF1p;?>wKD%mYynyFN!7t@&Ji}^;S_0y~LyT2ue6_4uje@8{kJ?;_laAViBwYR3 z0$$9wCg8AX^pI*s3gc&gQ&?`@_Xd*oE6~Rnc+A!&lYGlu%Y5@oJUNg06DjnOrzly4 zC}4*4UJ2a0K+(ti$g4gqY!dO42zMVQk3(n4>%D7mH4_!4kXwr%} z&!oN~Ex%LUlMSsC86NSic#(iKeurcr=6Q#r%frv&MYcg0lrbG?I)-^Q`7f7RwVyx2 znl2jOacH0eq1Ry;;=Ns7Z%5VdHq#(e#Z$5~@EUVA6yNA{O``ich4|tMBiXr^KEsi7 z7vypc(oqM(pJQAE+Js&|M!W`p;qW*zK}&Azd%@P#!=fn)XgMB0?7ET#O7>U1%O@;s z&qNz|#@3g}Qu>oV-=Z$i&tRY`!XW0L5@L(iesbAyau)PWy@oBOc5pE&r*5)V&}drH=)=a{0F%-UKG4vQ&t z_+pJzc%(Nw5&K@FsOJud&H^t@Mlyb)+ZK%o`nHKJwRCzGBbi~=?t-8UV0&RT=U0k5 zq+>E{0}uEyXn8^Hgr7-<#)Q82Yw9FDbjGopQnDWCPbKZ6Vf5EL1j;RqStsGR52&nA z!?~)AKYRV93uVHC3;o$_ktDc7IQelWQ3cyr=@PxxV&epR(*Qrs7mC;Duaw%WUX?3q zQfH_G71Q*N?a`|kz`h0&DLp`a+ArE(gbi1kJzK!(-9iRWSV@MikFB!W&Eyu`q-4DV zzs1z;VVzpFqFWP`nsEq-&7vjd(jOK+WVJcvl*a)Md4sd5@{S?5W_&up4CT>65%W^l zx9izK1w$I6Ia;7R{rdYs55HJ`)RbgGyyCe6Iip6@;?^Zo?>)*Uv-vv8+16s#Grk3a zH}h$SXYWpj*sSmq&|OE zqgZcJTzS1X%3?=|iWY!Yfiu0>=&^uzl%!@1REYkv{}r7RwW5*XTO&`wk-YsXfdT7> zZ~A;oEm#gu_;cIJn%ujWK7CrUyZN@@LER)VA!v|D9*VloKR|NfDCe1q*gZ>}V)(=* zk*cJ2{U+z852{+g03p;}F0KvAABwQ`|MpY{tWW?msC;}*Sz20GZ&!^7ewh1WhJ1Zu zv=BVfbiLvcoA(qQmBcA?0UZTiyq)lC(;1ZqX0Ot^^qP8d9$pWs^5GzRt4h`$SdKA} zof1x;oFYhR!(b7uUe$+-U-7mG)m(YCs%9<3f|yJ^sLGH+q!HAfywUB^-`ALKX^6_l z7>E(Gd`pJPb1_U5uEzb5C{<=HK;u2m(u`LKYSyaG{N+rA93oL*K-~T&%={I%xq`zD zr!b7l9A5I4&bLB<&W5hLoC)MTY{4NUCz{juM8oE$zaF44(!zu;iod4UIG>yLbq9NU zpRo*&5V}Y7K<9=2dx2ZjuKhikadq%sKZ-wUGT%NBvaz0mvW_@b2H3-Q?er0PH+M@k zLw-=eGFcKno(~~B+&@6lW-ChGx@z1#PZ=&++8?8GMV4)?*OBu+T>qAJ_&|_;Z4pG6 ziXxF@OESVZx0ev~{5VG>FK4MhNj0e};`~NGqx>bGz(&J zoEP5v=KMRS!XY08su-e@fHqkDu<(sQvLpR6VDv!Z+hcgLioPF#y#4M`dnoSvEv&9* z@oeAt1>K7ekD@d{FUuSj`bULg!{4Wx#T1NdyQ8HSZ>#&XUkUugR`4;MSJoc_vw*>9 zbkGg8-JcQ1vgO8#lLZr^_Mim6i7G=4*V1$N@1~srU65ilA0$LRwF?iUvpDEubFrdO zMw;{|C}e`5!u>+5gXU~mGT0vqvs;xxj~+Wt#d5(bF-YJc{RYiPw2zZ>{rgub?TBxC zopwH$rVC}0%VA}OUC*aaW6IvlDx5=f@@CwbO~C-4Z=p%G6~49?Uzs1>sI7mIMNPy* zK-aa{U?vExyKKYi#h`%ZD`XrG9iC(U0~Hb${^{>jNT6t1rjKS;ZeE~Deo=8|PDy#i z=gO+;n%cVhhQ_Amme#iRj?S*`o_|Y){4yylD_3a*3#{+$9~}Nkg+~ajPgYwsYFFq-!GE_&YQ3p7QOx?iO)GhiQLxP3xB6V#3Si7 z`z!OmwMBu#Umx_G|EVx>P>s^&K;WM>cYo4GM`@ru5-Y`Nnv zRLK1C)8D9&#X-l!`r&&jgqQ{x<1JOFHS`A+(ohZEo3FM0jSAT_HgZL|qe4t&AN_7p z2y=P(Uz!yDN`-ujheZ4o^7L{t{-8pX!?#y9bM8zE9J}{>eCl0r z0Pd{qyFI=;D&%{Ou|e?EAA5ZFR0!u|$?{&BLIxfswBs!UvemNP%85IZ!e93I<}OTs zqe5~D_v?56ph8ZkOb(jP*9-4V3cph!2n42wZ6MmB!*(>TJ1XQA!%-)07@huaREYic zo6qDhlfqx95QaOE0!t6W$sqf*>B$iHM$xloUDPLK9z}TDaS_zr&C><;3&_`*z9jq(6B3T(MCqjMUyPs`z}xdKMoH z*F*S6c1OVi^zA@c@!(rrPgH?CVf-QgZr*)=WWbUzI{79Txp|dZbd>7Bp13%HYaWPm zQyBemSr5I&(F5frI7~JG0PRpG)Mqd&c&YXk!TU6%9$u=a+_OMpv<&~(FhxGqV^NZc zB}4(r2Y4E~2y`wUNQ8N9$g8#eS_R@{8Z07s-jSi)2CaxryTX?WTLT7{8=o?b((#Pt zykzMgBtVA;X}qMlLC?V%N+nAo*gs}~4=d#pH*p_ue(4)V=~}{Fc#Ob;`Kj4%?tva0 z!X$#C1xy!wl1fxTDunEmA;n~Oj04(YkwCb^H>)!FWLv(Kpai#K8dgGUqg#0|QoyVn?z$_X#e=HqJ(8O3SN~BFr$3|d z?01twvC&h9nX!A5f*hj4Z&XO}i~+y=+|1k*329UDM`yOFuaK}f#W_#&Y;~AP!Jf*i zH~`Cnb#{gKXWgi#Om4;<6~aZH+BT;7Dq>;BiHl0-y2Jr0zi`(=yBR%HJpNWSsN!c6 zRF&CfLrRcj^k?%q*$fYi3UR`M1ApBs^+1+hf+sm|1<8~_2nLss_|Ds~Ld(2qrI*2P z&tWCBhx+}6x|5c14~EP{{rRN7<0RH{$!_iisGxyu24lLaNG$E((N>66GW?dS%Ebhq zKOnR7^nX5O>FcV|{m?+JR{&gL0@Z@qcda{K$Vz0O*N2Nfe(Q*%H<(UY>cUU`_Fca7 z7!|HdnLd;DNZ+`>f2_*GZYDJBXcNv8OzT}-3L~O^t6}RW0G9PfI~OCqIInh?eT(C?moRa1^ z*{qR6DTZ!>G@U<=)Mrv`BE6%T`=!U`w5m8c8pMsY3q?EK@>*^CG;Als% z%i#Y|Q8=Euyq)Qp5Y!7(qhisy!@fBlv`bv8@QHth`IQGzkJXz8OCZerht_oiNWpm=+RJ^~^qWcH?eq^ekz4O5^WRJgFe>DL_k+A(_F&5$74o3!5c|9r(Beuw zazma?{sy1UT{E`umRrB&=I|TJzzU2C`HT+yQMz+=G6KE5g0Xr2GOl<*(s zlpTCj<9wK3`l!bVolN`a{Gvi;1T<8Ajqa%snq#PpDItZS!$a+JUt~5-8yFRG{%9li zo(k!8c0TumaQiRITY3BYSvuTNA;B~Lq5mr?WC6=R>lYQWiHlPcSfCro9|2zyM^VOo zPlfoa6PJ0mwg=T2@e7>?8DIyus|I)X;-%OJuf7TDckm0C2_B_W*XE$^Bn;X4{znU~S_F;bT?;KeY>#g?g6SfHg(#AZCz4$)lG8DgJ3f-PF7o+o zq`*a_5K)u}Y>!VZO3X1zJU&XYE=qbfO6DR;4n~Ds5P1Hl?&FX1`=3-d^zHz!LK0j5 z2iE;dg=R7H)c0Ru-HU&k&@N{`*~m%${Q&=$^ZT6%?Ki6X>F?+Fd#d}tFrnR_-wCGm zn_(ujlbvt>WJ04;aRvV}q0udScQy(AqPnfv6?>L^|MC3(5c2XbRCi^v@7?*mSLK1g zFB96I9*&Pcbzv$r7}i~=Cj6TUO~Wo;-&NV^cN3ZhyyH58QS}y$6fef{_r!l=LfcHI z;b5hGV*K#Vgr;0!WQO_jj_UrQC-jGh<2MspUQPl13zQ<*`901T1$KV_yNBb`A|j0H zCeL4w?E0IBGLzr-5__JFoVBWk#Uu~4UfbAJDO-ABF*V~o7mbDLbzN)c=T%Y?8hZk}MJ z0y>}-2(U=c9WlaHSniP$nbE-_g)(+4Af}Jz`yS*1Sm5bUC@ag!ZhD-sqK-dNylbUUoK>Fpuu+M2cMHvTCu3z2VGk%qSRb8(z`GWF8eK z64`%`@ycNb{4{D3k+av7zD$d6=g8iEXW5cm#e*CVR#i zuj21YjVn#$PH*MC=~SuVk-rOSO{-YX$o*1m z;*oBs0|d4;`AL5#d(G#fuo`n z`bsX8obP#yR&{0W>w6X2%y4ye-`KX9^VR%P_0s1L8M}rq{u8t4KQFqA_jBTjNj3fL z8%`#4bK#f1zSHGmv^Yxzcmn6}N(GDKyu3GT!lFonpm3gYU75Pssy01=CK|Ol&*yr>qveX(^<*Ygw}hRIun%8{X6f<2(9#A^ zw7^VgdK-CPIh`THn*L=ZnYk}q73L-vKQ~OwNQT*7F`LTmiUcR`GojKLC#riv=?|^; z7ge{FgZ6b=Nz95E#flca+QtY#17o2ZvwqxKK2|0jAbfPk`H=^95{Au8)HI#n1Tj4( zC|qlDxzr7W<-))Z-W~4;)L`2LUCmr&{p?oVrA&G1-yGD7q$#vJ>57^9kWxUTk9KD} z9*Q@Zt9QAe>LyxL8s?w^H~GBGb0Z&$x8k>U@hRYE*Egx#46LZ3S6$7|QqWwqdmr3@ zmd^z<1pP6y8gI;X-As&$=BveAPiXwe_t%@`B0UOtqfwW;Lg;`4LiagKJ!9K2eQvV`MAUH4)6lp z93+%f^ygl<5NB+0f>&{{G~xaL@4(DSNB-j6`y-BzqBy&-gHP211a)psni(HWJs+J~ zt_*5lJqKT-8Jr4RrSn+dum{pM93Z6{K8ad0QUb`wJRS}#KPx3aM>_5~Lp}FRo<1dz zHMhTioWBB`Q{X0#u7PjJJ=J}j3IB%GXNXlkN)?~t*e5ZMJt0rW6d2&{A290amr6*L z6BlT^5>N!Ax(S0SxPvM;6|(%P%~XS4=)!SWde(FE(Ebc+C$#P`qO4OTtx*lW%?W<_ z!e!8(yHFggM#s?y3UWIS)`T$h_}@|8i{~LrcT_ht^k59K+AB5@|+hMcy6OO^r?S0uXNTfQB!PgkvfUf#}&*ZMb}9I7S_t9F{pE!6$tnjR4Ch zTog4dl&9(dz&au65t3zX)u({TPhmJA4XhCYauKo_5%^ora8WE(7J7cHK>^T6u2FeA3KH%k+K*#aFa+YH zdA^lUqvJsnoeJL;`gDvGeWjoUYZtktbxKBzJYtFI8AU{xMl`Nt=4g#!m(#MUQxNco z!4{6~(m~J=LQp#NBqEAKegoCI?Xk9aqUJAe$;5*_p9gZkKm`$)Fv~?CuV^`M!HeXo z5lte(>U8}3+>&(Tz&(CI!$<@#i?ms_M~=3-JVat;v3WFZ-T_bT+Ynph6O-`FMMvK` zJH{XD#B2hb_=SKtOEG>NmNFkqukDQ~YOyND6I(0@EJR@@{8)$s%UQKr_7fEVC7iQb zbb`F18~}bRKdCe=8OWUs1tjoOCP1f&?8kt69BAld#GCLxkkZuNm|xEV*AP>` zQKt3@Nkc!Rt?9<0q`&PY!bGD_Kfq33l%og+VUrf5&kCng@nYW16cx~c`{I6LNjWy1M@607t%7hi8-V;DPqnuk0~=tb$|qO=n@I!f?b)xa*8sN zS@h}3>|jjas;n*#2*I+Zx)Z8=LHgN7=7|mhE3wH%T88FWwt_mgrbVJCZ}8m3aN(U`S^6E-cSW>PK4s2>!4oO{)lL8}`z(3a=Vi|(?GD=CB@c$v32 z7QpWa`b3Q4*^lFAoDZbRslf6N90k0U&rjPXktlFC^o+^t$Nrd5V5^4FR_Sclhv8F? zR-$fMyOciluy9uwQMsK`Thei#lHr}`CuS_GBjh3~5$TR?PY3(txYo>4Vp}k>6*E@c z^mfr`o3`B+6u8Kdt2vFKVUh63Fk&$FMUOjf-~@tI5&|) zu85gR(bo_Wd%paqZst1<{0b529KQ-i5g4)qQu~1V4E1yO6o%j-nm~9wSI}p9tBRbZ zJRuV%j;9#9G!>#!PG?x=L`0?strmWVpQYYDW~j?oDrD`va7}(yrS_Id-{-AlVQ&0o zRaLtmB0ai@Np=4CyIV;`)1YUe7naB*H3K45X|pkFqB>t%ZSCc2?D!u2sH#pneDm!m zyt!zl`7|_R#Pg%)74E_liwRzIyPvg7A|<_m#7_owqZOL3g39db$}u^sljbS;t3E@F zEhfvHeTmE;q~&BcFr+?31A_sKYFgsN4UAv3Zl@KA}-R6^H8^wtmWo{yooZi+B7UE#rzGVqKG9t%%EzLEn>{_O7E{f}9N9Gt}9SNRmPk}xux|j>zds6ImMG&>& zJM-rsf_G4>!HB`Ls3n($S7WJO0Ca%3Q$ z9ohg%OQ~Yf{pP5-q(A5@r$tDa@EWmkXkqBalTcO(R7u)8PzxU2Rm{z=xyX0=JPIU| zYwNupxM~|ZL<6^RDo?Mu=N5r~29)y`f;XuxIG0j*Tt*Gsr7+`CI8CTD6jh3p0pDOkCWMXI+4)B!DhEvkw8~DlX~2)AH4jS~TYW-}pN5fa>ivx^m&Vko z@6@qvukqI@rU#SyBw$4r)T_0rWQ7=uL1zaw0zI>7A^H4J4NLKj>0||pg@U@CR%p_w zt<8euObjF+G8+F#qS`Tggo{8+(_$(#ImFq;Ip~R^YX}HZZ+B^2XV@h^d!dAW$YQE!(%MK573GU)Ix z$KeFyhce@(ER$l$k}NJ$y2*Eve1H6L`MenaspfZjH=4-$?~hiOn3yOi$e}CjS}U9> z>^!b3ylyYt>Q@AASA@t{MFdt4HS1owt%|3terH*cTwImW!lk`kRS;NHlmW|Ytv$C| zQ*B<;SX>LTSX$~`)e=}Q&02fUB+87^XLt)Tz<6lZyw3G-*+O8$)th1A^@f9hEMFc- z*@}QAWy2#y$en!CdtanfbJHK=^_S$$;Kj{QH}JdLO*OV@2<3)I8(c)nRzmYuk`}(s z;#L~@c80)qmezKT+jd^cc0u!Y(c*T=?KYp@R++$#F#Beu+fHrDPJQ!ER^}>u&pIr|X-|`@4(#`?vdt5)T4>KBhnUL4Kq~JuSYGydk>+cFO`pR zj<@J2C=pwZ3&xI_%!yD823aUhINeWrqbf_&VB2&gvhB?|rWGGI4*0`}7FC+rl}|*& z5<{xyGb!Vwnoe7>_e0kdk$VuC(@qsi@t%(=lC{I=VH6!7RU1+3w-jVMhC7Ll&g$+z zl+qR9G)I<$!Hvqjtvf&ZsbmA{6kpVUTa`dhLVwn$+fsZ(p{Rh4Q1tXcN=eV`Q~UQ$ zgJelX0H_1oS~MgV6I4s7fDUoA!MKB`W(Q;vHy2r$Brmlu9|l|&XtUT0;0(o77gFF+ zIO60|T!D`)DX}lB@9RFAp;xUG*Q=RV?b_Gf%z}#U*ZnQmgWs-)q1U4nH{*gg6WTXZ z?l&{3Hx#;AbERa-b2m%coTym0jKbHen64Yr~qtC={Cd5;oDldyE+M!Jb>#{BEI8OrBFHRLavC_AHrx0hJ}w)xOLOqpH1o z8|%s**b{bP&Rz_A{zj{VGZ7?%4SOfl75f}oihU)Ea`(cWTEYGS>}L^pEPtd~%1u^;pN++BnK9?H61C8T-5(kyV`T4e=lD7S)W+J2x3OxXK zq5!5R&z3~nJphz5h-+W;C#dskduKM!K}1h@B-B1Q2E^yr_04Wwpb*pZN~#+>1tt{K z_s?x#f=Qn8Nxe034oWO+7?|I=LM3H*ZaO=ulr7%z=8K-_bz^*-kv^K4Ye;f&)6mzw z8+39e0U522ZlNh9&BGX`8j3(UFX4^_CJmd?mXU7>FqutC4i-I zFSQUfCMWjq?H0IVh5!b5@hH};-cOIE5}pUJW%oxjysfwSknI;j&W7iSptHL6_z|lk ztl5n@cR2lJ5HWusd;WN~bRw^7e}L2{`U_~FkY_<}U>Napjl(iej-r|J_X7$1L7c^N zRm>-6t>?IlegPZ;lzKs2rHf52SC==a+=mK&UcKW0GG5`OHwTdj zhCZ)5UK>nwhaZ@$JKdTneA^Pr&o`CWS>+7H5NJFD5!QSjAe#2N%4OdNMF+XE{Lfaq!$cj8|Ef6Vqf&v3+3JK)e9521-%a!!H{_WNemt- zBIFfQ-}^`z0Tlfx1sMtbXl1Pc{TTI+efqJfM(g@Im@hZroT{phKq60$^%~I;cOKHol zSFEO%-NfdD<-BnAXjZ)s!=$bHXi|f%`sqsttp=D{(5wg9Mx?EWIKKs3566Pjtw#i) zXf~rFn6GWd#3({+#wD4DY`(|{qT5a=$iB9nRMrl$ol-X+vYpm)N4J}K7xvn2)*v;+ zZqB%Lh?5(+2Hk!^kBQR$tDSv3pvvZptNk}OD7wQE1XIRg*_R^J;d>zSu)|8IAco^= zgshC?T1;jq0N}FY>bQ~Oj^VVK5hmlbm6J+-w4PTw?6gzTg5kVdF(Tu6(+<<^{Ck+J z+r@fnnA_zx^6Aaxeha4i_3?o%)yFnqLv+IFo zng*l*wSgoLKcFV1Au{{7p*b;95brK+()*VpI9Yf4>5u<&6pO-I!RbrAMj z__7zJqnrD8kZxP}J>N~obO&`(f-U`DGGt(f`FB31w+xUr&3KRs>Y|gh3{))2z$^9d zVlcK0(%8))XaRMz1X>2aXINQ^df&|s*+np}q#~II^>FuFhDI!7k{!%2L6LlzZgz*+B01$gg3)2v4nD1G9RRuNG}S=7t{ebUBOkx9E*w1O!8a)DM+ zSq#}vWCQvY3#_7xOtYVAqYS9_Tg6lsWiy%w3}|dy#WwC{GrOY<>VU1|IvH|U!vY51 z(_6<6n&v!9MHw=Zv`&~P%Hb#t7&0}sPF&c{fpwJ)TLfAstuo~Dj06nZ6j&$kn&$F- zLm6@Cw@x`N%H=-@7;)LQPQBjE6@;RUdVp=x5E%1>F#|`v>21={%<^7PfXDnLZ8C6+ z^F)~g$AXP*GD-LHUI~K7!vk%y9y8`k$OgjNKy0!Z%<`qQ!C&I~ZF1O)^Iw}M6bk(( z3H^6T={}VI%U(Z$)aidGEJ^k&L%hq5*U{c@G`Mi~jDn`X`bR)=1E9rwWab{!MU|9V{gS zYb5w5!PV>}z~G-cp>m^NFZ^RC6ijf16kzaYClq&(%-{T0zjs0vxGSX;Y!}cCQ-TPJ z?n%bqlTaa!-MdDDKm1lOlJVYewflKg?CIV=k&M27_^tkjB%_My5%hPIarda_t`zFO zL>d1D3Tq@7wn{kpm4x;U+tr^WE3?8s|J*ZR(rTPCee(F(X}}2XRAlN6TAmPs2;XC{v4P1=gXI3)J_c#>HLxTmms1%{lcneX~^ENT6Cng z0Vk`KjK@mJcuuWAk@rHvDrvqjzFtA3l|83$MFiV;^eLcL2PMt@u(N1Pc4_5YWD?5p3^Us9w1t0Yh0ie1pfI-V<%q1DTUWL>K+4KH5$%hXWvt&b9Z& zPfA1KqPn*Cb%|9hYU&Ep`>MfToluS3v1FsgB}*EGn%89OEYo`>H%w|UU0qbhcOMEt zFI2#feLR2?9Ypd=LkqRiGEfas2wemS)(1 zZ|Cdh^U%qq{OK+57Mga1A&68{?=zik(i!2!X|F$ibsYbCCZNgBpZu>np~BinG@b#g zMeWYpRs0SDI(AX;dzS3sS`UIpc8BSUYgtUgRf7T-R-RHJkm>^rosnJf!pF7}ZXbq!63YRAiORt0efK3pV)I8xB;`=b%I*@CN_)$rXlo{@^| z44b_%A^t6r$Q`5}y$+I6xj_|Kyr;dfEuYh+gRR29Z14LL8g>&O{vh3HF^B(=hSSTejDaZ*244-{ExPi8rEsfotm${ zfMyQ_O}BDFO?V#`u8U7_Ps7InKvz6FA{?``Sp1iGs^`@9qGj%VOZLoVI;SyIOnAic*9fni`6YLM28$n?o=A2 zOIm4Ex*O@5-=MeN-uDyd`L6RjXRWi=v;Wxa{h7V@>5tJO)H-lN?OZDzA90&M4jFfEz(6*YEtG-Z9Si?&P{9FoF-9VE#edBmM{&HY0qAg?r(ThvDJ2pTS+n>Q2;ghbc|A~hh zosw@Lp0pw+%nmFRk50Nr%4e@608rs7cZ`VVr4U!f8P-e7=OxIuh*Aj-)z>PF=dG&N ze=-pq-R@Tj=Uc7ei#mn)y;a}?0qf&=Wluxke5;N?aSN4DSzv&Jf2gS}LjP&#a4kYuTDn3 z7zNdsUwkXiu9zpUfm+U-C%eQ9O-xa&EZ-zMq-iYWNDGEn`md&Kt&v?l5RY;zp!8d!8>< z4Xc83;+rbpf_1`fvE)kO35rKAL9BVj!8hJZ^COUtUHl2AH3oE~n)+YxVRrp?lCe9!mHKVA#kZh?w@mR}*|KdHlCwk? zygE##`**c?HH0VwtnkpV$BM}4-}P)*helemUx(HRxF zSYbJp2n}y5$JcGeohHkVSOuo8`bp)__J?sQ$g?p;w23O_87d1Lfx>ScyWj_NxqElT2F!fzvjIHLr<8NZf%;A=CZ%9Jh zO~_b)YOLh=8bRLEd~}?9V!o(jW5JK<(>AT zs|NWwdp*4N@)YCfjr@9ji>REzF!Y^a5(embtEyhsMqUf)C0n!@(t}8ZD7-dIoRkMG z*(!{USe+pLkhaP^FZOC!YXGHXKurM=sy7u=doiM1QfGEbk0aJrdroDb7h!t^G?|s4 zOx%nXp-+oovg%>7%c*L!^d*g$QM=WeVyQM1b=!L~9APsURrD({=pZLenbF0jcWtH)N90h$ywbcWKJyU6hcV?WqK^aAPW zUiL$yWo<$APhw#M+g3_Z5OQck(X<)5K;ApfmUpDOt?h1upNBnckCeUhvCq(kM5$H% zR~zpq-|280JbL4tLf4Nv(t9yZ7NX?qC)0O|j^5{(b!YrNo@_&h^~+sj+0wkwD&Z0F z=TXVG9FQ)D_O_lr+F+pXHjiTZIMhFkNd?z2`|1&trCtJ`6B{so8TQfnPzo(SL}}UM zP&z^KlyP`U8usZMAUCCef^yE@-gFcf!B%;*o+g;0a?EM7QG0G{G<&YYpXx2DS)AMq zXdFfHn=X=FOar83Y=nJ0npD4>vg-OGN1MB4UX`MJ?3L$oAWz8{u8IEX)P!w`ug0;t zD+{qGmkJjE)@#Co@i?TnWVqUs1#K4<^iX}WAZjdx1)|i~^RxugDrQcJ0mAJ}mMs3T z>Oa-UQIphiy8}7rl3rK8HmzDt7^~%MC}|A#(lJ%G}Cad!Dfa z#QE-DvRcBF0;j>;D#{?2*B4*?JaxiQ0vmC?FEd7VO3)Q=)eEM7%4V-IcC9Zf?@cxg zSR|V>&;t?9A!=>}ma=~cePUR_K9oE;1ZAZkF|IeP`OMEfWHDVN&<_z{pU6EuH1|QHVAWJQ& zw>f!=4QBx4w-}exY=Z5NAnuM3ln0e+@97V3JA6(7t5Tx&9xv#ZQf-@~S$Y*%6g`2VuP6XgC%)=FNY$_zs#k31N6sL&z1-^T6S70EU0a8@u6{QX zP3JU2(+b4b_sp7noedrjur^aQmn!)@G75de#l|q|0qWf6=1lj`g*)^BNF}0H^1BC{ z_6JHu8g_j$=@qP-^@H@QToLV1BUaX}_Cb2x8rnEk^y==HHj-<7f>fI6OYJRL9BSL% znJ|Mm3j{JK`YKrmL~8u=``bg9=!<>xHWQy#OKaWoMW822<1Q_inLi2?_3ZE)3e3?-OGwjK1He+}Wp; zmO3Iopw&L0huzX}Kk&R)ni_@32s?mlpm&A7acbWvp}c9|?l*rEnEfUQ`zB0rC@OUL zNc&LScjbPHcAZ@0TOkdYm|=owzigxXqrtf}MC$oO%nL`ojG-9T%hV_Aiyt>E^4?vsYhXS928C z3qsdR+Se-{*K29l8_m~Sv)5 zA~8k*Kj0+fdY}jh3l!fOP&} z?)9winFflQU(h8OMzeax%6_l;Dt_pEj3J5~MCkXf`VaRy?0e0ZtHgjoA(D0OH~V@o zvG{1!=28zl)Zm}gd^KZs49Cm$`%)zvs{i7CVN0R} zUh|D!dFYAsJ=1_bf6g2I&zkQq_xf)&-`IbZY4D@wOE?4ktNZ0w$rqk!0J}+{{fC;b z@k)ZxZ#7@zB~P32-|XwFX`aZ8e}ozYy!VHv&~iiIGM@N9W*Ypg`TjM9_Qt*bv*!Cp z3hn<+&G-J2eBCQj8*Pk5s{dBLxYrcP!e47`ox+!7**J{4n1(IK! zRyAp5C^okpi``)?r*pmp7Eab)6s4yNm$ZYYi;<66&z9aOTl}xx>r$nQl@q@*4OU+$ zz%vclF835r9$oHxpLqVtG>BOI@=+OfWIO&ct?J+vQQ6f=lb&TvX0wl_U@?S>T2N&Z zmbNQcWH(Z9t;XGGDO9}3?u);DauTu5so0}UJ-ynD_?4OXb-5Q^Jtby^%#bIPc8sn# zT^K=p&zrwb8+3FV|4et!C+@Dqb^RQWL}wSGq#A@G($n_D*vD&8WnPh!At>wJo_{nk zmB=lGpaU^6AJUEtDBTh8krR*<%j^R$14lU3{e79uA`z-u>KH^@ey_9sV01UIa_B@5mPzUtvR2id3 zK7PEa_?1~2)(L4WvE!X3L38rEh6QchTwm@5YlKVyA=2nt$rXYCT>m5E2iMv_Hp z6W>D(O02?)G*%@h>ZgyshZ>xGn0SAFROX3Mtb_7wvW@uoyM3LYZ?fygzJB9=`NO>q zPoe$8{gRGR0(Zas$TWcSMt{pRc=>E*`mdP=vqVf*0na`!5TC$nzO0$PMW0u0-0MGT zz8h*M^^*go4mEvWc3e&x<}k{fx@Q#AqT%j!$ugITKQax%%HZzx+4E_*`(>c))k)v% z_4!FN0JHpGxz{zYSLANo>*fAOJpH=PYP{07*Y*Yknc?>J(+&oyieTmb1^kB7PWJGM z(3j5_W8c4nhZ%eR$X1MaL1T$h1U7a@O-isxmsRe~F&|tXC$y@=f0JWk&V0 z4=O+0FRZR-eL6Rp2G8N{m$QB&skey}{VUuJe{;XQO+D#f6}&hb^2B_X{-fqQ94PfJ zli;7%d5*Ja z_DEG%YLoq!LjL=#;18zF4^OQ6KX_vQ3bpxXN-zfM)B8->|Nkq&`gf`Sg%S*Q5YxVy z73e(9$8ehP!BqlBL-22sj!5Zw+9?GE2y_Ez|28Y2w&|c#?6^rf8qf7(mHeJ`B=J)1 zCh3S)hXT&D`BMqLi8@mK8mRQ5;8!;NcTX%IN$f8rIR4@LJFCg?Mua@dd*k1gVAKeN zSHETjf%M;#j^LiybXwKm?8uv>qsT*eNcYcd`WsJdJ#Bh!E?fyNuKvZe`A=pABm;OK z|HicWuM&K|S>DZhvGwlHS;3E_BlxV~FHD<%m2|{*4g2R&M>kNL)7AfZ)X|TmqsLF$ zZv8dsh&?pp-zObCd7k-O(h+XnlYdA$`rlB36Tr9G52A`E5ovF$22;x%{7`}mFgbrH z!E|)Blz&x%4`SkmasO0;b6C5LdNu!0g8wor=znql+pk$c;X3L#TnU!v%`pF|1Siy5 zME|A)+di*!yG=5%j?M`7PCbBoV#fjo+~G`{H5xi$^I8BPStmURmqFCkiNKBZT?D3k z{-fIxBf)BinS=v>$)@iV^NG4Yl1guwBP#!$X#@Aft{W;b%HxZ_%azWKrCM-CPo-YS z<@M9T0wX9G@ZQbeEE=IiDwH>PqX3mZy(5=VlP*e_0TF=Zw^G8p+>J@cuoW>j6%q(C zMeP&|Kgw)S5#JwQX=;HQl07C^k(kJ=9&_Z{^HL(4?=|GCf(n+45|qkJG%yZDKNx0| ztQnC!p9DYz=R|c&OeW_QGvZdtz3~pz{8+(C&}>p!Z6>C+dbRlqs=J5;F2g|RVLCX3 zuH@U63;Jk(Ou4NeBET$i^6NO@ZRN72Vynnd9kExbPd);&QKT1fEq5)0*_sB5u3rb7 zCBy|+uEo(baqwG_Ddt3M@9mB5)Q4BEtkFNHlkp`s7^_*a&%kn0_p9xiuv=?-Y=i)v zxq#0KVn48nt$X9w`DF^o&3NKzA!ZkGtq&Efwn%b3UdGJEi678AVm32H> zQ;TpJextXrH6L+G)NOe+O@(XDpk}W*)WGx6d~&sXd6swB_MiIH_c@FHm=%O9aemLH zzi?p;x;_Hfv%qHs{0bd{Hx%-wJF53CriR0--#v}qGWHpo8t0yhFG?|A(ruV|sKKdI zi?PEV)$o}E_e6UzY=^n?cxHP%)dXby*{N*kwWeoHQ&r6b`KaUU`r9%zK&l|k8a{xC zlCiaKLXm(rxgL!tEe-V%h5h5kCyKTE;b_^rA#Z#7@lJS8wZ2d~gj_B$z>|*P6!O@H z%jK_Yyl@Knw?v-d1$7QS7Ap(e+TO<1Hh$jW`5c+*RIc&$;j`hOTsz(Tq}68;^`rAR zvP)9#=FuSGPx|vRUm*CMLd`B8iCu>}+N!^Poh+Ul>jE{2CXaGColXzD=%oy3fBPEQ z)1eMb#2_o5>7@-K5a#viS~QmEJodC-25etK~UJbn5EPKhQa2;iZ@KAtwED zpji~9^zEi!f}lSd#eHl?^h2m=T&-VA;|9muBZEDSO56q%XjN0Zam%u(d8ewCo(S%jbfKJ}>Ocx97| z4i5Cl)RjW(@sy8t$>31M=fy>;Ms-*8YMqnuLH3UEboCdOCX6S-JhI=d@sbnq?vB)E z3B+d4N8?gKr^K;th(OeB`>u z65|wkYjONwQUx5C>DWg|skmzdp7qbqI~I)f5Kv9Uyme+Bd_n6M- z1mSu6Kw)9CaHx$D7CHa`@$wj1oVvDsfYB0H!8a&n6Q_lwl>OpF{}|9{0taPZVUmaMvKYm z5C{Ea+8E*ESgn%Z9Nsm1@??FW(@>Y13%2 z4g(d8;?zIsO^sO9IPM47#;!wF83rb*SRfY-FyoXC>|#pzkRy+>zn7N?B}4 zU!Jopw)b_>&CV>Rl=_fWI+t}1nXr`)ysqr#@+!{ULHnk(vghUJQySGaqc~;yjLHfWcN|o zJhR~`!&k$e5qA|U2&#;1tK9uh5M<&@L}e9&@C-QTEH%+M4GA6lWBgC5QcxZBpSP-E zp7^nH*9f-5MSe}&-fZU?&zIc*$9xkKJ#Jc+p}mDr0JIn!Ll@MYPv}Xn0J(C z(`Ec;)bp*Y1Zd(+8VX}#thpl**yd^r05)soa`&HAqq|b8ylChGB>_3EnV$ym95`pJ-U}|k% zdd&&T4lc;J8vEJ{m^{1PIzDq8(i-;)^u%d^yJz~baAXs24-j$m zAI!UO2?L$Y1|YUDkRSjgwlUznie~kky7DQ8i?;f6(Wnc6m|8 zF*;*dvGT5}&$OywbTG2 z70c4qV)?;g{GWKt8N53|-06xImk<$gEfM70933S8kepoQp~qh+sr*ZI>5Z)l+jl?! zlbKqVlU`m8%@17Z0H~@;$`~$nmG_<%>oZ7qpIRu%i!Ya1E+}KBo8t)LV52olD^d@L z#>WQG3%_mHgvSH0fKFEV5v190d|VYAM>iGBLXV~fGI7;hEQW{*zmCITNlw<}8g8^t z2q_&N&lsRWvjOc~LKv#12jqOD@tfR3dn=omRXx!P!=OzmGg1`@Ee}3((d)!+qc%%^ zekR)cAw{V7%jaP@Y8(S~mAjc-27KZoJ%pk3>56VPH<@JSOVwSECM%7?oZ%+sujSq$ zcqK)(jbAoc7!2Ay@t73&65up3BsBDqi*JZ8iWs7g~{QCS948`F{1)^{S^JmOJ@c_}w+%S8IW(Ya>@n!C%*28LWkCJz*Mijj}+E z)S_3_S`W+|O8mP1NkPYKeLa(0K(~7h+8Q6c*ODN(VQaHq%!-%)9y8Y>x=f0&UvslI zI#4xevyoMjdTO(Ue5;Kd-TA>*W~S2HRBSSx#jYQoSS`X{^6k;Tdt$G*=g4>9o>-r! zH=fwF)SZprJhAc*Iu78TSivp6SG&-P4ZghH>+hb}eU5GHs9i*lJ#g9{9nI!Sp~wOqqB-59id|b?PI7ARakw`3u!8@wp~-$ zap*TMD@#fiZe@3+xm?O)TP$Mp08QS;6VOM{x2ADVSmrSX49!COG&V!VG6>Q&=3rZT z+PAOoY87q-J_-e=G8|5msx;k_vamc4BXoxnT!i9(~ZJP^P$A0bGq* zk{5Vf-6+A9D;={}Ra7$lnAd3slS|qJ2CuF+*m!1}uXkYAdlWFZ5}bW^`4BEyr@_vf zVVAS8Yqpt}=de2!f4E}3KVR>$U%`e@`#o?!!Cj-XbFj3#HygW*n0xRa0#oqSuf>Bo zFU1bN=OK^qV@yVd{|cs!lb13Liy&!`zN#y`RWXRizX!X9Uo;KBclOrJ`9t?A;HKL$ zCR$B!|IOJ#H&1|dulX9rj6DN`ku`t4#eW7fhr3p>(4SqyhD4BLA}@bD!Qa=r*2!mw zf85iq_sxb7Km2MY@W>mXD;_G_-XVK2_)8Pw;4y~5*a%w^FT=k-dT6zIbE(}&+d{A( zr{{6r*n=@_f$(+9_w7BJm78OJEJC-Hb#4y0S!P!b-(0grUBTEe*S`<=8X5A*_eBH6gEqyeKGyx z`F^akrr~cVe8EE;`@RuTeDj71vBFOom2Heb+4=Db^9^)wj@p%m?`BmjUBN#RHjWLv zGx)7i3zWgw$nB4il3=ibjEXwLboj=wSE}Y7A|UAsR_3ktSb68ed)O|S9o^vk6>LgZ z9pg(FqtMlR4h_0v*cV+X_#5$QA2y}l661ahTWVELy@V}Q00o3W23N2zQGxt?;76X_ zuri`U)ianj`8L+#A-2;L40URkcw2kDcb5jA9fH3HYu=wqAJ%IQ-~MDt*>(kM`~J1m zdH5CPL4Na+;7jwP%by>^kAXkeLl-sYumz5MiRf_n#(%hMxU~N`GULG&Y!|=b$4*+o zkEd&CdW|Y{RbO#|M{)CgNqYVLYq%?MW4IRLtht7Daa=8M{JNp-A7}r4ofiGaw|773 zau0j?N!s^a>8B}Ij5lZOV%^+sGml;=;}pegZyJNfHB1vePJsvi&0NAhgO!oN@5VIh zQvBz2{{962_xIWE{+EjSm%fm{C_w+OQBkQBb<^>nN=8&q*)(nxAO|oRhR-3C%!mAM z3Q(63>a934D!2l)QcHqYKb*f9A&l(&#aI*{PDSz~yeG3NEeo#?Sx7xuMZa9Fz zsXSqndLi45*KjXj{`GkFu>bux?n`cKP`_TuAjZlx{J$zdzfuj>yEW23GLb7l@yrXD zXc*yrA-Hz1#sVqF>3g9Eb^#m@kb)SAN7E4ZSxwv4Si*wa8F6)?Vl3i9Y@MS=cp1n( zuyQYKqk8mW$U=@Hh~goF3=#>z6UC>+#H7{*z0jY_T?vX!<Ij0o`snw@q znk(SNGLtGQ_VB||MFN``Uv1b%V+p*>{o<%qFQnqB-1FFqHYQQM5$s8k(bc!9oy=Gb z!qXq4mELtVFw_eLMUO)S%Mr{R`_xGi9g1pM zO84CAF|$7$Lp0ZlZA^`jJ_%A6ep)8AJwuqDQu9KSGBkHkRPn8a1MvmcS{=HXYL0At zAI15ZVYsl*663ZuZIzI`dMf9GK1>N*T}E*D#?OQNfQw!u-4a8?6M-N-rp1Ga8Fssa zA4;Pz59DgGLRNvy4_NCqe~#Q^sI^i&|LE94#+||5H{&Cl>tyrRzDHB|a-l`Frt3B> zw%?AN-~9OF`Y~t)n^CBK14azmqe#;b*T_Wbti3|-NmC3nE1la(du`rxyT`y%&it0KWQj;QTR0p14DT5pxr)U#wY zF{_OF25^2F>Vu}iuGkSOW+tj(G=nGdRw+p!&-go+!8~aOBeAatgC8!9iA3^|q-*u& zKa^yn!dZAUV$yp{cAesAkCjtyvX*y*^9(umN}hl&?rxu zT)s+VL242jY+^L1M`ouyyIf-eqwjGoGS+Ben50jL4D+q*XYHaml`8`T5{1({>tciV z=8#)8*4U>v+#|y6);Urh&{)=w=1CnDs$XrW4AqZ|iSC!UUTx}F&VSOrcU+!ywPn;z z8MN_v>D_Idg?WaCnN_KitDdHv>OLjM{hexNk&Jh}Jz`(Q-7haS8!=G_f2gwgqMI>GSx*1WfLflUrdybNG6CyWP? z-hMI^=#zL)pFsJ0d_+X3;U%(zILspsTL8V!!&At|Ro}x(-%rD;pLzUR=lnv3T{LQ0 zB-hY{0D#YSMyHW}FTr<)t5Izkd{;eXr$qfrWgIq<0wOEuJ#T}J2?K;P0%q6)ugd*u z9I*6roU+F}e0g#Gzx=G z{H0tg%?R>H7);6z;aDT?ky9fw(o4+?uC=vRlCh&-2^sJTB(<^j6$VC#h4$%&c29yR zt+aG#dM-V^doF8(nM=sL^C(>v@1=91=O?)KlUPoaRLPh0PBp2z?oNbrQqNqX^BqzjmB_k+ zBsnUtktm?QXMEckdFd&MCN#9;4p>wesk8uJ=Ppw3I-S}Sh+7U!CQP8ymN218_oyn! zY|YT#FL}O~$q^y`66zmy;z)~}x_-u7(2La?uX`n?l%weJ?TiTx6;O4G-J_>>wTx(I z?}A4NygDO&%M1Q`N+J#bQ3wMGJ=2by@f@BeqDf$(+Xr<$#YSLEck)B{knbWb;$L_t=n?bEBBGN!%I+ ziq0VrRjAs($UYm9?hAs3bERPKJDM@%oL8g}a3~!r+ELuc=EO_Z*tpH)kZUZjDp8ng zF`Xq+NI#*IYpIquIGXD)EwGl5*M2K+j~C2|iskenj~z#mfEeAb5Hm<3U&=ZJSdkyf zo*#O@0HZeMjR|$$W1@&2=UJ=#I7XsqM)MqybJ1A=v7Bb=24;j;1RHcjpfjODR;mbcQ*<(jYo>RtK21rMGQ0WzQwgizdU@^S_60acM zang52C@bqKTG>EXSCWd;@6r42FtjO0Vcy${Jm5LmMxdglg(tWwVJMF;Q9m?Hz4Q-MAHjVprYj zFff{l&3{wYr8_2PD#29+ax|g0ylg!`R~NuUBf42Ot*pn$pn+>sUo*posszMg*H$8F z9MLP7XV+ig$tqBXw1hOmu#*D{-}ul4E<(*e7O@O9G!f}Hv;*FMbqy^JY5Gd3_X4kJ z@#1z);rloMJ-MspD>3RYSI!Yd&5bxck(Zd0V@>|T#c}CnPtQ3up?-+Zb&%a!?zUEi z4Hx!;xS9=tl`(oPbgddzYCB1&*PE!r+=aEET5%lnTsjS}9<9X!r_+WUT~rK1`u9zq z&86po(C2Eh@vye@ndEjcd6G*kJalzz;!+|~_FRz0$hlsG3h0}?Qg#SVZmlg7zYpE> zmaKeraW|JFPTNC2W?d$X53U&6xwfn_zzX|T5drob!xr9g(B-<0KusoZh9$sC7X;Cv zLJitfrvq*3&=5v%7SwXR0zi%gkSEtCi_`Ed!#hw|$@6vpKK(XI^hL-{XkY`7moC^E9UohaJBvA=f&dE0^*mf3R7LfU9|Nfpnj3KB+to8RK!Yfc^|ZJQ z4=?#I`+>J~^tR08`-)ZhB^gPpdYk8H}m4Ou|1sT3f8Mn)>ipMH&19l1ZXB0FW@gi20Y!XSw$ zu2Y6fJW`-J-N+NnJ^Z%ab0UpW57oac?YUHS7-lxcjCnV;xtZ=0#NC%t^+i_SXSUG99!I<`Dk8u)Cwd?((-%Y|3cAlL=$slY=(tu zdOi%3w@HVIoTEAJyz=`} z>g}7k`V~_O-5KAn;Ug%Q(2!sUvu*|r!-7)mVt!FZL7EJG)14BpO8G&aH;u(YhA^yx zgO$=oG58kiB8@zf3^WWrQ{IZ4&DEKeyIcBx1@XS-nD8LxX*^v@%)&DZSw8Y*DvqZL zgRB95ft&A&M5R!v8;5-W%jzG;l?Ng6rL(DGYB)N}15J=h!-6>sl6rzw!$ELP?lPLD z8e0pfU}QOly#v{7{*E`Zf!3-kcs5r?twym$4-Bxkx_z5Ge(>Vw6IOVc#6y6<#Xh10Z6>pnLrL7qrbplz_ z*JD{XvoqHO?7Gcn3=k0;&=h070PLTK9pB|N> z9u8Dylj6GPB0#D*5ql+fE9l0jeYVzo_tK~`KfPi_l?~pn zSWv-s@|$R}WYWSxu{_|n9&w_ZW1r<%=Gx=3WM4Ef^4rU*rCj6NW$;J_%Xog{B0Fro zmDyQ7MX-PHB!X!4`mm%;Nto^EXu&VAH|wG+P$}Ye2tG(-^H4L5K4TJXIA#^Vb^K8; z1zX)UFDG2D?6}I?Q*bi*`3o?M2bw7yu#0_UBaQD&I9J|j(0YAxCI<_#8t~6ML2R)& z?H8?}ByvW3V8}KMdP#xx3JcA8_td-Cml}FVeaB(Zq2r2=daNP zZ4zj4U zj)t+AoVBkehqMyXu0E%In<>K=pS@aWW|UyR=6`gxGKA-DI=()8qX3b}FFcsv+tY>_ z)54B_DL^n7i8aB?9}+?t&cyd(vi8-^kD_wu{uRvf_Uz9J^INN%V)xx6c&+^L?v^dA z8Ev+V8vdxi+yQ+2tO`c253gmHImD%3((b1R36HG7VD-1IVQj?ug_vv7uV9uW^Dx+g z9s(de9e#pa?h$+qUqY2WfNPoGC3g3xoN=2WS6$cT;TtI7Xi10M^W`pL6bb(hWaMNK}nh z<1{h-62?Xsm*)Z>vGkr{L~VL_0c#XhlQsk%C6$W8Ka(<=nXixw=M}hGhq1AedxT`> zaC3dn$WI8uDn?F$@%ctZ%lc!Ai=W1-RQ_iu*5?{#ZlTG={k=!B@vU4>>z-?VN3m*N zRsIFV3VT2J)nZyjUj=tt%hDqv?QbkrmBJ?&tgbLpewRz| zU4#3q0GGr3sMcZ5s63@gH`IH%{Ry0=(~Uv*@&+Ts(haQky#o9h`G04zLSl3<#U5zv zlt% z-Jn?cJz$ucZ0&15SgZ}l+n*b5SgdX;ObdNULJ>b%tXM+tf3jGcudgmIF8&FNmHok- z&VS5ey*v0sKaBf#6f3Pb4$=*ZmE1W5%a_CRcND84z0MyfR;^d4FXGQ4Urs9P-Jn?a zKwc6&CO0Tno8X$3WCu8k)$zqj?+uD|DqX|#PZTS1J=ixy@E3}ee&b`#PZTTchQ%sj zQjqIkxmr+I`oW~A^lvQITLkB{+-q`Wnru1+nJaP75+cs8t(;ZHqb~ z0kh4j_=l6*RKb(&;?ON_zMHN^V-X%Lby$&a?GG;N1CUrANEV?W&M( zn_Km}Qhm4BRd*b=8h@}@J?7ThXofCX>Ugl4Dl;Bqc1Yy1y9;xIwWB zpDIu6n zOkN=?zJZVGtXsiX&oXiF^6&@+t%FV5N$5(SbTSWy-HN^E%}Eb_#1f2crc~~Q@t(J} zIn+8#e^ZnwV@}Mt+&bK_A(O=2s>>+yrJLQB{y6=C7=>^vt?!#m3as9DY-(NtL@f}d z(@AVxYMbbk^GxjGNCaZey9{fY*|*dDS^V}|Kw+G{x1|#}nQpZ~C{(~0v`|!lFLunk zQKF~Mz40WuWn-(h3_k`BZ-_+c?8wW)F*ctk_71&@@sNL`r| zNmY2O5%EsLWinib9hSGi^+)(-2C>5CFVmubaG<_ z)iv8CmL6!I=OB)?9W15R5h0(K7#-{SHFZ5W7H#(QgX4P^IePcqklD)($L7mzwllrWSwLS$AtGzJ z7gp#T5|dLaJ`KAM1^PVrnNwR>43S@k3gdgNNhi=ud4LeQ-VT7bgO;@-NIF#SG?cfK z*`gvOtFnxskJm^er6SBSbdhw^sas&DBEkcGi4x7Z=MigVR7B_!EfbtDXHoe&4Skv6 znezvQ(#ja7ss$!f=RS>{%D842`U^1wRmt1nw{u-)E1X5n17@t{$ivB{Y1Phyc1lVK zo1v=$SW_AJ_li>ea&+HVp9~2*uxDU}8ENoQjz~J(&Wb@_eVoSo@onb2Y__oV=cX>7 z;3;K!LKqt|AuglYtW^clVH*lXE@QUT&Mais^6wzY#TjuogOW%t||-LHZygd`MgtI(~PlW72^7NiM6I~ zC~U{B$o0#XMNPvj#;#MJ>(|55nx@^bUAIlw*~^`pW*EkvCz{(F5?gI6R`{MTliNJH zWoKaw*}m?+D^9ceT-03w?)$3+HN7%tpC!2|8eF4Zxyuvjf z0H*~n1T$Cvq6J6a7)3|(;kl{TH%8GzhNZ|yHjZjhPv{G>VR}@o>q|d!Qx$%YBUI;t z)Ew5A<8(HZbmI+Tf083!TlL;_2;6u?$BlcU99G~SQRewOJz;L&J)-0K!Wn;hMByC* z>)CIVOztpC#zwE_z&)aO=tREa&*lBQ4gn@DnSZ1OXX&$U{sS$zOQZF_9RkHQJOAwv z_@8tLgl5BO!Mzg4!>FRCtHLbh~8k^P3Ir%Q$UtT5$AmOgtcuZ=zReNbHT}{DYsSM2C`d<`2JR94XqkzxxS)xdDEr9fT^1!q z!INJd0tFJvKRu!a&p#cGBupRX@(#c|1U`I9{g|CA*hwYR&M}(qP?j&gOm#n`1w=y` zLm2;@@v@jbQ$%IHpcR(hN|{Tkc%+z*!bRzeVa6Vo?{MUL$LqWz$*_aVkO^1Pi+8CmIB<736X`ePmI5{FlU5{#iqDSqxGJb&h zO<~~_$wJlJ@nU8pvfI<1cJuG@$VxEWJ*USDV=Z$)sJL!cW8+=NRmKf0;`tB|$*59I zEe6SbzKiHjYON4`KSV1Z_3C9z>c?0W<^*oSN-GvSwHx`S3~GI#QMD86LApRwoDoU@ zVMf8q)eZ{Jbl|AW81g&CU9=*=I2JVa^+DLo%l&D;Y0OOJNwDP|decDSwU~0>F^gAU zUigs@*Pv+3A;PSs<dhDk8mjt%cb65;`;y zW?ebM9GX+6%TWA`Rv9bi*aqgtp>uCEZRD1Cyn`vm*F*;TCMG71^D8`-(rw=5t-9Nn zBITIgD1tq*_Gf0TFV+bGtofzhFEga>;Y>S`rc_e0Ll?vz13&Ppe#?4`Cqp3P0_A4+ z&f+0!ZJ#~`Qhz*TR~UdkdwpLkoU9|ndCvs;is;jr@CK3z8Nc$k=_LE>s&R2mJZ-ce zv`uPmcxS#lB=~R()AzX1`kOPo7QC_>PMfc*v)|5zjp{=6UrQ8x@_uTHB5F( zIkX_wZaFWSjoGG57iE2USzx`aX(SjnTYt5E|Dibsyv^QnG999geD~{=!!(R>>9jAf z&Xs{w^E6b*5$7dE~m=Hbm+!@>(*F;R5Cx(g~zmpYU_qD`j@|L4bd2%2J^ zdzbmVBB_-QVKUSLR%*=>&Fr>D(y(2P17z^nu^t#R{~(f#&Vd#Q$i4B2xa-3jf9r`Cvqi6VGC z4>Lds2n_VXmH+?Pdk?TCwzls#5Q3oxl&W+=I;d1B22=z@nl!1QcLkLW8hWovM+ivo zy?3Q|qzNbiq$AS1jNb_=$mVn03~8(+Rs|BLQ9fT_?uJ<$ zSP-wsa828BqOwJ(Wfs08o03nHFTtR_FWkyTn89e)WesGjm_;UEg$LP%22@#kuw5E& z10$)x;2~pAm@i~TH*B2Z2I?X$`l4eBL<&x-hSr`d4-jQUJY|C-*`VZn#L4NpAy7P^ zT2;3L7EuZIR0@L4$kp4csfU|pEs18CK&)5-7zV(~!oejGep0E9c`}-A9l`Z8!FLP+ zw_kmjbjTgUkj7$HqEt1WCJZ>GErj-c5S0g&4oJP-4~s`hv)ep0o%uP!2f5WDO6KcJ z6s@;Ee(4I5@!B;~@>w|?JkXc%FhkO?xQ!=1DdA8N>C%JndUQA$yZD7Tddg3v&ov{` zB_m`E{jUU2VyGhP-+`}I3z9lV^1Xh(ml?@(7|G}SKnE9enfi77M+3$&-OksMLkmXg zQ4xXx!u(ZMmTj*ksRacF0&#r;?z4-KA)xS2Z@izIe`JeFeuNXZ7@_`HSRZ&6_o4FD zQF5iA7LxzM7^-M=~v=q_b$pg0M8(RR)0Un z`*EzVbF6<{Y)%v?@DnCBG=R?OFt&&^rU?m-tQOIAj*IUk@~DnmSC0BP6O$y1A0ZNd z?U8TBp|C&z0kg9}Zd`ntZFEsKbEtZJsdGYATtZECg1$kdGE+hwb)wPT0Ckqcr#Ok% zuE(}f3zJqQ_8le;P`@1#c{}|0t%hO3=pj)M+Z9LB@N^^q5s&{Q%hw^2ly=>qZwAYk zh0@6hy@#$0tH0jaU(5euEK@`YN4>2D~4G+DMVXAFOKXnbO?>=c`W)LNo z`kX&PVXjWZz{FH!NK>4_Dd33H$kR~& z2umDh9;GG7PLa_yo^AXbaNfs8vgWjHrL>{_%=bcH%f)BK-&Bgmx|o_%EO&ikH?30Z zrXn({woBleVQv-rT_X*r@zJIB99XATp7~(b(Z=(BcwWz~{9&zpb*8+_9{Hm+`K_w< zHI^4Ax-j{(F7Rtb_@;s!&dPd21cI@c~wta@b?-b zM*|$L44f0B7MY;-T09x13lDBy*atVXw~G-FHo;lZ;E*Hg;~?dVE-nc#s;SQNRnpaf zKUia{_UDSdO{@~C<^g~ zoumz#A%@UrPAy0u0EIS}-#(54!JJ=k0#&7Q5)4?-CAZ2pJg6 zhd8&bE;$6eALFPWE^=6RAZA#5|4~xkP4*p}QCC`rMHg8lze?2LN|ZkjE>&xID9@a^ zi)|s3G7Exet`X*&;AC`UJU+RaY0~=HzF17M_9LX#>?FY=Pv^5wOA+6PDWtE`hKX=s znqA)2{3s(Ih=C9xDZ8uNJsQiGC+&A{qgkY?s?Amg zlQpGD(Od+pg<0Ag+>ox7-3z&CNynM@__B$CxNTR6T8HBl(GDcTN$W$R8*OY(nZp!} z7m3VmudP41DmB_P2aV^KG#+y5QCESq$JjlxCR7k6ekARjoA^P)D0;;QV;X;7x779f_OQZs=+ZSfA+HS`ms=hEX>Sw7)CZoGPXB&7Ty48jzQFf7I$A zZ$+3PZ3sZcLIXBlTHKR{)h>ibF@VchD89Ix-$vgj<<6q(AN-Yd`93RDxZ%k>=n+ur zEwt_3-^95`L@C^9hV4Yy>6ZDnl2AA&Yu0X9uyweJLG$89Pb)HcwvG+Xjql4EEc%0h zjmTH5gZ9gmiLptp-Z!Y6?-0erD19}xa=n5@FL7fzirjtFYile^31fg9(@i%Y@O{YE z`%F!u7vJ7Iyq>{8hDI9H<_0(vVkq zMeb^WnKTAdYiRe+gBk^Lrr+8j?H%A)%0fs+$b)?P_1(#FWk?@oMvt{_x}$uAyyi8s zsorqr2sxZtaicNKLDX}Yb~Pa>(I$*Vd+7#yBPO+e@5E8v z9@<5%an&ojY6fb311UYo%b$gPsAN`~u1FglUT0!-8A~xh3fN+rSqmP`#Ju_LKaFQY zDDaZjwcK%hMs6pneDkfoe**IrD-r?;dLdlPd+S$LJ5a{B`Bdq1fZxdJVAFjkbJ!_) z@6i14i@|EpoHu;oE2+1U%|h)%0yDgY5mE!$h6Q@8+GwuDCshRH7L6Z-%%3PwixcC$ zc(V8wwGhIGMBiN+@GyQ_+v~}Liq>)sp<9kF?ThXuP$#B)&AmK&0yPfQC(vgF zl|%aMy=9idnU_JJH?b*R8+H_~_=4(T#Ja0XNgVm}2>E;2*`TVR@a8Z+^vxtU!q1Bx z9!tkb(0vP?5tHe3c%nBP2d=lAf|g_V#oB$Fi9fwTIiy8_>x##Uj};J4L}Ny+F!R-E zS!i>UAvshRtx4&&8PDM84O6-Tdk4R=j>}%;Y29)?jB{66pXT%{3gmCKfQSs-xzosT z!?D~i^Fz$W3p0(8TY*rSa#hITP9f8Rr&^fE7yPZ4__OP~rJknBg-{AUyk05mNp`3W z{bD%7EG^cyc{0T!c||5SzKrjb^KG6D?d2~?cxpVDGH!Dy_ew|{-9Z^0zGwVOa32Zb z_XDnH?s3P9(bMe7Z3KX4aORflx?_nG$x-g3!;ERFkmRG&)ZX;|qq|#&J&RhM$Hci| zB!wi$a##j8@{e)f=~8Tjkw&kvemf?757tI}t9^2EFvRsi7DrrE`9a^wZV6ax;AOSq z56>a6jUxDN)4PdAzBG5J0{!XEjTTSarONTa?K?b; zm~AY~>G!i=BZm987*~M}+pkJLTYj$ZlUD!SuwOpww(U{-bGHN-Sjf3?KK68)Vz1GD z?>h$Q@epWg;aBci$25a5=0lj%Fs=e1Jt0{?bRhv4$vf<|rwB871r-MBQ!!`by_ENs z5g3W@nELBKP8E4E=5au`x{UOnA5$Q?aeAAV(F{W}h$Xo4+qGgD{kHM5&#&tp;LvTk zlAo9L*L8VD@6VpAjK`-Wo<>k^j7X8~l6wwCLHur)Q6^H5DkGK5y@b|M_{-8}sQHuXW6fN+;0s#*Oyw@0bnj z%_cUylB8|F0nDjB+Z&;&QxZNjA;HJ*m`bUQYy{@CpD{>%k2-7>7-BcumTH5^R4MV) zYbTdmI}PJqm9Y|o8Fhb$;d}=$3?t61j#mbOFO2R^g$4sc4;W&A4ZQ{O@)j2Zkv)G~B>d_HjrkwVptD591n9*=`bJAe#wI4GK7W};&&YHJYHP0Oi{ z;&<&~40i(geT>pNU$Z^R(dqoV8T3?VX=Z;iTthv3m_2Looy;F*(0ES*_GCy4IhzXAX!4ZluQJzxFOTU+^ky2*=xUZGA{oxJTeUu+Yz4)%Z_+@D_1WM+3`5P#PEoqIuhikM*j z212 zwO+k+1^~Qb*R)={@l56(U^EO&q$*@|( z2=8-kez^3f8MNcS#s9!rasE5n**`MaY!AGuzPA^f=a z#*H1f%N;eevF+fWRCV_zZQHr`r$mzK37)-J%omcg${cbOb@&dLLC?ZHB1ycj0cOy_ zLhFDTbY;B5*EdgB9p+=r3Jw<%9oG*R2XTpymeOLL94&W!MjoyFC8S>)j5S?wyk7S& zwvS?OG>|3#V*8jTHw@lKKft*EtLtM}*ZkJl_iCcl$->)nzF?%y=`jInswP|%iw0x+ zTmpo~qU>nGy#A4WXWm!Ip{ASDG2yu+oomE;dpx+^eYXR_;$ ziwhVS@_*S3W15qqn>oPN#M%mHE0rQijO7bFB#j8~k-m0ou#!h=E0Q*0_R{sv&c#df z5pVzG|6RF7N~rv^=8rs*k;{y_un680S=PhCD42a7(Z@6qX7JUU``jYl{w<_0zq?ry zH?XG0Y+ur44uteeoLK(?0PIY#{MGhxTW{g+Yr*NCA^nP2e2M+e{+CBL$*XCmZ(oob z@HD)Ug!?cnoeMPpc`1wXid_`Bdc>$CSQgkeMSh33YmgI9lJaoH{0A&2kH~)~jp@eK z^N@Zj8JH(zIa21V=VH&H)|KtUY$(}gBR zYARSb-1Dt}H-mQ9vU=V<`Q>P@vZ;5a!85n&vnPAShkLrEk==k9bfqY@d%=s$2cK88 z9Hj>9&&;58>lq4a(LQl@?;m{GivRb`pnFX!o1h9so|HZ4DB7xKa#y~170^t*Y}L6L zH1~B6qA?AB?9wd1`|`8q+2w#2^mSjmY(p&ls#diw`UgzJ`OM&oY{~yHGw{Nv zl`H$p%-|;`;*XiZ*nchd|3B9b;MF(6e-!&wA)e}Y0kQvD{qJHwKjF}w7ep`rj)`Dq zm(eL{4HgDw22WL&ROUj@W(E$KM1UQD49Do*zZyaVmpHw2ePO{E15p3dMLd!pA221aLiv2ByX6!NQIe;Ow%B)%DUojEU zJ_Ua@gl@TL`Y)IW9v6+09>Kqf{Ruq<6aTRT_}k3j_*>QDKh6yPz(nx=*csM%`eS$8 ztnkO)l;igw`)I%apBO@Sc1WMu0i22b0q?IVZABKv!dQg@@ab*O>;TTD1{Nd_BhS#l z^Vh1<|Bi{sJ-GBMCgRxK`@gdT_=yJYv&8=bpn;!P<=FvfU{S7Xx5hgAUQ}%VX$Npq zMWHJ5%41om{Vi}J2p%kPK~CwEJ6Gb6D@%&9=C+*Ox9?}u+n>tK3#w)EV$u89)2r?hL9=c z0S1z+D4^v-;-7^tArr#?CSGm(vB6zXmL!pm5||BCo+rfRsRo(B2JJLKpZcs4u08_e zUGjv|j#v?v?|9R}XTa+7SfGp}LPh)vH$&PFx=FV*awHslh2Y-gfw1xJp`yF0ZhcIKv{{PZ>`)nD>bKyPi;zN6}|aSlzk@^!W}A!*KF8~38qd2vY@T? zDRB3MsY!WbXTXbwjRM58)U3Q5M7FgM)5^$`pmS46g9Zt2U4_Ux zlaPL*3d;Y$)6v8roL~ex9=GQ0fD^$8K=0^2xp)wL;~rP_VcI}_xXZ`#phDE2>9&ZW z_B~4nD@G+|>*z)=s%@E))p_3gc~atRQZ8PMdP1W8Jq#caNx>BZkmeSzWyN-aZo(*y zc?Xp}#fx=pA`pG76HKZtS8zg}jEc&$G*Lh*l{};X{}ZC%PG6x(ne`aiov6V?2Mr?c zyhS=ykD+0>fUJ7G@kI^E(QIiA_pgDYwJk1u1|^c=7EN9>JMf0;CozfQm_sWgv@$n-^i|N^2fSUf9;q3zWs*dA2c1Owdf0qP8hiCWQop3reV}ixw(~qebS1(JEc=?dK2`6> z7?J}m;`%OIn| ze6mEhLmY;gc0j97FI;fUN2tN5L{BECX`GYe)i>YmW#v}n7IUT@?HIKkPA+?DKs?6j z%x_aqwL+YIv6g&I_b$-*GdlPoth09M+*qJ;xG&b*Avy>(emGLe9+_SYDY#E^5JS$g zhc()UoQ1iSOCzN+J(4_Lcx_ll$GFegDixbS;Si(UO!7Bs7@OsVm!9y);&AZQEYHNv z7oIRC0W_k+hd5J>QO#HX(jMhvG*((P5le}8!2bNK_-9ly<&a;ge9TPQ?dh*s%PDvJeN^gWw3vu19Z#vuza>YxIlw3StuqZwHgd z0Td<{q`n=<=bmWAP%3{{yC*aZ_FAbv9}$odUo3vKngqzL9TmVi<5!Ice6vKMMq##z z29u$TukBf8jpMzh!ZQObrDFq6BfJ+uY70V4v@#?}C}mn!kUFXE<{q&Q+MSX@-;XaS z2IX+dA50`^K2W3+oP|GN9(>DAO9zevV!&B#!kCQj26HM0SEGEE#tH5%x~+DEFe?Y~ zjVpp+OrA(E7~67-jffW-_U1bHmK~NvaoFKN*s1@;YAD`oGw5|bVis&8kErnKCaiZb zn~MezQ5Z1=i%CWk>rJQdn)iO9xREWzA#8^3^s5_z_OQg@Z|cTh7t9$F&0@Dkd&sbhPWfmi$-H5JhbzXBT}Cph zFOz&1@aI>z{_Yf|QygMIO)2mghE@ktg&S(KM@MWwZxi&lS&kmFjmBkGW0#4!W)L&i z9D_aR+dUiU(n<5unepqvBQFt3^6=Q|ix`|>3qi5~-iX84R!8WS7}Ga#aq+SgCe?8v zug!gy<18OBbwpXD;EB9-b|k0L-@P7}iYIap0Y0wuyB|vf*^7^0);01s6!lL)F?&2` z^KoBFNO-SqpKc~66!XDZ$oiQ9i|I=#$M|k)!MYg4DBIhQ)Hg`e35ZQh=ViP;Rf}{{ zCyADVKrm&%@L*0hY1uPmZCT(V1eA>@Fn$=n8g~WvFzKi|`Q%gb>0z>qNfPK53P+A^ zSQGUj1@e9%9O@$CGLC{x5baZ^e6d4yD<@x?Frm)jzh9jacr)c~c$B(V3PvQEE}r$H zQz}PID%V6RPYxCJ;Z@e7RDMgD8*ogRK$rB*u1kk;?_6&BNYJE7-AcQwl_u?yCZol2 zH9oC#1664kCmIiZS)C@YmHxmu|G<4sw&MTgV}T)OJbq;D;}mPCS9~l zFfxT4BP*KBXZR$9w=(-?0^U@@G$%-z*`Wqn7x7&(94twMax_yRsbAm`@N7L}k1VeV zqLX1PS18E+*5!Et8$on@7zbS-K1dDM_09nLIRepvzpRrZrNsw<*h#TX!FBPGRe^LqHNJ1UbPdRJ25eQo;DKu7 z@`B^@)+H^4L~@B{6k!XNUP_pJLW6{d>e=I#^g8wiJvFfTUF^@983#qdR~NDt<7tyA zVw^h*bm4|D+N#k-4%K#VNZYZybE@!Ov{CB3>yCSHaoY9`kJ{F+tu3~g0NK1@K=nhU6g&|w7Ib# zFf3EoEc0O%D^>3B)f}K$o+Mm!%!SHQ)n+76J3|co;I-LJHRPl=b=m|q+J#wEkO)rl zl~%<nm8rAvP&FTg^4TG*fT0knSk4URhxq@$yV0m z8@Lge;&CGC77iYLRL{*g04*gr1pCyu7(gyM^41!V@DWk#$aJl}pcgo@e# zDwK6nQ=IZ^%6T~IYU&W&6S6NA?@7nsGxsolGd0!JY=g_;@lRTRP@`A$clCt7?}xv9 zp5S*#)5a#Hd*8LVz7zV05KqH4PXONV=BQyFQJjI>?vTi!gm|f;0d{{t%(vXM2#Ym? zsB0&7EHqo?wnYaCgx=rHdv8J9?Wv9w>4>#vf=9JeGpM`QvGPqd@uKzf-MY+~3j3Cc zN6hjf#fX(qHDzvG$!qGNR>X*tZuZ%vh=Z}Yu(8sii;X}D5XD<7yeKkhkrx$P>i547fQ}O zc$FzxD8;QyXNVy`4ZU{p2M3haedx~YqtdR%TXuC*D?5hKiI1}C5`Mk+<&pKku?<&SX7{`}`k{(KMkQi zUvolufsXoO!?fRLyylp}l@~MSDl=luGtd|>e>Ot8P_+58id;cYVjcpyxCvGX?tI;W z9}h7Ea@j?0H9RaliUn3K>Ppt62W7QN+VkY<4Qq5mR|pt@f6hy07t6mqG{tchEPMU! z*$M$4BEE@1J#84ABoJd_$*v;o1bk+=v!yH_ZkD zg(n=kpspvTBhU2~vu&+9W9W534O0d=x*-dYhS8@5B+3+{`!kErNRhaw#!~J}eQSx` znhed>%amH~a|Fv%Z;&$tBR`NYGFXco3ofsSx{n#uhwAANlfNO{%V7!`*P}Lm3t0*G z(5S;*s%fAo=~`jTc(Wc@od(Mg5iTRKp}#M{NMo2cu1qgYuGYBzP!t!^O-#a45zW?( z89y*^^WMO^M@;LiuwdJ2!op;q6;Gmu^72{=!QJW|ib$;%d}HZKj0l9zT7hF?zwI$5 zSZ15SljbMUHcMi&y9^bp91Pt{t-1;u69}9KxUKTioXRp_LG(9RKOxG*(${*uppM}5 zl-}ZCf=7ZtzF|`(5UPfrlg!w(h9(6`FlY^h=IcS3r@wB>8;RWJ@yOmvhqp11?CfK! z;?|`Rd}16)qS$3bADQSOGEr#48hqjG_q$!P3OgxM8TJ*W?1j4>OxgSe&}`zpleazQ zh4{B@8&pS>)jvJ)x}y2u>0VZFTmmTE6CY$a{Y6q_JG#k~h|oY^aX&NCPCEw!zT}({ zS!3Ojh(Ecq^G$jT*Z{^c-D_d4jeMk9qO>9={o_Kb_}g zT@g4iz8&VnuxpsS9|M0ZK@8>90sTE-8|L-qT+99U0=B`rAAF>B?q%xwNho1b#l`3W zQZRjV%YPNIZRqyi@)Z;iPg3{m_SylRdJDg(5emT#qv^!Q@^1f!i0xc0(+Gv`#V9^y zKY4K-rDNNtSKEB(jJgtKOEY>CgrBdRX}OAt;v4mz%UN>oXk=WcZXT6pf6P?+C1Oka zY{`=^rYGlMAhY~T%k3PI>8{A1thAl$a{tPRi@d@FvV{b7OTUwJTg0c6ui6m%jqAHv zb)~^uBK7|8^}4R;n^uCxID=X~2|uM=!;bK7h+uC``RY@F9bIRD>x%)vz7`G@YB$cb zTnp;r$dda}pPPSbxw#{S*Asl!>uP#A zmfJ43r{;bKdvSF-EcX7MD|GYE@~ng2>&y9z$*%a)Y%|`M6mSfDs7$Fy#m7fbZ;feu z*=GIE5q{4Hjc^=z#%-?z^0l!sdr-Et+sw;vq;vH6&{}!?R72)Ty^VmsZ_zx}j4D35ICHGUy{nv=?-wa%jdl_EF0b1@_ z#VVlXwsC$x*K+GC82!FCoN2j@pbK1pmKzhGgMwTGv|K`=wLihWEG-mfd7EufhCQ3@ z41eYNdcSDj>gE$oecHo6X1(1jyqLG$m*mv5-4DOOT^4Xk*s?qzbM0YNzg$qui;qh8 zx$O;+4>2~oBR{p=Ts$R9-E%EB#%8Zmk@5y>urPmW*r3^&mP@oNz5m%s6u;vB{nB!W zFUSjY8J|5VpB&88Xo8Ts{^wfm8Q8Zz@$O&1zF>*xfR@`QKyLXo`#o;P-^;V;D!Oa_ zMa%skBDQ~MxeYt73csHoZ?y9^-g(#mZxH;hYDxcKkZH!(+W0Bu3ODN5VK%%xRuh`x ze@FPaT+~rH){}WpGqK?-+>=7=*zun3Xu}UqmHi19kCcMR4M0Tx1Hx}^ zZ-}++M*L>5x%@ktv5q#un#~Z~f44jf5amLDE6>vU4dHjc?V-!o&w%Zjf9qMm_HX{J z-C7e{zxubHNxA0)zl%|C#r~+ys!3qv&vd>iqp}^3IRpFhM)ugalp=>?7 zTS|>fDajTc-8s?2IStYT62dvA)|Mj$6u!8i zEGc>C#gUQ>4gxa%T&;)Y!{s%*`L?Z$4?SqcYKCOv9eOzvxg<5}kH{6;wq(^Ya^q9{ zW#?Sq%KIN%Z&5tdamV}y_8rX$sXqt%&WWQ+{|m5h{wEy62a{S(MHN**#Mbdl%Z)CL zBPY^(l`z53WLEXzVZpPQTKcay_NzsMxPEH6XJFrTuH&3P!M?w1xxCIMO0Us5`}G?k zyvdiY{SNl+tm4F5T-k4|MttW^BS2$6ovXm5xGMMjqdJablxaz6+IoJ35KxJ#pJQl$9B_18gu;K5s`vy;&qdPvZ)IKN< zuQW)!MDmmCi}`QCzU0gsTnEQ^H@toa`-Gq{B-Ri z0QP-hek_Jh3Dv5WW-a5Lay4(|G2mFXEK9rga9OVO^|X-mE<*_+|d?-&#>o`P07@OX753Q`bS+(r^dJm#Luq^lO$CQbfz_ix9&~n2%ZbV%56= zS;}CAQLpc#(Caq1%9CF=rdL!`Z{`a>-+c(Bt5g`KsT^&xp?^3wimvH+zS^WyPRsN8cuU$>ag-!3;j>)deVy_S10?~myWq=ZM@wO}cm3XY zzQMmkTk(F=L(}+4&@~{RYLa>n};_fQaou%VoW5-z4g0Df(_i8aeHo_WD78Nl^lbF+k{>Ib&e#|N0bOfS8Vhba2G?BPYNN6k)zY0k>jwC)n z!l*oMGkILn^q_F^pn^)b#(3oLyIeW&V4(73682o2^SJ8d$rkI$5z8uE;pu1S3I6EH z13zRexeKMg`&BRRSR|j5e_)n2ago3GSNl*Z87Ha$MgD**MgebP z1LCU!62}9Q4gyeAfvG@Bzh+>D(;31qrz$WHK=>U57EuM22nUsE230r(RmBF?R0Y+I z2Q?f7HBkk(2nT=A3~qA@?uZTUstWEI5AHh%9-s;t5)K*G3>kF_8IKK_s0x`H5BYKs zf~E?c6%PFh5d54%mtsR#szTSsL)Q;NH>kq4gu`|;!}grQ4r0TOs=`jj!%h#vK-9kz z`~o=sLqqtl(;xmn;&pK6#l?R}f4Hxs@>}|Y*3!_2v-F3nj=!ZpP#FG8`UB)2(;r0s zlKyb%JpG|F@~!9a&-4d#aom4Qe<(5jJ^f+J=&zG$%b0&je*oY6m-Gig8qq8>q>$XOGldcRJcy)AD)3g)^h5R;|R=?&fux29E{V7SZ0+>wOv`KJIkViUP zybahd9b{{cbZwM{R7F^6n?oKsL}^b9teqhcG@C0bn~2t1<y5(|08nC~5)FNhMoNKKMj z4gbOylHUs9`MO^dXYeTewwSR)xggjU(xiXCj)+kM2VjJ^L?)c@T)rfk>z%dk$?O&T z{h2_APG}6d8_Eczc}SV|wn;AD%HU?0Nbjo4O@yb8F53ZBe_ri#f#@D%cy4zJdFqzR zrF{Im;J88Gis&TKN6Ac6RrtGcFVd#lRh#$F{R!%bmsUu_OMY6~p3%M;28Li7rodD?d^%Qw5`C;nlF?TV3C-^zvxX8<|vSIL5(pFt&A$IN4ToLKVtm0W~rUP zKhW^!Y}!Gq;=QJ-$?N;Nn`lYr#*-eQSI{qZ*GQdU z8?82;J-W{*sGDa5VVv#Sr?q?nOF6jlBE3Rs+i#Cg7U7xIU0w=1soi1o(q~==fNFSC zJWl3S4QaJ4I6Dk)@CoqWz*?`^6m4;9aZC;1b+A{GpleqraiOpOOND9ak8idlVPnmM z3lGbL*Odrrxf0i3)O}}LL9p|SAa$Ua`r{uay3jmwe@iFraa0ZYlam>vjCq=IwSpO? zBBDBNG*aR82JN?Fp<#CC+)FcGAw2c$X!q?HN~zb$7kYK{(MCUj?!gY4Wsq7}uPxQVko zOa_%DKt@`-9;HQG_s~YvApK4TjF)Y*OD4*TYl&=#Reh0?SdCB9_MUF{z;l9qFR5*8 z>^&^+d9Ow#M|n05Vgbh}K8**$#8YbEyD%co10x@}k5#dQH|ja7rjHWVt1X1VRkMpK zv3M6K{KA#oEZHb?E4VD6?DF=0UPD+Cl71Bo{x6-#ibj-OW3_{jK3(D9cSSxVq`obn z$Br8Qn|J)9{V5}>nAKteJ`@K?OF1P8Goz@kFngMMHu=BH;tQoB161D^874lJfkmaJ z0=7oXh8AVQqV;27S}2HZ;bkrK%#&cJom6W9;fV?cp#tA$QQSGei>>k%8q~442WFG@ z>|eUodk<0QYc*IElDv(1B?dC-ycWu=9JrklO6EazFmF-mA6h^f`Uv~!aC*?z5=E;& zCzBv_KPt>F1q^yD_)(LKCDI>EO{h@m0Er7XcppmqSeS@9!g4Mc1d6z{EY!AWdeK6d zw%WqVK|^m3LCt;(aF7;P3Sfy7A#Rn+s*Fs3$3o~I!51fFxN8R+1FvYjehYrC1hsqI z{u=e%MM^}Fl$=m$H{xEW0Dtux;rD0B0f2)+(c&A>N9BhWQNkZNBo765vZ9iZ;p4^j zh{w^U&Szc+mh7r{MbS?Vqh}+cY-MTG@Cb$ZVq)&tIaSAeVu*I@q%+o})jy00k&cz! z_VMi$rpP8Z*2D+|#l@zf-h_)V>s^a^eNID&uZ~k-3|C}|OQeq1y9731jkm&yXOoQ1 z$QI(LjxYFyhVaTP;mMFwbR5(xAfe$fLD56oA1~34S-bXrVnV%9neT% zzlBF&5%?nGTZ-A3kJZE;*)g>#Zzrjfy1piY!YwGTC(g2S0ag}LXy+_EqR~#$?{P_} z8Gn#K@=o@3duJ&6vE0=-(jRfjI+Q-C<}f!Q*lC#wwj9GtTxZW1m^#Sl0MG2ff*HXI z{R>}{EGimFQ`3tsDFrhqC6IG%9Fgg`*CNWKaStc_Lh27JV_tK^j~YoAu#8EMFe!Bi z!_Td1bVn#24th6JFfW72=O`Fom%eZg0fbFc02Bl{dUrIaqwk9~-l2-SE)_vH$Jrir1+@ogoZ2O#R zS?{73ZEs2Eh1`OMuMqg+=c#Pwm2a4U;JJ$PuoV3KNe}HId{0mj=N(Iov*CD@^eyuV ze42~tu=~!?oKBL@E(P8Z1!bEB8!oKj2lQAfg$sOX+;)Y~$o%*L22gHc4HkGBT}URW z2jwK#af#~<#M_c9B1_1WgHsT>lF{5KrZklM7EgJSQw%jwU$)E++$dIT_Np2HF|5*c z;a}pOqy~$|T~8ng6)2UqD<<76;uIyxm!;Bkq|{pQQtBk5t}Q))6_=sk8WkI750(nQ z3*lu6jtR&9u@SVcloIAhp@b;mPA$#(TAoytn}+sPq;ZlQMcL)xBaV55tsa)MnA%(} zp|mi7?_uMPx=K$ng==__t7}p^;|X>rWT5;gs5Heku$mnzO%gDbY}m%k6R-SG3cRBD zA4a0?OlYq1WqP(E@w=)xvEP*}*cMHYANW)O-V$Pb8A(=5QxiJ(*gWpZX@Z?dh!-t+ zkX9DtmAR9b<$S1A@v+5hL%+I^AKXj#KhCT@X6n6{T_PB%YoNi8tfft;yT+tRuasFL zSj}-=_lrQy@G27oilpYNpJ~$fNFe-?RX<%zM{4P;{=nVA&f~-fz)axn);1ibJYzIB zyqe&wvXa)*1c7EZ930aFkfhMusvg@$2p4mFIp+myX!f8Esg|w=tT`OsM3hHIJ5q!v zr)yPHby=SK!ik2=t(N}TvdN8S{+v*Hq}S{Q_^n@y)D|XoH-<=v)v9POd!5geO8$MF zWWy-TI&cEai}!)|W~P8`ZHXxnv*~*oLgw3C&EjZpb(+?;8?C-ga`J)RG}Z)4!L8h> zt^D{`uW__Vr?d<*d@!GC`>t9ILO=}a2#M_*1~yusSknclnXq<6ILov4+57Y(+fm3s z+~ao57H;DB3Z~{VK^Vl}nk81dS=YANIFHbbAQLLm9?|psQleY1Mq8>p5n&=erMbli zzlxZt&SAR>o!#7?fg;8O&ty}xpxUmyx+{{VI451YKWa%S%|B#ZMoM;fR0m(ZLb94Y6WYUgD-me81Vi@=cJ!0vG!T3x6~)m}HXo&La@ zg~#JQ6~lUq_<9y)h$5TSExdl&RD~ng2u~lYInjdms|1>v8Yd#qFC&PRy#C|5oaE?8 z>mCB(iRSrEh&7bXvS;9hn+JxS%OP*D6gJ4<9)+#Ts0nRhz7insrrGJb^ z_<1rIrCb}hLH4micCfkWrG|~J&X3`Al^U-NEHQWT80pc%nc-k1WFbXMJKty#e9Zdu z#YjBs_Y3Y8Aq4PzdUB^RnuzyGteW0=2rX_P{7;r*-0I9fSsmzpExffey-Du6BXi!} zPicrw_@0>q?I(0`c%$uL9_T4;P6|$>GK~wRD$zvNKx89ak4C!&r@)3V zpPT5`Et|rs^crz`T_yRc`O(^XXjHfU$6x|8v4M2dvu0M!Ld{P3dU~^*vd(-$4N&IT z40Ebl;=JKmU39Gr2<3Tj3XR@GI_xNlygJ#=k&o=Y(Rq^8<-jWG%vMf70SJU{q7l% z^}v!dXL`z#vxvnuvGDAR%FPLU5IKkDlNkevMb;OSZl{Z1<`$7J8RPFICBx$lIwK54 zmojc7%Xcqjlq^E6-;LOic@i(H4t~ilLPx-tgB+J*c^FLg#`2JFBM@`iBW5GwQz`3g z0qtOqYRj8Mi{Tsn^I7(-CqvF(R;Cz(2v+fs8ph464QdS2bp`BqkuFrIa2T{VD|e~( z=A2VSn7)kv+DXU(;pcW9o+S~?EJ2o)fA@?>@#=FG1w0n$*9J{TSwhEojg5o(;+u^q zJ;j_0y1Gim^VOywM?~$dz98Ec#<)CA4=RiDiQ|8eY|}CJwnAiTmTt$c2R*9vaj}VJ zUk<<1%!^o??BjV5y?OfNMYjr8@5fK^HJjT^n|XZ(pzly}2{G!Za#s57?c%K)`r9*a zHUwX>E?(FancikY`pnMYFnOumw`Oxn0t3@>)C8K z_`rNuTzU8A;1+SpGvW)q&DuB@`gi-b`fDg^%^NQ+hSKTORr4cqZEo`jIMsi-uxlU2 zp;c0i1>JKc;WpT^;-ow91u)Z~{rueLd;av?cc%~3uyM_JQHE_aU#cx5S~7K)$Z6_H$1&_71bZq!U4Pkgmc zT0U;+7n5l}!Zuj)M^;zgKCyUq+@nw4kxbkchW8P30x_5$rRQp`TK_ctV{$n53;pTr z?Nb@q)5cVzkwO?PVrAi+hOnVewM>uM(Z}rl%EQL|w&=gx2et}s{JszT4C~ki)+F)^ zKLG`e_%0X>WATaN_22t6(rxp?fX2Tsk0pL-;kEmR9={yd5&V58S*-8(&Hw7B#_Tyu zIII=8GQ9I^W&V1CdBqz0PXm;<%zm~fhEW{@_i$V8+aaa^`xFyq_6&e+f9Kvf#l)AK zov`TQ36qCC(7C~GF&ZFnN3j3pe7CP_pYQY3oM6Jv5Z;*Yr`^DsL|W#&{g)Mq`QZ_! z1q-l!IA3mG>kdoDG}1IDUpjl1^g_V1czyG?gP2CTzumA<1p6xA*-`eZ=O~CU49hJ5 zop2>iWeoG36}a4!ja4?%A6lfzK%X?=&M_FBERjB^T%ay-SP zVV`n)0H6nHJ)l*QHWGu0lEPs=I_vX~3)C~9PapcnRn^a&ofH53oEA4Qa7{dy{-T~0 zUKtY51K177g--Ya z(DSNnZv-iR(8qEo;H%Ot>Gps?{4WOscOhb!(Yc1EsXPI&6Oz9Anc85Eg_A&rZ-i` zc?`V@@T5(c4k6buV60Z)Ga7)`o1T6MV3WL(1s=-&=A*u8ytAhREREmJHt6GlH#vKD z7ejykIOy-4H8!&BlG^n>?b;|l$tc{vV~B-$#R0tP5r-Hbz{LWC2`^j2U^sp|59UPj z{KJ9ve^}`60g#QXk^+SrWx&zh^YuS;``4z%O#$Gte=ZTgpUmXh-*#@Z{`SH8G${Wi z3~)cUF9UCK0qpF(9ZWm>TL<%W3wYR=@6zKKj2ZBD{7=hl%K0duTO*6hZF*@8W(alO zLNd>%&j~z73@^}q!{qJ1l|F@lt zk`(%%`r`M$IFJ0yR>RBz)*~AKsV|mhpZ{q+@_$)@VGCqIQ;LJ6AdOYXO%LxBr502d{Z`!2aj;?{9M6{X%6JQbiP#5Iru z!6ac%dROs#Z$UZHYDIUr%&&3q0mZX)t-ytbTCZyh!pVa?--iHSWRTaDYyf)ml5gwhn#%*I2p>Yw z{&^geU-kIPec%Pp-(AysJdOqwFStJl{V`6}vF6Hg0Y@H(M~kP1>*sF}RRFlXlO*KQ zY{SE4i2&DNqo7;vg_|E-2{DZ z5lC)50KTlrm@T*d>_?KdCR^;M1RVw`l8s3tfyw?(*@rm>g)2buZ&Uw`iqej7`A-~< zjJedP<_nfZOLQ=;0S1C?rNp}Vqp5UU>hLBVOdXf(ouil1=$7P*Ay_oS3a=z_PtM@yPLh8B`i-EYvT>MLxobAF32TKObdE-j5rN#7^4C^!;jnQt2 z$fCD5znNubo)^8?j1tHHLEBqK#qqUk-i?KZZroiG zoDd+mLju7qxI=JHAb4*Kv1yS`WsT3BPeas2)3@N^_?xaN!k!r}t7`rS*dd`}I&kh_7phTrRA`-Vaic}&pG}W8GkVwYKHz`L!MBFcn z!bh!;TLbt;wZRW{%CC#XPj8NiOAixK&A;K7N^HEpIW6xs3<8LQ^6uJStP%!a#Q#>$ zEZtCr$u!^_g@3@A-&cx2bbWX%N*Aav+ZPxZ{YCaQEzkujL-+)SPy+{U17hbe{O3s1 z2GB{aVJbL+QX23w@Lv;d!xHF5HaY)R)D@Y8fMz?Hh z;AzGG<5m+q*K9ToP1>{$OXL~7`znusU|krRg{6jnbh)cR>AH++}y_ZFELZ?-4jA^-IbNBG$wsufl$5%& z?$2QCiZF>F07!<>hhw;LlBrEf6H33(gBFoMztoHe8c}3s5ai@-5h=_;vmU?pKtGex zJ@mD_BW;d9p=bH)63Cmq(ubehg|+k3t}e>B#gOMaGvOnL;j>MC&@)rV(bK@Sh1Z8; znlJ_QXFhd?Da#vQD~H3a!|nN|56T-8>cP zVL}5UGe-4P;|(SJ$#dr?a^lc)1YF4F<#oK*02u`6?`LyYFrw&S+yI#pSbBL&N|8F| zsM^Jty;pGj_P#D5fqLCJP`do-tIOVPb&ULSd}Y-cXT z7h@LXv{XfeFAtRQ2cPzm6lTwh2MmfSKNYoedDI{muT_Fg|4sZY8tCaW)=^cQzX}Cs_O?)y+TM%fRqgpYA;JT+B>3ln}Y&b zvO$Q-?>vp?=zqdbCH4I_f9--=rvdK0G9jzbCigVHpnok9=c!SLmm@yobK5 zzQTJzGMrr8hGvn{@**>U1|}*HRqzb_4jGx(srtR5MX4GbQ!_fFRE^q{g}Ps%a%Hk~ z$ZK2+B=cRvZThJF$ePa~WP3FxexDo>7|@s(Ye`tMNf?l2Z*(1ImA3R$&&})brb-L& zsGFnfQf$@W%~4a7^S-4ps2jOBJ=R}P{-AWyosrj8mVz|cc9kF1=7kP3esu*OC7bfe z!>!Y!Bs~B_h#Gah1KDle*ehyUJ8H`&lhQ*_70w)wc1^m}QC#Di<}M1VG>cl<8@nbN zYnz+dYD+5+Q8}0kT6n1r^RfJSTC^4GP`_#kyC5}%wEV_UxV){Z^>u9@nT4j4RFJ%ZjAHsK2T1UHIUfneFO^sRAW9^+M$XaOYkEK^B$4pBrV6Dp`xEDvb&ngthJfT_6*ton{fpn*vm9p=9Dl~H%!Ls44*AkMGAtfh)Tqg8u2V;Med~cOJrD})q zm0tz7OpBBT$GOq=G)+m~WFmZ}F| z)LC|@2hU$&dfx|k!AG7Y1`J26J&^{-i4Ac&1NF>7Pr*4PjO04M-BMDJO`pco)m68M ze5N0fvGj6ThWagBGFJn~Q8sjrrHNY|GaV2ohb9aKBHNfGhv)b}TAV%ZH(6+yKN5!f z3M&}VtfmBiBUt0P{Ho8RkO3K~7;`_9377qfk|%TBal&Ps2s|s+@(je47!?mAr&5GJ z^Vb$0Mp4rK%{b-i-J$b(AYN+jw@w=6@@)Bl;|$<)p74_S+S#z>F=Z)dot+Hx2hC~6 zuy;S*-WosG3ti8;J~MwJ!T!cS=M4kt4{V*|MhHnqmk%DDvr?Rkmf;W3p7)qcHx8Yz zjIImdM(P@wuQhOIUx0~1H za*;^U(uFxLv16SZ>SP%x;rPulzlEnU@bK-5nd0IVKhsyI)eTH}_oCH@=#>`|rjNvH zk5x_ZD@><9){xUBk=oWGSyxd>*9DN*?eu?Py04qER^y)t-;~j$q@`lFt%p&WlQ3=6 zUO;~<$Ei`V((HDsndrqbjEw#UBWp)7Obav1Z;Zuev>)H=BF$&YEhFbb!d8X2$8ip^JT zHrVyTG4k(pc*`20S|n<2*{0(YzQv@<4rXgHLvi1=+UPKT+3^%${NZ2h$3*6U3Ld35 z_f6khsobM^YZRHzIHR?nsPiF;Kh8XTKV4QT`ek1`m#UTeKthHg%lbf(wWfIGV5*0j zd+nf#iErp;_w85zU{9qhuETckotAXG$}v^qm+0A5)CU}mmdyZR9 zf@Cv?*M3gCdQJ*CCnvk06ufv7A&;SZL7Q zJ<0C8bve3t@BG^#geD$$P3t$o<)|-9ce@xzud~!jQSW7$8;9||)bwCyj7Pl=LOA1cTmYkD54bRV@Zi|R5So7x{+Rv+6Sj~#-EWrR;; z>u1Em#XT8MdNC10t50PjkLQO^@WRW<@^@1Z1`6kA46oCLamMo1=QTlwRkD{Y!KiJI zmp$E&OBpXm&;nbAqW3&16ghph$}*fjat)0eCll>%czKk=Iwu2dLLj30Po6f1; zlYi=IY(7v;9;#FSX&YlwTVnnxU9>=tgFvwCppoL}a4(RC^8A|+;BZB#lUH|s) z)_?Th{dc!d&mF`A=g(~lDqiZ&>plXZee1Hk?2dOq$e5uQAjk4u?$15qC~}U<)(t>b ziHi3eVmP4%1$@>MNCjRCNbCV(d!C-KGR<;Ws;P4vx=OUXZTN~Fh`(k69kZ(Q^y3;c zsJ`zcpn}GyD%}2CDFw)LXbwRmwnlVY?!AL#VDs)lrpN9ef;eOX8GaaQ%?4&#kwXv< zO6ciVq0htPJ@n&IFl(dC|GMvm|hy8DsIOuqc(HP{?+5S&C4orn#T1%n@G7ZFBxy3g9XU|r$LK~ zXl&3or4l+i83KRKfCg54fb{6+LInN)jsp3=I{EkK_<#AY#Q)1d|Mz1ou>PaE0`s5g ztuQcJ-hSS`{sB;YYhX~gf23b@XheulLTqAKQd(+8d}dU7R$fkaOm0DbQDIz3MOkTi zRb@>=Lt|5OOKV$uM`u@ePj6rUz~IpE$mrPr|MXS@g%~O2T7#7Zwvha{DXd?|-1a34 zK5m687su6uJGlm!6gx?5c{Z>`39Nrk5>Ii0T!1Q5}*EID3m zayv_9$hJ0JAI?=c~F=PB*JFbkkq%MYKB(SI67i zp_OFZ93)9qczHcfXui`Qu6tp!Gy2cnbl)=t{B>V^mBe*FLWhC%09^lutUxO6f+f3= zEK^E*#(bxZkheeg3_@c%xpL%Cq4d`9O!cop5wBq8<05;|8;8Au$jt&F(SFQyfibUi zV7FrxRT_bDsuzWS>8(cJiStb|60hT&Gm;F`i;R;k73YloZEm7hDeW8rrP7>qq6^4f zUrp?0+#w7VWV&M_?_~z!ChuhhFL2AG`3p&!=DMgz7UVUGKWyhiqgwY1mM|#kWpa2F z&FORKqv@$j(u?VfO0$tIN-EpT&C4n!S;-4qZVnF1J18%8%D28&iUL04dw--De#QKu zdK?+EjC?|cp{#byfcLm=!NK*oe%^bytYO8N7Y^%}IonYfYn|rnu%61tpDpK2nx`!{ zOn6677Jx-$KIT1nd<5X|o1Qy6+j>ux4E7XrH!5PsSr-f~-#Mfg=dIwmp>sTW!MJ4?1x z$EM3ptH-9DO1Dq})RVX7G+WRIcV>A3cn>wc*fKDnk4 zw0lpr44n?fNtx{F|wJe~RLxeOUnBiwWG}!t;1=B8^cyvD|X$p|OX*=FeTkn5Z03RG|C*0{8)5Kj8 z_%=w&oy7UFF+&3RoT#FL*!Q!r3mV8kvhY5NFjH4;4&Fe1lK9=Ok5TlQq z1igiQ998FGX1<$*n_P8duQF`~v$IKW2l@r*H{DQzHQy!M!jn6csh`1Rqw_m`0CbH- z{H3=J5;6!Nggo2jg82u;gXe7_{`72Lkof0C$<0|~!aj;oB#6G3Z2A+`YV--f9siW3 z7}W^sqx@PqptCcTPzo{@58UgassqMIv838qD+d`4iHJ3*A$J(&j&uS(I9EYg0PJ4| zjrA}oR{37t&ajN>%uV8>rMyO$BIqYdx3e<8BwS3Ll(C&IN~h{HYsOVU|E*6KRa_CDG#*!&shlsTG_>3@fHy%eVHgxz%`Pk#+;TZM}rn z2mwS(N;V#)UNERa;Mdba=xE|4iilEbv-rXlPHBjND#cOuVZUQrY!~0v%~Vk5#%Q1{ zQq2wZsSjDlJCOCJok)vFyYPRd<`^h~ad-%ZW$dU)01$HQoAuy%!eZL9PXYE8q%G}^-|<@1 z+m2#Qs}S)gx>W{b`DCw3idoMX$NHx~XKE6{>&*_QXab8L69|_;MnTeae+&RIU|q)m z*7LWYGk(RdjD_yJhKf@luerEp*LXNz;OR)Qke?xe_bXXi^BY(pxYs_|Selt#xOxu2 zkCqf!nq2XY^_AMW>|7DCLueL6eiLsw;W52>5xfF;e!&8S(D8OeQ}ZT28{h+Am|xie zUXcg#fx7zI=6(b2v^-(ZohD$`7&1UC0C+|XyqV1sEpF+3$&kKJ?o1zL%S<;}E)9BW zjQk58TR>+7U3K2_FvV~c=Ap>l@mV$IOe!>6UzD>znzryi;U;v-3A>Pp-Ij1&&g$OS z2@k<=#ixTH>stnfalIR{Ng)W62fE~A<5>9Dg)$<;+$qj@12P{mW;!)r;cXzGdpj@> zX@_BJJ}jRZhZISqg<2793=i8nIze0u#BjQzFL49kl9ja2HijX7VIaXt)!U-1Rz)9m zUmk90XhJbKMan@*I86Sn^Tu@&U2=@eluY8Aab&^5v|4Rzg2F=lcnP}4ceMAQD9>-F z(7aC}PjcKat+rPkfPpe+iam`>+ei2akC*zXm@#`bDlu`MSp-Vf)(d6L*8LV{7eFWj zaFft+Y`9K1_54SUQ_AxZ$^A`;;7Ew)=Q-jDIOeOJH$}=I%id=BN7jbskaO7?eOdX$ zNRY4(#2^+qzea$O=uCw_^57f5#WRF{VC3fa2Mx4L^7WQ=CuumXh($YLJy;?i8$+^JzJc}z zHBc6S2}~kN2LorKj==~+fHgboC;)E6dBJO;2*q+j@{;ZD_V>F_Vu!<%L}TO@rzs-w zApJuE;`Ix`k8hMC{G5d?g+Z8`u*5xI(k2v63%JNX0Z9WC>EqOz zlRLCj=po*q!B&8@n5~a)K)lz+XTrcmKO_MI?>2T+aOU?lT!4Zq@Qo?Z9><4e05stP zF+Ru#ftdj~z#l^RzJ@Ha^Qz#rS#VK3up5u9xx(k1Tsg*3xk^RF=sg0yDo|8e-Ma%0 zB@ws_?|fa&9;?cKeF@Jl4+rc=P|g%~HvyaYp@>Dhwaa^bN(4(dp)%Z<=4@KE0}%Qg z(Z4mI)cAfAQ491>#1nNwqFFO}phm^3Q|qfR1Fx$^DhD-s+ES|OFH$PfOv8Ux;kkM5 zRKBT}_l3XD+qr+rQu;=!EJyvCTFXu>aL5*RJP*t?`>{e4+{bD6IAg%61_b0=3#WfA_}K?7TfcC7+5T)6e<65pX8({g zR*6VUm@{~Dd|kh-$dWs7mg;-!?{c%Y0Z0@ujO-CNT>5=yR$3Ka@PJy?Pw<2!{;2cfhzDSG zIDX|IU)lrN{!Z}gP!&P6|M*FjWY4aKCW1pfIlmD@>e9J!f~_;sP0B1_2R$(HCYh@t z_9LvzD!?L>?L&emzqX!#D;G^-0kf0}P?p&V#m94?O9I_7^%&=y?}U!vl}`Ve;#d^fQ1I2y^&^2pZU=~?DxQ!$upzVO5dQh#7VvMc0fh} zl-_!e_AnpNp%$`p3EmTa@9^Ec$yRC0Q9%}n0zpD)8Vs6d;UrJqCZQC^P@4FFTZw?pm9N=ej~a7 z@+bz~Ma1c3~#I!zn@C;zs8}MQh3*NG{zu zlZOF(smYCE*#>{{H{VY(15T6H;e^fM2RM;BD zk-c3Lm5nrd8Hh_V$(o8(oS%=fIUq%8DruXSB0Bhi3vX+j=t&}Z$0sOT2N+P zCwk5;`I|-m*n4{P*nw1UDIS;(ICA8#zBJt8)R3B>L(zT_IPo)qPx3V|9ju|Bd5~ks zB6-bZZF%y1_}MBV;Sz#!8M1yRf*&ME(J~VN#&CyoAZ~MMPRcjQ25>;3y0;~;-&w6y zg1>Xu13gUBKL@9OH+tig6h6s@uToLgTL|)|1A5Gv+W*ddKM>L`Z^E|@$D$?^CtSb6 zP)~+b>kqJ+3uC#`gXnerDkSH+5eBDp zgc*Qr9jqT+`8#huz%>egF>M^VXq?`FmjECU!#C!AXq=F5pV51hv(tuqUYDQDIoSX* zpa<4Cp}o>8Fn+Z2l&EX*%kYmhX?^(AaSLhXaO+0RH#k#pKT<2e#RbrekszulyxO7v(*-%9%Tewnk=6t)CJBb;M9ElP)@rU)(?FCBa#m zqiNGqVvXj?xWfd zviGa+i!{+F_U7Unj15JRGSe(oHy7}+;rybP#epJVtEO#Uh?JGWCgt}97(dO8gp1|W zFVR6{AF0?8Nuj}}l!!dH34iKRgJGEpBmmDKq3k7sWe1YAQ*Z-qN8XBAb$K?=cl3OX z2EI=M4`~g~xQ+ICntO32jU$W>Awp2t-kYNlDg8b|$2bU1ld6$rw#Hi$7P??OUV={S zSHzmH394wgJ<5Ko(Nti8;^bC*#7zc^RXKv*EdQoC67U61s>N=q<*j?UAmZL zo;9+n=)`BOVlePpgIud}c&>XQ3V;UC^CuSdSyQo~`#!fc^<3omDJYZG$ZBgEgckW( zMT)|XQjb||;x?p~*s7wjqTSD};KAhR%ejgz{wAPOfl@1-y)>Y+933;6;xgidXKAMdpzaRI*S@y zL6ZP16e~r@`wU0}lcs{`(IJ(apXNN{%;pF}u(IVQlV^|n+T}|H;hlytf5Crd{)#E- zfs>E0*@WO_0#rB7QYtIb{>9$+4Jlp5&?jM`%d;EyO%kcTr0NE2mqa_WiL9}vGy8qZDg6fXD|*78l7EQUWOFM3VeR^Ybk$7 zuVD2<+wDMi@vV8S+Yl*x(O|S+oW+7{Bs1m*IJr#A2)k5#ykXQYh6WA5Ty3YhOI3De zGxiQ)Idt8R%OJTDFl(@Rp6YM$0dxUovjP5`y|X1oVwB3_l2uFa4@A_6aco_pU5*H2cYd{S8hsOW$fwX6D>$vdv;P0cr~ z$F$a6-L9MpIVFdXKSmt8rs3kx`ol5r4{T5*waaLOH7~h(=*CSy!o_lWDu~y-v@*h8 zDQjIa%IbAAk#ADr>?Jb|q`v$TDch!lVJq!zrlbdA+Qxg!FW3IS3WH@n{Pw=3))#yh zK%DLs)B#{rDK+&rN6oa>X$83{8^H6}w>+#MzRo4AV3xV*{kE=$A|4iyI0+P+PgM5vm>QdNBbw9VIY=WxN_&Ie)rQm z0d!9$4Aw`~UneM?T0{goKvZ-S%nBn0WRy)Aun~z@>zW-K34r{i@?Pg0cNJ}L1sf8M z-eI_v@r)tWmP0vSVXN#$mjnz?TZWl9j`3vkqfU=qGw#P}RpBw2T3+{x4{g-bR7h{O12xoGyDT3R*^Y`)#qSAF2lhZ-lXjhN>#Eed@$y3JjHLs79cjWKoD~|k7 zP_*@2kuvU!+aHqFH?StpU(b#cVO-RldR47W&}tK(A7V8}JW30K+s99Cf!Gb>t@Niv zPFMZay$>UD0$+77a>+1nxUTWOwojj;%(i1bG@x}sP#fk?+!l-qhq$k}ER1YeRCr`;SVVMu zTx>#eYIJ%^a#CVUZe~tec3x5LCx7pN%Bt#`+PeCGFW5r<8^yLsYl!8ak?fQ+gzk@5Rwh3L7boA2M$`V zwtDQ|v;w(!*E>VdKDlc-Uu=$tVFj$DKG<(Ipo|J__@E!Ct(sxfNxOf$7ul3^wHa+| zef&dj{Z|ra?KSo^$;H-yH=vNz1r8H)%>#%@yXK8VNE?E(yx&Xi6_2Er<&5&6oajdY zTSwuK?9d?fQ4<`kY!jLrxDk9*I0r?{x6*zIWouG<9m=s2_&U5dk2VO!M{7OP|D%hV zp{zKn*;cd!X^~-!v;f^UxBQODcAT1V(O8)bWBu?Wh++i6N{a_$P zvT;*U0W>9$t{^9v@Srf$+Pt{9FxsWK(9iyWzNG4B@u)PZno6p)9Y@*Jm zc*~pac1r#ey%o>$tP}V@>8)89^rjhDk7i$c@ufd?S^d`_&S@o8$a3D$n|k7JGnxgZ*MnL<$KPie zW5TZI3=-0A=FQ993V;7i;r}n3z&i^xS z>wnT)UmlL?+h4ARTu}wDE~VZ6ZUTq=hUMp_t=5T|eCA6lorSDA(1qJ{=EoeG1vdF#^wtCx z5p)N6AAWd)SAw)3F;H221>6=<69#&ydCr66L;nrE^{eokZ2Ty-o;RfD0bf48Cipc_ z_wK)^w@$0$&x(t)6Ml;f;CoGpw_hdn*AI`~e8Mi_s{T#ly6X)URm`BI`9*X(n2Lte znN+a}6r1zWh)&sgNUljSw#3bd-iSa-t!^qlEtQH%CTUpX;3A<7yz|zJTU!67Dsccx zZ*?A&R$=;;G@5I~n$sv{s_{7)GTuYY9+Wg{Zho1(0;b`tHC34!0;5UeE(ezxFW^0X7#?}AoA=Q`8ED?t5Y!KUm4*Hz81uE{ zWU$6n)Vc!LiNl3D+`J}-{JBt^XhR{|e>(TI_PB&{vLd8(I`8dUbV(B^gSKlrpS7$= z)~4xK>cv%o0E)TTSDxu~T%5vBIOY;zO-i{O%0=(|%%x)_e;25*7ptZfE7u1r|1_^H z(R(gd3p!A)^8a1>#ppo&cd|;s&);QMar7FyPy|=k@1NhwN_0+}W?L?<%iU2dRnB?l z+Hi3z0&pzVQJU3yI8-Wa{2-QESW@%-DjZb_X{AP-A?jo1P~cQ+q3I_n4RIb{P=UTiJRrENx)kHnho{*v46C?NB;4 zPFPu6Hb>$I$gAefem8SKtkFJHnSHm4Annu)(m4vhZP}42cbII}x&D^WdiuTGaa(ic zW`VQqHqFNUFl6=RV7C3~x!e;@TJL;nw&PKh*%OCP?-gER3u-vCFAaG0)#tkoJXu?R zycT_s>Rl&Uylo&a*Z>@H*F!B^>95dYfMb`~`_7>8q1xM|L=x@Bh$S4~PvAUUztpIXIZ5om$55p_z`m+`Lb}4+RR}CQW$0RA+(0 z_C#r1CcLa`a$n1siOMZZ#rd=4bC&JPlJWe?*s(9{Qeov zUTUI!pgOBDQ=ea3<``z7bJ#T7@lso1Cu6CL$2-?gT34A6W@*d-rMJ4*)x^kHnW*wE z%%<1X)`wYHTQo1Oz0@^S%UIha@Gk9=);G?ESv!<8FQ2*BxBQZ^ah&B{xlONcy$yp7 za`P$xQr~eY1F`kM<6A={Yv{xaxAkXeSx5J1sM?l357yN3j{l}o%G7)Q!7x>s=+>#< zne`$vMr(^!uyIIc?83ZOYm+I0d&C6wTheUm4%xW#pw-XI*!HI#q0{>z=Qg`kJpR2; zcn{-ovi2FAKla2NU8b|b?Tb{?4x}?4pgQjN5)&vI_10y!QsAZ{M*GNAuz6v0?53bz z`_MW9di|&ljk9Sdy5p|%$3Jgt+MiE6PahZV+Zp<>oZ30v&-@+TwkRT; z236B9LNlH=u*RK-O{Uan4jq7U-6a%VmbUY7*$AL`0I&ds{t)Q$6> zIKF#afvm3FHX#a}ddNMk;d$Kk$q8H}ynEUqTfH9&5V*{cd)`y^c$gU%xT$~le4-1T zn~o@W+b;KVmf-QUBPaMU`|jl?WA*tUK=5%@4stgOg}IIkzTCcpysWN59uPgBZav`f zJrTG(UnP118$4kHUH;Hp0|hcTy>jqe5>>q-OuPsay@(5)Nq{b7;$GRD-gx5PM0;Me zKyNx)Z>l+OnnG{p0q=LTJ`{mo45mITfj(?bKGbSH`~yBrdp^QI-}i++Vs}2=fxf(n zz8?mBMGJjD&G|}k`6=A_DysR3nEDCgdHtcc?(w=CztMLxkzw_ZRPZmC%UysYexUDOfFBSl+6D$T1o{*Ph7AO| zIR!>=1x4)z#sPzDX#*3)gOX^2QtpD%OoOrlgIu|SQ`LeC3xo23!9{yPC3nGPw853) z!Npu51!^G;d%<-B!Hu*bt>Pg~cOmsqKm1-uFEF$(F?66Iw7W2LbRe|FDRi7GY;rI3 zH!!S%Hgr}zY@Rl3@h)uHG;BREteGo(NiBS@Fl+}HzP}fCco%+58-6Yxet;jK`Bu<-xpyp0+JXBBM}KUi$n>E1noy+B1Itv`JtIXqOgLZu$`j- z>QN+vQONsI6iCq+jZp;mQ8e7qbn4NB^U<_s(aihN^!LsWYEUzLOhAq&ijyaAQ4HUG zi~vC_7#RD3E|y8 zjuiieE?!$b-W2MGmxx~ph=KayZSOf*?xR@;qwSp&-m522nk6^~CAi%uxDq73p-W_t zNVJgOq=)p%AK66o~!^D zah;fa!WFSwn0&F9eASR#F`rzeo>Fd>Qt6!1l$6pUkF z?F>rpElTYlOdUi@8y-v^Q%{?^Pn~v7n@LJr;!a(-Pg|Z(UE5DvCrI1oPTNXK-*8T! zD@xzlPaiN%zTnQdqGL-AN=gsP$h=RAbk2B5N&+NjK;q77wYYGh%!WIY9CAr@z$nr9I_WC^KeQ1WEIL1r-?jHh+UrcaKi8_H&Aihs9| z&3ur}#*@QApTk9%!=sVIJ(R=ik|Vf~BXp4SktbJ-K3AMDS5hNaVkn#HAy=L-5BMvK z7&(hvGEdb!k0?10TO&_`%{Mq#i^VMuae=tE&RVbLN%VN7sg+(Kaj za#0d}kw85QH|0;!m@Ff(lL#)37)cH^Rj7|vW4Wb zrH3-z{*n!zpIee-QZBi>3%Pqkx%&%0j~;#=5|$tEl%LR-UrUys1()9>m)|awKRuK` z5>`C$RJ_nvAcSOZCs!ahR~%KAp&pi@@s>_4lwpQI%5bDAhg>SxkSmExDlt+j$$2Y@ z4l7BBs&Fl;@ENMeN~)-cqQH+;%tY0)6eYC}#T>jPoSM~K&DA`M)%D5Mg2UCqht=80 zHKGhPpQLIE%xk1VYGg`k*m!FcQ))gx)+iIzDy7t_l+>y<*Xk_R>RFU%5k;_S))~9j zp|K>Da1b!KRxwId*@jfTW~jGHsj_yhcSxzXd#tlxta56u_t32OEUEX_Y;c!q2zV?r zZEgr%Y?!vKhy+!@Gc-n7RK&VA#-}vKlr+XQH>NK(W`;CoFf?TiH|DxF<)<{|lr-HQ zH2i#Qsu%{dHPqQEn$&6%)D2@bG&hs>H#aRpnmZnwyNDRtq*^*HTDphndP`dRhg$|0 zO-4bj!^$4XkKhFfP2Tj!cvHx^qrA6vJH+O|^Kc1qgzn%hnm+s>L> zju_fcrP|LmTW?)kZ<^chhT9(&+W}AQu;8{AsSX&+4mh_qgwhVgkq#ujb`)?YnpQi8 zbSGA7J215qwX_p+q!ah36ThXCa;fw6QzsR1*PGNX>e4RSmM*5HF6NdFM#k=U(%mdt zot$o+94*~kBi%ep-9k^@BH%6o>7L(2&Ely&l5U`h#va)xs1t@B8?IMLtJhW{MkTdZ z9(_lRDP=WMNiRDo7(@mpST$IsPUUoBc)NxT=6;S(b>{bKlssKPopzSqx0ag zMd`7PkD1u@mC)2d(i(xAEuH@l(c$C%y@o z9}}@+#i#yzQg#flf=j3V5@QR=W&YT@i#IPD9@9W zX;V~T6SS>U$Uml-`KPGg{$eEgMbH0>Q~MX&^Azv$6xZ>TK-n+u(O(}(raz)gbA(Ov zr%ekkPm7dIe|YvH;s33aCW@o|TP^K3ux3PK`L~X?s2ItN^z*drk7=W~Gg4_YqWm+) zGBei8Gqzzf7G=;mAG0Q-GvBOcZPI2PWoCcy&w7^4ehr)TJ)U*dp7VO1^$rt9)t+C$ufX# zsX}|XVR>=-$8xjPa!1+-_r;>Ppx_S>a(nU#al<-H#(E6Xc~{3}P#D_3bN zOv`hXZYo}O0$E1ZcWYw$X2xQ442X=^(qs~~|@;K~{@>MH8V3L4WohR!N> z`a0Np9erh;_+=fxZJk13ol($cH84aPQ}m*ov+(oKoWC03nH4tE}!lXY&? z4eFImLfH+W@C`wxEh>R6o|8?{^eticEwQmpnYK;&@GYs6ElJs}&pLv4%aWXJ+geQQ z?^d?;NOw@*uNmm<7`H(<6<)R!t+y@5wv!nY&hb?E(d^jK1nE)$>e0%}@uv6Tn!w3cI6;)o zA3OYN_VKT_B7>Gb2Vm6I#f(-VQy8=ceBw$r<@(;3oJfX69>>8vNr8@=oVm~mD{ zae};hhAN2K`T{w_6g=11fV$|<9#&2XBhK$v&T+}k2*%IJ~7NlU>m1 z&MeEGGm~8=cAi0jQyd=PUH3nJc%{k<>US43C_O#K_-lu6ow!dqz0b0FOw4$U zM1wpumEY5q;e|zEd5S!?v_IDCJ`U(UwRt=Zy?bD$eblgj2oOT>UxQZ{hWm^TIP6gL zKzlB)epo^KAVT?>C7OtC1AbZ;VUg@5|I6JG+Kh@kf>H&Xuii5aD-w(l9Q6fo8Vv~J z{YSA42!uLpL&L%&BBP>XV&mffZQfR>R=`jH3co7f8lO7v2AHOn^0vzM>dxBk`rgL= z=E2sE(XO$ciN2|U>7kjC@rB97U(3H&XV>SKwpVu6_BIZ-c2D+C56_R!t}kw`ZXfQS zhF|6&eF%n}wmQOYh__Tnh!t5v0q_)rrG34FSTt-9c*9JFYWq22qv3DeoCSfq2WGGeCJ+)$T%XeGvEum5OC)J0Z3Ho!wr?2{gJPw z(xn@#wuj^G_5YK_R!xIV3^_U5Zz#S=xdwTvskb(h8YX($NpZFY8n@*GB9m?5+V37f zq{6G2Yq;E<$oXrr{Vu_74XT=41a5o~h4m$~{9rpk+FD+sJN{R&rTW~eQ7iELC|F7O z8`2)z{uy$)ZIa=6cg&gTg>d7T>5cSKpXr10Dv;a@Th^4q2gg8M$u96Jvd0|8G>Vk7 z3I$UWpkf~jkHQp68{|va2h{g}ucMX|%DhteC7cg-Z_|e#_Wq0ShbjCwQ6khqThU_l zij)*`sF+4>N-F>4Z5bJ^AWdykdLT?h>5WKCQDM&qsf*$eTkroXZ>wO^>|c3XorB+c z^$dau@+mYLG4rx$F*mxgg=G*ox_HfcY>_+~Q&|e3Se6AjczU-j-^C`oNn6%Zows zVPgbr?=u7tW5vx)L2ujypPKk;HZ*UG?=}=UU#S1!@{eN6ma08{jaTa3;1U>;B!&`% z!4_lIJ^43oD|f5pXN#UIN%`F6!z25=ehPoxg3;~aO}lNzsKbKIa9N-zfkmtafC-E_ zrT6YIC#Wwn)9P+1V79ex!>YfvVKZzIg?kwiL!-mJk*JBqoCRxle7~C+Ae+R5ugw@} zF6(Pw%YdpmWejlJ=17^)_OlT0tY6e|J!v^TY3^x-gYX`A;mJLn6Tf~}d(nWF@pL)- zVYTIa>QMH_)tuaT%k?7SYU|~^oo?&xrce2g``HXKf&0UhckYk-?d2~|7qjC6&$o-G z?k`WLryftw&7{;~)J=aC+b3TJJq15B?qF&6ZkZlSW>RS=M3c^*ZSLp?!@+_oWCWKk&wj3H0$yECluW{>j_= z%9>t^MZdr zASpH#9ix>?O;z+kb_^pX4St*Eoy3r|OLTM|*ogjA^6O#fUokd$Ju-`U46uae_vhHUFSUgC6orAOcbpC zW=C!_v>%{g??)%?6>$s+E&S*~`)N$(DjR=vPqWQFv0bkeSuE3-Oq38Q8r5IguZW7l zs&OiQXeuwo-Uym6`8f`nx5aKmCo7lqIT5PZvLevS_?iDoKVd5rCoxwHkyJ|CP|T4J zD^~ivj)NNB^Qtl>O@&*TH->)0JETwqg_7fURWgpz6gU}ad}yYw={r`ydg14Y-8fRd zEPrp;5}jKYHn$V3OwZpYf^d(joiD#CV5yGuFb-#Xac?Ta-+ug**?~}A!;Gu<~Wj_Anq_R2>1oWP?x^DtfeNx9fkm3MJw<_4+{zO{1vBiPQ=HyxMR zdhjl-VdB-xk(5EcC4gi?`6R>j($b75FqSm}zrP+C{pnB?tFj>D*t~}F4z@9}S`np7 zX_p_~MNmKeW6+%g7$9MfQBMCW_QlaG)q*;*z%k?E`szJ^H|G!f={IjI)!{e1W3mqY z#J7oEt=7xcRvE6H`i0cOI~5PLD)NJ$un3>NkNdr4L5*rQ?T=X^vjd=hjX^bq=KYY- zJ`>V%$TpKJfzpbwP2ySCs7Pr&*6yYVhD%IZs9^!K$xBu0?h`)jVZ8Z-v zP4L-W2eK6^0Ih{#leBy8ciGB$i4lnf*`mu#{ZICvj%9~Bzwl?;^S@Wvy+tN>e3%;` zm5ozn!^AuDG}64z;mWm|IJLCEq9#TXjv2Kwv~W&dhURVMY$CS?nuTo~d`xAS%wsV8 zzH}B|pL45a>Vh~oaa&iP4p(+6cuTbUNNwMC&kr&N(F5G)y`4BZYiP&}jB$t(7;gGZ z1BM?rpcr94ma+42IqI?EbC?=V0Ty9e3IG_`f%K{ZAT-#wQ9~rBojie|gSNQCLG3X1 zRc90OKe&4DZ@A*NZ+pfdGh_7LdoR&D(L2#QL5Lbb^p;^p@4Yj6XNcZ=@1m0oB0&fu zg-GIcUHAPw>sjv~u=g+fyVu(La~|jMDF%gn9>D!QkNEo99`En5>PFB?P*Y!2@ShX? zfQ0d2rgS08Qf*zmcj?vV?;nN!kTLPchE;x~=f!-AHh6mHKWL-W-uw5wUg6cNLIAJn z@UAiE)1XG7%alTe&WHKF~;{-(J6lhITr(?prZ*1P1*#M z8QNAAyF~o=vOl@(b2V6jd$AmSr(1PbjY>X0&?)`QZlnOVAvYmG$}w#0VK^4p0f_4& zb@`+uL_`|`^(4r!P8#qnyYIVIPLW?Jc^dY~?AghNbI*^?l(4VvgLkdEO=pu&!=1ZE z9!D%+W=|Ho?ml(+_`yaeQ>*R#+s^%)B9B+U|NeR!9(j&M>78X8i?%J}3WoT6-i?r$)v&8r2x{rq>O8! zvhM^x4#27x6nTHeNvMkBXAnx!g@C*Zww^#JNCtj!($L3%CZc(OD1c@z9Ec9k)+NdY9Q`adYKt@ag`|fbCDLuv8?AuTb%pgblEiX9 zJPG4x%?^1j2`1tM8>3wE+N0rtO1EYl85FV6Q?9b#xzvu?y-ZlNHhsb*z_=)^JzwpZ zz_^!D5e!{%4+UWyHE~7Y`*>E#_>#?tQkQrYV*eKvV09`;Z>MUZozO>ejyJJ!9p(!1 z$8XMFC-eo{*PFf}jeQZxgg`Qd>fAuSL{U16M_W%NTHGW$X+&FrlUAvc<^!WQxRUH^ zk``Q&P)qUsRLPfqj?XidrS`*Pm}&7Z{WjEWO4?)i+9D4mQ>;Z|%hgkE0`1j?aJE{A zE$wZiy-OexNFx8%2>;BWf~hSA&%DApZWAf$ z)YEnYE<+ri&BFC95qMtic3#@nbkUpJqS%MDmOJ;LHWz5%VNRxkM{#XWgjf^{l|UIKM7J6UDMK&7)w*x$?=Wv{HENaA4~ z`Yf-de3nE|G^cd4)akUpOG`;#9O#3LiIjc03Qpg0c>YXh+Aa%SDf&oV9^+bkC{@10 zT`uTWeiT$LEzRH0oRX2okANdme5f8Dmub+@eY*|T+^%3`O`RE5s{SVUt<=O8$&#xS zq1RKnK#a2fT?r<&F-Eh1In^u!stEF{NM}&zomEy*T#-Yg7+1>ql0CLWsP}yc`US8w5LWkzeen|Cb6eHoyIGFnJXy6)khI8)SH;T)XU-I zzBHPq&bg(c%(4z5l3H*eDq*aH3X%bAS~b_jOuGbCS=OWWD?9S*uM8Z6xw0+A*c~G+ zU$h8`ZSt^02+7pe&+tI$dm0v?s5F2`=}%QZA^&}12BrAM2~^|MP~!}yu?f(GS4|$e z{O~6&(HL33*wgeHSesN=bMd?8Qo2^oviYl4^DnnZQC2(?eQZ-NyI4D%=}a!lG};j) z3snz9z6}jeXD~@M3A|E8lm?wywv0;KH#uuk^tP;d+sOfNr~!n=9I`Aq^des1l=Rl{ zx2-h8tq~3+Ja}&fc8G<)v^HbO5GqGeWHiw2yuJSPR^g7pbchn~7|b8*RegA$_EnQ4 z2JVl*jUYAbr;sC-q5YmleNVA2t z4rXAdCvT?*ZKoez=jWdiKYoFl%bV=(I>*JEC3(7jYIWUOc74n5N|Wx2FUURF1U(i6 z@)HR*u%^SY4EPJWt6RHy>br|(yG44t!8vG>L#TRuJN&M_BEP4>oraF3YzK%V?j@#A zWVrM;bh*~iI@`}`yw|lraX>pYYKU^RGNEOyNA64KRBxZhKF{N!SSXiIOF8u;(^RbM ztZM(N=Mw%aKeKI!WHvZn?i6rs__w>d_ZPmV;v0QCXH_%5J#d*otu}Pe-)fK=^bu?s z-vWfxW$Gi5aFgLT*KB#csKXHDiVgB{meBdAOr@OIUSBPPuMt=eM*4-3m z;+$o}$ipc6BzMaC=WM^uyvNqa1!B?eZZ!V@lvi2VEF+`O)G%@)BjXX;oJEDTH*VL$ z|Al;UE|khbZ0L`5^~0G^aK|1lgjgDYR=+IA`?y-k41N^_yVF%8uw`h%ie|S~G7~M$ zYduZ8#Htb@5=qqcu+=N~dCb}B9^JbSeDC&U->KQ$zf0N3_}=hNvJL#feIVCok@Ac! z+HQpV?AXcs9plp9?y6pN{e6NuR_z<}A`%ypUISkLm0`%9*mR4*v z5$wM)j%rvs+gI93x4ruJ=t0Ye{bSszI~-p{>$I{ESJWOzKqo)Q03ms*r=ip_uW)&UplA1 zXBUJ*I4UNllXP+bICerKNf=IRn+cA;3!DBaweuekzg8&1*P*%epdEc;*IHZ4SSguABcWz0uv?Ne6oK8;`7lWQRbm=|K3Y zbmrZ-9)p;Ytjx8UjHST-37^>Cll2vuQPOkpqV}PcXT;s#&-tz&x9yJD)7?7ljuJ70 zgR=l5dC1R~c2%f@M8USFbC7U>WBSkcTlw-O*-?JXMNroRtgU5GmKaq0vM+Npz@JJC zyoO^24}tCB5dZU>zFL|heo>f1UL)(e`4X(W05LP#E((v6_;>iE|8P3_OeO40fgvrk zX@g>JxUX^d=q0#94_xBGiX0L)BRzYx03QAaXx8{V+Zgf)Us>F4mmd*h)qfn9dNS_m zx|8(&dLdOg)HdTU%%@T7eOkXTTkl`#*=s&pQVh9ChtN+e4t=l0^RMi7R{$Qnek0+b zAHCchDsj0zqibR3;62~F@X^;{7e|!GY;WR3bVn*fpdYkhf1!rPmE?=OFB32asyiHM z31IGxQ=lNwcJi9^vaj*$0ioA@JI#|dQl{WA8}Mitm|Je2^JyRz!;d-c{`R}O#_{<$IL8|JT!n<-9xRmfxXS4aC5bM}i0-L=%qSp%ZE z3OowoW~!JHF7*%U@|d5aGHrM+JlC=q`OukenZLXQzc({3nxA-b4F0|HFHBhniKTLA zEZpTKu?RL%WIW?2oBV@7-6Lb|Z!eyJxjXrrkAJG(af)O9nF7E(Fd#AtiLiOVY~z!V zrt;#6$(ca4#Eh)`f~dU05>#nfc|~PabxmzueM4hYGy4BwY|G-11Hhq?sJP<3|GyNW zNe)Q*7%8r=He-#H&t6Hi`4~TunTy1H1>#2YoLuc@3=yUP^~Ix2hba6`gzXtix#F<| zf+r=911z1ecuhy06J z!&Zy)?0*>BbAwLJ4>L*HIj7dWew~JfJtVn<0690Z)_rAbj`om}WNh5pU5>6mn>CSl z><)l87^w7$na114j1L7|0-{{z08b!CLcGhCfx9)dH>^+aojaMq|W~V{^ z`(CD&uJPfC$}vv-^59%GfmgEV=ZB^xG0NS@WI@RVJAAdST_l;Q%YGEq3zuar8vo<{ z7^Y~hgV>n{(&-3{b$SA4ny_E^}ovLw{XtgY)gle2gWv<`%~_^wX;S1WCiJ-D5>9Y5iub@*_;&6 z+8{4stU+W>0RzjNdO+kOIHd^qmGoF*aYa&5wUrdk#amkrqke;_t|yhbFX~RJY82Mj zY)U?wGNwP{f_ybZ1ET3;G#7xL>Hdk?njng+koG&DE=bUQ;& zQY4(U&hQkNS0cexT*ZFd?<$)Y)ovG`H%Q;bWvHu-x^N9Jck8GOw~U_joOOKp+MAUr z!_@bE-Tk8fW`=~DedndNYY)kSFfkeQyx?AY5FFn7F}pshY^e){odX$yaawDn!f+^S z5fB_$e0&nkZtT=;_CsRJMLB6d!`FHCZPq>+J1);%EMsAYeOt-f8{?U-xrknZ{Wq~~ zHfMHdi2cc z^lb`$&*cAKR-9$|8o?Me4{#mr(W_=U0~Oh3my-~$7(kcg2Tol{v@EV zIj3MP-f{fpslVkKrUQ(4Q*`TIrz2X@k{RgqNEceZ% zEhM1tRG#{=Sdq#}a6~nY zqYEb2Dbt?xXwJ||K4(pB-HLMmWxyt8quVk5 zh1KF86=m`t;+}H;&M3Y=<5YOGy=Z&MEA97@LqV!^+{GZ_^_?${pyN8UVR(e9w@=NB zFIYP9Q%s5l$rNZ$kxDI5n{L6eTFdOTR3Tp|gD=nRYSN?{D=lO$W^~EJ+TlC zp~@GAs~S0^KHE9GcVy>weTVW_5_@%xBPEhIU7*(rHa%7(4}P?g7yP51MT^^fQp;42 zo`ZN@>Qt1bPLm`&nU%3$qfAFA-Nc8KI*&+)9P2rKQ}&N$_}?i}Kbp-Enx8fohpr+` z>or?}tK>|*B>ECp=8j&&k4&b9@Z2u3Um5>IqwpJNu(h^h->C}-pB&o@qB8Vw!Uv(KA)GSbNWX?Yz zRgWdVvZ>DQeO(`^T>IV>IN3`pii5&MIyecBn8lH;+qEv`YG|}+$9-Y{5vld^^!KH9 z>K#uu`5At++kJ!Ohdtul+UngC4y;iSO(93q$0Rf|FKriMbu+R;HC<8Tzu|&8%Wktr z`d0ctiDDpn`J6rHvGt=WxpM|=T!?dG`G+5I{%gx+km+pAq?ZEaV+ zFAelFSy%)2isx?f)<1WKy9td#8a$og2*E<_eibj<2re0|?N_e)%4;IQE${PW$1Ke#t9 zC(kb6w4oSX>qXXb5@LCoz8c;AYfcv6$)22{bOU0L$*u9OUX1M_(lHy8fI|5Aa zyMJ&pMJxImbiNlXv8#Hn_qug^gD9b4q~OCRz|vK5q;u%3iufdB5uy$SClV&^H}VZ%+H!+`AWkz@Rqy zK`(&z9%@5;?Bp4=vv3kwq*PFlt>(yy|DlJr7=iWldYC-rGE8Cslk!w{nElPC@u%;< zWxe6;qrEzSN!~E1U9lfV9Qj;G$V)fi@KTZ&~kryVbjF^_Q!j_HlAL= z2b=$53I-i*o(%p@i&;^*c{t-7*n~bJJ>F1V3HBg~j>GH_B@x%Z02g6zvv8m}{PsD_ z;)swvi#95T_V0$^je~zx^_!(jP29kU@5({d0YPaoLA1F+<&zQ2;7Atp$cOxsF*our z#l81b)aytgJ-xCB?KJ27QGR-JQYTV@_mOOa)&3-0W{~oLD-JnA4K)Y?a=C_}>O%G{ zhv?iORY|$aaKj|U=wNB469z{3o2L2E^mvoL`|5DB&&2l1;bo3GTV{R^Tu{RrTm75p z{Pb`y$(VBzl0=1wHfH41GSvW63_EVfgpkNWHr;yzq;FvC45!~aWNhNG@U|$mVgTK! z8ncxKo>mPs#|2;7pEKf-U%gRW5>>nz3!>sUB2^-i$2?vlHon>=veqTOZYn;uMedD# zjCjqnmSasqVnk_bg7}r!Bvu5WaO|p+Uw0bY#<2DTDu(Kc$lA}Pj4EktAL+(*pR`WJ z^0J1Y!q`YN$E}MZ8g?99?QgdJ$irsS{Dq{?Q)hYkOX(AHxucqAa!xuYEG8R)DGUcO zH(e>^l>{O$V&A3Wvxz4?6bV~{ML43Nd4VvDcx^C2pB znIHYEi&CkhdSMG8um^y%k+eJYsxJffS|#oF+`@Br~4Y= zBtH*?;&q!R35R|%PjTPWu2tlg2*~m|f#FK!_@BT^nfb>gmH+AI)WGkx*S)gUC!m4g zkbs-CfS@d5SDM(o+++wI)1jxO1s&OHt_LN=4uThzho=@tJ2w@qR7D&9Bex<5Uoa@2 zzdK!^Hk~6bzn(gysW!iro7ck$9BdKHf0N%*q1v03&rvIo!I~Ip0reFwTu2oth=YGS zG;GDN`5H%6QWtqBXFhIEUI{8P;!InLGurD?I;+Xb>n5fnEw0Kba)N|^3VdFND=V8L#a9zV5Eyd@unBi1<~KyiDzi~xv8&+bb}i@q zsm;BT5_j@p;dF7DaGb8_|71<4M8e>9U5cvYwMN zGPGP;w24h(H@9CQ>p|sQ;;X&;F9Y}yfSoDm)f#8M1y~=D)F6W)~{0dT~-BG zPl$;{rMX-2@jFHzhbTAY2Y0!_$Dq_n5KK&|w?TL+%PWOH|M^C9mehJvJ z+U&M4TOSsZhZ+Ll1ZdG72s%X2K$-J72Gp4Gw{fWb62Hb&`*i1qLTfW;NZ=AkDno1x z8+()kw~EEfa%rdxX~U$e5c|9AdXReoWgS$CU&^9x-8^d#a^Fa1!DUrhsjBYA(vx*a6ldb# zwsQ-m$PE1)S9M9<mhdg#tsOn7!hSDbw$p!?y&>tSC7o-XP&Y{W z`Rf+O-sfgLZ90+`Mv}sNOsN-^bn?zLs@g0D1+YWcrmw%-)yHvEhd`=CB&6E-W+Hlu z&M6w##F*1I)4XOcs{l^1j6t@zo$FRxAI~#~d+Z0Dw5$TQ7A^i?I~?FFYB zMTfj)t8eY2>E(6rZJ*`YI?&81RgX-EEJtW3@#1d?x3%6m-JgWVU1lhrJe8B_t3q=` z4uh~mm}6IPHdLMKQPs?9{AHZzCilvB-R_^M2JEo<$wstID|I97K|*R&RydIN!A%VD zO$W7AKJ~O1h3@^j?#2#wBGaTJo*_EYDx`vOj$%`nPZLQ{W(5-61^o@E;q@4# zvwls`JL+XlNP@uUi_*=dw19egeEhMH(N{B{g6 z-6Ovn+a=S>r`_v7H^Ct@;c`~*6xydmEeMUEv9N0I38oD&R;Lwze!A)>`Mtciz-szN ze@NBq1gfA4cq8~zGp#;Z_OeqhwZ9G1!Xq0NuiyXj&v?;#TlQ|}!sPg@eaY}Tj`W@3SRdfVNk?TM&S_k<6&g*Q)SUsT4Z$d%U1dwuV!gc8v=~{ zO8}P%$IuDEqzMt5)nL$qHHPr|vt9m@mxsMXWSw$m7qDjElf z#!*s$7%5Ph)My(0N(}?P<{Uv^_32w zxC9oyya&o+fI4!ZXf((IHA>&oGK|?2(91yz;?yR6kVfz8?g2M+!7`UiUG$<}e!Hy- zIKA|MBVDj`6S)2*Gs*cP#h(U}rV#P4-X}Ik-R?)00~CGAAf1QHygpoaf|kNQ$PrXn z{j0<5gYIKL-QfuB=zujD07^?B74)_=8uZHs>?kmwRtVLRTC}nmu%{rkQoy#g{U9sQ z1N7RyvDwqMnNAxPowL#(#ANAv>T4>EB9lNb^uWr3*wRGULaCq?`jZM<#b@lRgen5+~j#b`6IXIR(ZOzC3U5XA6?iL>7 zB=5 ze~=w;?%j$R}&zU=}J3lY??X5asbwALI#}U9v#R+{4Lqb}Cg^&37zGDL zq_{XQ2z`l!@>c6W5u&>p}bWO0;n?Nd0H{tg4?b9u9<;6SBE}0pq6O{V4FSW>wkJ?)+TDL23VFJ1u>Ie^qieb=93t`|1PcQZ2s30f!Up+&5Zjb^ zgeg#8KBFKxCoKzzN{B6d2y82hk#&U)^)>%Du)Y6(G`77>*+ofZ$eFSKtFc`|sahlG zr4W=NGQj*N(G@A%HmV3?Dugh-w5(Nv+WP2^q#K+3+>{&OeQuPcTFq1+H$ArMinyS` zFyIO96_{ysM1~%53OQrH{4fY8zS%+?5u?O;s3b6{8tec{)=yv|>#Af8I6)%E3hVc@ zR6<%gs+V+{gj&MtSQ#uf!EM}Z1xQCblwykUoW4lP9vK_Bd^ShL-Vd8%iP=a)c@(-= zQR~ds30QmR2>f4*tx17j^M^q=2#>)-+Xn6_>@!C+@^)82KVF<IRMD<;`Mai zCAX;>Y7>3W>~qfd(#m6HsDX7Cl_x?kW13|dL$r?YnEJTencw>UO~O)c4d@Y3qAW^! zeWLI!i?TJWrtBuUxv7Z6ai>Lp>h|gdqJ1thJwlTq(KvNGRh21HkunKKa{0h6 zvj|^rgK+}m{mUdhd?{*MIIw0EWFqfB@l1~Y=ZYz%OIfWQYu#?=|01@&Ke2X;lJ7BF zvBi|1PCggE`3X5jMN;&DOJZ>Ixk?jgdT7g2q<`m^rHQ+_R_5wKYpc@ZgSe|pg7a%@ zP|5K%wVB!fG1$6E>64$H4P^z}i0ALW?mJhR(gMyA0f?J$tKKoGZC$4EpxUTsb)-LH zY+i_)tXRK3)SQVT61H55Xg)B$gSAe1xFywJ-_R%nB)!n1L}+=#;@lPs!*SVpPgbU` z1JU5qy1S12Q{I4DB`CSr9Dt!S+WU8t2?(gZr5i&`s}TL0dY?n!qB2O8UH|Kb5bKtW z_2>UVY#Why!v76yBh-w$ricuVUPMW&h4#he12^@R0d$y;5frd{0}nzjC#8c?_Q!l> zB2R;UjuYuoU}GW(@;5&lbK9t3f0Rh@%{6$XNq7Rbep?%@Zw_}E2#A8jU5@Q=%hzixa7CU7laii%gTgX znOP_%>pQ>x{?ZNTL_FFfVo@QS)WXUuIU?T=0XRVTW_giE-C8t$}CPM5H%Q_h+mjxvm2 z?)2)z?6};)w*R$A$o3`05M5>LCq9-SnHqz&7Yc9nN(t_Dt-;V(ILVM?l!^j+_93yI z8g@R@Q(&aiIFZ&EAsJ|5SW(=-IVdHag$PilJx`HwX=fQ}dqt$ES-`JE1b^j-(H|8~ zB6{tZ%X6&4ym+}|NAlt^A-3HsHRTW7NEPr8E~E-#st~d$UVFXEuVlTcgU;;Y8vT=K zMLa_rp3VsqrH+sj04v~&UcQyu2Z>tEl|N`~)$PB3Nx8?W=)&IOR*IfUt)X#bqO6@# zqexFn@%_lmETyT*A)KDu;K)I!7#qYFX_fPuV4sdf%mCtOlU-{Gh_>rA)a$IpYB3BmyPZ!ISL>$vqwhx~``-J@>~W_(xTvE?{ip=wVyH!T!))DT~}{ zW(;T9Tg`BTZ|RR^QP%MrvV}GE`i;nUIy?s0J*r$Hs*pdVe#ADfb;RZ69?NOmtM zd_IU{ihfO;j;ZTW9G_K_J}mf^}f~rHKQFg_NkE6qJ3)Y6D1u2(r;wAojzy* z@5qGgvXQ#){;N4B?-qE+M{z>=J~2{%MbWk&R`B0Bn2)rJljUgGnF+2SDp!tLfUD6B zh2+R*CkcktJe53cSMpIq#t79KMMAeB(9!7+1-dWwzSY`$uE@(C;l?Ka&M%4EK>%&* zJ~|u54QkhJ6}Ft)x@V%xI@Vs9rt?hc&z}G|&|j5;&gT=z)!@W*b}ABPT!brQT6hiN zai;Q97fFB8Q;WBonGCI#1KCSeoC*^vehiY4tJqC; zb>B2@j`QmYC5mZ2_u9@K7n`_Ba=!0-PJMS%AWiTsv3Kbi(@i!pwT~hH{`gj$6m`AI zz?}C<8ST$52YG2eeL}s(xkm2`cj;Hzw*xCS1NKh#4c;!Ccsv)dc+!s z@l)T_El3iOFQ4k18eR*PdI-1Inb9W%vtff|y}nooNzOWxoLO*V7<18aBbT96MGj6(nE=bshrCR>9wyGfr;vXVEoz&o$dL~C(`>ebS zA#M43E{>;iEbos1&v%6^CHR8#v5?!)!z#WI7>JKLaAHGPWmDpeUkH+5Q)5k-hi?sc zZ{wy%q$-6S7~?KL$`ZA|Ti1Ky4U=B(nLF<;JE?8H9mrYuPT=sXk>Dh7wK`n?=M<(! zg|W{-k;Kw5YAIxb&XyFAxIGTkbMjem_V z7eYDVGPa zDdyf+&?_LN19_}(<$f67mr7KUIpP!8>+c^S5fNYjzrB?3^a=iA7RjN(2n~$naS=8(i+H-mAi;n5cH-hXs$XwyEC-$IOrh)t>sF{oQ!`9PH3h|NMquayz=w^ z^_Y5ufr=QE8tqhzl9jv061&98q~I=?!jr!w;8}AVH%lnaiw z%i#=Nlf=vRPUxx86xYDtPK^T&`I{cYyh#C8m{|7fr;Eogct%62HdFp-z&=bR-AktO zl?U`)2KaW}C-IKsFlLB8fP@4AlIK_0B>S3g71W3W4aAn*@6#y0ObJij2$9^ptp1E} z5En3LiMc1HIb+8!k7Ysu0vI$>A2hb@mucd88G#Yh7N1{Fa73S!n@}<9w!tl!3_){0 zR3uMeVZ-L2N8YMbS^8301?;5K#DuU?sLT{ZTa!`+lUc-}YM_zc#w6d@MM9WZrl@+RFL`_ljHw?q9N4UxUkpq#jR$ z^;7SOC{av&wQc~X+@9`&4tV@}Y{GGF!U%QY*lodyWZ^_y;Xrp`M{eOb1VX7VMt0&_ z$nBg2coi$gLs{kjKHE#;kfa2}nSaE#7HLr=L42X`y4&99kEB9`BDDBpvW05QVx_mg zY2kn?Bn(28qc79*(<}87OY5_H-%{T5BlEAf;c=S`z&zBibVT`d0ZCmXe*TkPsZuH^ zeoHsxhaeD!20zH0^q6xKE=yjw>tiNKb4{4-h9PX5u<1%(mtR(UapCoCdFvK2oHUWL zT8xrAucE_+?&E|{ z3H9I7)8>~tN{3fjRJjD>wR5XmD-y1@|yDa4uWD?pW#vVj+%GAU%iQI*PaCc-Y& zM5^Who5hmV>%AzcEJmd^D+Os^La+k%70=G*P^jsI{B*_UA9i|FN#t(v+J`2pw_LvX z5|Cb)o`ewiS;~G0-T`SLB>0B(7`XG~VCx~9V!GF1g%)ZReAfmM{EMhhB=Th+- zgHkj)=RUZ7SG8R?q1}2Gq7B94yetJ?Rv_&F4k5K>b(znk!B19=J6t)%epNUYUiH0?+9}i%~GI8D=T;U zgBv?AwvjW>@V!Xybu4oUG-M=FR)ikQOHds;%0tB{>z~0K+>a9@9B$ zOVp?Nb{9&Juj(Q@;&b-&lQZnG^yI(o<`fLbM;rWF2K=TlbxSPeWp%{z1l}kV5?9!} z{!2EvkTJx)*(s!BxM!*rK#tU=3=s8at?erMqm*QYeU5|UJPZCd12E9XYxb|F@9tPY z6Th58#UxC&?W)gP&AP<*y!s6m*Pls91vvKcpa8Xm!~k+T9q+lJ1f~)_K4gMjdkT|U zXfSs|-OCzKUzl+1Xm4DL0ii6a51ZWK=)_T``n6NJubug8$1bqs@|1ge*-GkMm+WEy zc%WBj(Z?eUj}A{pdr0eSM(D@DI6k@qc;oz1efC}sx*GIfn&_buV< zy4fjWgA+U5hWq`6Nb4-{JWE?|X~W&Pq>LN7e*zZkucvPQtkAKIT6&D|!A4>3tD^Ly zB7aB3_Ex3oA)>4g11tyuKZNWxe*sgwPb*DCFn3@X{!)Yf@R~t=>Fk`Nu#paoq2I!s zuT8%Hc@9z9l_cfA?r5?iH_2Hr^3O!|#CkRBq9FZ->aPhe{*Cv&VaQ8>_ZYOuqk+qk zQ$UUhcj;|-ADBSU4TV{FT;54D-kD6)k9NTehTcP&{}m36-z#z!cg&ytZrp zYA(J$1)1jz06Ae&jw=7X?Yh_ZvrR=A_()Ox>! zaIeuP;Y|;VLhPuqSv*h8ln&_^FGGH zJ<@vPlTCcQT$G5EWORfIx}WiT!kd~-01kX$m^;+B$%ztw>vWdvYC z*-A>^cExWER0E)f1~x4{?_ zDEO6&=#+mf#c)ioAvghrHR(QsIe$EV)ha|g!j`e-h6`bT38e{uTw~U#2_SWw zS;}bC0o!WbLC*cB9ox&GmXB;-_o0jjcqx}03ztL}m-rtF6HquZM549sgleP&LV`}l zAxs9wt^6-`uE4u%p*hQXluF?l)~$Qh3Ug^a@-i>qLe|HO3P58FUmm9@M`C!j_82W8 z?JKE!F0*x@u@JUbms(Lg5tWMV(ISV0^0i+f=WgUMoMsUhQuQD7{Uos`y(1mMWiIpEpy$ehFeO3X>M~T54`a=>hNl zUgbHI;Mw*twl3nCkAU#zh{D4sK|U-gdXynrN;7ZnFmLck7_UU0{iBipcl_!fQ}I8V z_fQ)<@Rrbrp_W_3<&Re@t=Pjj;zZ6$V6ZhX68Jw-gg9huQj{`-FulG_lxadq@LIsAxvpA(&XaC~(B_2TmC+x7P!KY!ia{=WPS{QLO}3};sz zjk+I3fJu3*Hy1QGn5AI`K@(^#fMFw*oAnqXJ|(G;j)DY|ju9aM3g}3gwk~BWvt7is zxwx+my^8ldotqX(lZ=m+#y(ceI2uq_a>tI{A}Lm;m9%>Ap`}l^T5J5)?SG5MWY%EX z9SvJ=T?oI`l(NPqCdAi3XzHg8`FivCc*eoC&$bOaROpp75n$Hxub%|ot{pb_Q!6jU zK_#gToJ!WPwP8f80NzRdfMX(>G%jYHNd3n$blO6~&&AkP`5dWyxp{TO!rK}bOP{^} zuM~l7}Mf##< zKbp?}*j|2yj^n_MZ9u#%j{TEQSv)rd;vj)<biswyfw?2LTtNC0*I_d6`{UceAmmH3%aJB$0xj zJl@%H6%yxfvo7$e<=&S1Tvdvk*49+j@yOqgwV&3bC!i$yr{oU6`#>e4s}nhLn=v*Pa)TodD>GvrohY#^=Y(|8yyoKT-l z7)en`Hay;o@>SHJ#2mYUvw(?aRsb;~=?7_|#kb|M))(n7|3_n6d^3AFO2lgodW11( z!Fj}@Ljr#!cJ}3|fcbuu7GPBLfSypwOFx2H?uMxf2WbA?K9=5&E&av%$nymDy1hse zk!F%IWl>pKR>N}E1glTn{(5G>Htc-pLz!gCg}je%N6H@2Aa_XM4vn6SwI zmA<=(E~3CbZHGQ*@f&-v*ald-`4mVj2K+jgXkZ{5QN1VB2PmWT8@k+)i0ky;?+y_g zg+Sg&V*?Q_?E0A~@C`01s+UdVW|j9MsAtM~vc+%^ za}v7+LjIM% z=au?*dr+OicDvu4GH`eLhH>!rI_K4!yTUVcL}iNP(@**1lBTTR$@o;*;vcQW=b`4r zm@Ak$Sa8yl1?9z4BuuKHNn1byaeZ)CkOm#{m@tdQ2zwsx#YlEy?Y=oVqT*YQXXtKa z26u|3HwN0am%hsdOyyfkE@>s{FE$cfK?VAdhS z9u7V-k8vN$K-|YBD_;|9J@WNJr4^zXW?o0XxiJUB04|IKw_rr3THU1URYoz)iBoe8 z=VjX@m5CR_x$jb%1W$AlGLVSHUtjci9 zB5-I}KCg~Q3asQzu*}Y4s87rwyFo2OG_SO~TEh%fW z4x@6RnPLJkR+E<8Bm$Qq#7pXC+Stwe6^bYON&mjLxU|`^N`1nm^ZG+btg1kJ&d~#+ z4Rxd-Kvqj!V9$Gc0#Q-s5RwcFC?l7z$pCY$mRTLTKg}oeKaB0{73{Ks4G^zA?+JtU zy>fzGL4_#u`B4ebIAecgUjcJtEd-k^w!aU+*Ea@eHr{h{p|GT9uR%UF( z1P%YwP&W55OXS8ekmoZ|lu^7LPBHo|+0pR4Eb=lU0LBc0am75$cUGe>r&8gP-c_-> z4GvGEp8OuZX!(X{c+RT5HEsDboWJ4ObD_I|86VTPd0A)9s=XF+oJW#f5`9wT$t1sjIzypdLjYjS0kw zB!*BhC+&x7dklLU8tFt8$nsIUEIUJ@(=&Lo72FB3XZe*;q`h4q;dp^dpid(l#PVn^ z?ix14{qzxav7@Jm+UrY=H^xW6a| z{ONV%;pBnrVZ;`aDg)R3f>Tmc-N00;%Qzc{+^s_|E*)k|0M%k-HN+8))}0|cv%WqFVSRH4 zdh~FMvg9k}pfQqF+pQ7p=xoG4g<+QqlF1Yhx>eb@4BEoy<7`ERmeYOoE??x0QpZa_OVx zVJg9JDO%AR#BOA3wocG9E2yl0G~snBvBu%>$jBv8zgDY6g|Ba>ZWJy;EbP2Q^=Vqb zn(hpW-HyCpe*xwH42M~ED=C}TReyUSG1gIcUHt!1_1Aw*{_p?zzcIkkFuDgwcXxL> zkS+m{mJ*dz7&TJ5W2AJK z3VxN?W8YeUEX@r*5!=kxv9Eu)X@&c8g>!~3<;ynllWEzPrFqVfb{aU929eVRt8&w5 z?ConQKfHn^?6ptayS_MqpMO$EdiK&nf{vI16W-D9BSC^kbR5q)-l+L&Y`9DF^p^qM zm(hQINu}3`DpFgn|F$-gH2He`TjMf=*bZ!XM@?u``m6vok@@{0iV0h#qkA*OwuKgh z$dFxKh;N0`64B;_5T(`jOh@mOV=QZkC}SDDgKCiidHA_Zzz8twK$QSz?yjw4sU+bz z`u!^mghTZOZcLMgbOM&(&!9R5Fr$DskQj6NN*L=3D02a_f_f;bf+6gnZq=t;;pCXf zuc(v65yTcHR{>mY@WqRFJa_QvMBfo;2v!4VTA74-Pf~@LRdQPLR0L<^T2QD>Us{Ad zSpiGgCV+8Qu~w8!4hr#3WPYr-4^WkU_54*Ag>M;#xHR%Li(_C_smHVmRI1L^(>vk< zpbT}QUFzfeyPzJUrn2KmB{fZ*OG5A-%wPdi8k)vp)(1_K0|Y{u`7$Vsp#cJ>;N3Jt ztcLryQt_@OMA99aiwqd@`x3$)q5c?z5mC^TvXPkS3l0$CDeu<;FdO>xQ$;8TvXyve zE_;5P0a*YnN!3;LkEmH9z5ExX>{IF23p}0!7+Bc+IVE&TiomlWY%mSy$Z3;5`_CUp zNVA4bK9EN;70=c5oINFH!U-7)9H_E>BmEF@VcWDmy?fKr9u(e1J_DnW5D?L;BzFefU`e-i52 zGep6W5i}Tt_v9w|Odv!92sRDUw{gga;#w=QmZy0@GQ+=@fsGO*vsK9%3@yoQeK(4* z5_c$;i_zdp8z^^?pzJXdqKsTif=S#fWvea4vN!;LCrnu5GGe5a zkj{JbDHMXzl7M**r1v&h&9fgtqQPdrGJwlC=QAKJFMrxb&_ZEIZT-ui-qgVDS3g0F5XEHk42fD70a>A4u$)qJn~z)~=fHdbMOK@na(lHNOm zfTra1S3JLSyfN3OZ&aVmv*ImqKRu!d)-%QS!D6wkLWaz26gOJ< z5%7;cahI@)l5HXu_SNMsET=EtDkG_CJx!_0izA$J@f~oE=3kT_Qm@+JJl?;9s^5lh zsxXJ+mO360P~WpScqx_l=H?3`nt<#}4WFm4rOiJlvX)iEY7p>omDFVk=w;dfs481% z1PItQL=6pvwq*p5@$E{ejEFrw1#uc}4Z;)(q5&oJOI5XF+Hd`sWiK%4kp5;Yu69bA zx_9_&8eB*3l>kiPB7zt2jlRp zDC9?gH~l`6BuL~4fZix^>L-N>{q`rM&BoQPH^igIc`z`_ZnpLk(0hu3PbSR07|VbH znIPE-3mANQIk8;C^@G82=HTrW&u130OWS-&<~&gsQFeA(_4`?~M(T)*B7QH;7^rX< z7Pluk1^=>9=so1r{_<6oz?pb7f%bw1iWZrF^0x1)`6ebaWD7&`rQ|Z-7i!{ zqEV*TKdfF1q(%}ayBy>_Z{k2Pv$^bZpHXwyZnq)WNl3&oJDeL3#7*vR#GQTma`gK! zg?Qw(5W;`xGL?EP{tP;LH6I-g+E@OvjEDburk8VQ|olMzy?U}#7WVm+4R-wPdZYy^lH{((Y$&8OtVY%52a}cEyV$WRgR6&euuYzOwbWm6sK%h9oCth z(;N!Y*HK<++1b|Fjkv%temWf4Iq_4V2SAcJK{uI=)Xq7{$h5J)0}=-I^Uhn=GRo9h z3NjWd$?nBwe4WwWS;c!!TfJpD#%@Y??l$SQ7%U-%C#%45N=L^N%gdMYl@{mu**I!e zX4;&o9+O~*V!k7<8T|fp?y3!YsHmccTf%Xyp^E$L(?jm$9S z214dEy5=1rqk2K3&vZu<@D~hu7d{0pB*`oo$NAJ4qhg12?)yZ98=~ zman!a;^|k6X0WIg<{&v!lZkVA3Q|95GUHCYT7UxT&*$J(GY1#dgJ9IkV;b9mjWUjS z&S)tQI+awmk`%P&-?G$ZHMHQ$BQ_0M(-f8bwc1iYM~-Ka&rX-eNj!BimcBveLNIuN z?AFy}X(ylyT_<l^ygeMh?eo`YLF%>1tyeN z>-N2G<{AyopKkuy*m|G5U`oG`*13RTJ&Ikk0Lt5b^3Tjmyn}Ca0smdMiO`O@27lxo z2CTs3yS>u0Ov#-|g26yl_IrX7Oy#eJAJuXJr}3aBZt5G@Dm6xI{!Ss?qYp#h76cd>UC`gINRjudThYXw0!H&ziW`R$_$33Jt1@3T{k}mq z`<kFM%I*V>s`_X< zy)}-&f=Ont6?W@a-yF6i-3?ZA#M%B5jLJbowa$s(ek%br{b``>$s+WrBFyO{^Q9m( z765+RJ@Yy2W{;!&RFS4V$Gw}t2gW8pP(00;!IA}#TfA*UC`cUU(W?fZXxqYjHlZm| zz!ofo^q!^*bMIYu8mIt+vEZP<_fRc?4<0;G2QcwgR>yp^jH!{1@;V1zU_`O=H$1=C zLNXYKA476ptiiWN+;vy((a(oT&igk>$G%?-{==#H_fzTFwo&yqxO*Frca8PoT8DAl zNH**^nZ-0IoN?zhA z@fMyDV9y936%dc{{S^rX;t>PhpaDV8ZoPg0wp(r#beN`t@c0uR|2Q*0ta6H9z7q@n z&f2eU$l2JcglBv1l|A&+*qqS7SD5Wb$R#`eu2n0ei^|A;j z+q%jdO*zI`Kq*I#^IFX?dH&rNoeX``6wOrd5kk}-5PGb{$p5tMh-6H?N%b2UtAg6Z zZo8tW(h5v*;?%_J62LZ*JzXfHS=pp%H$9PMrl}t_L&|>VF`}J)x7)8ZImhanE@O=6 z=?3q4!XCeIMNvXS#!V4!7J4~Z*T=L_5DrFu$0&xdT$rlkn!Rqn%t%_3URan}*FJ^;NuY588<&CVY|t~JeezA| zrg?=eg=lChlKIrfYf$#KENs!Z;Q9*c4<>-qKJDgUo3u|{7u7KQKu#7Vdixgra!_hl z6?@`k0#yhsY~k&tLFmz7pJ7CdWyUAYrZ_4E%h3NY*!DWGJ|J;WTqCH`OJj^h!2EVp z^rys?7GSXr!`Q%B6y(6umD2wTAa7__$gjh-YY139cOY-2t z4hSC!1|1(KbF{&M6cO3Wevl1?FjJ^}X@80d{xWf)QA}`lnHnDdY^)+aW#=T`G#%SH zG>g;V)j+g_w0SmvnZr4Go<{QM7%jJ>*OUMbPgIZ0|BAs z%|{gB&l7bma;zftrn+7n&9;}o_g=A25hD7}VF?UTpMX?vjPR4md6@-vi{th&MTcxQszvb?@IL3jz}l1Ay;Bne(!&J-b#?1j z->>Q#4?=-$m3k~{8uU3gUqAYE{ui+wRssI_6o5V{f<9T1XGw|F>^uq=KXRaG%5{AA z{YXjq>2VEQQ899oIOhWYITmFelwXwP8J+UXfTD=kbgRo-L0 zJ{a2YNz{p1-Xt!dYLd#uz~wiM1Ueul4epXCc0-e0RKke+EkhXgnFpxJ6QwvVl!C(Q z=s=!NamPunkpI^^2Fv*~X42^I)b@0YJG#5NkYv)SnrBQuZu6uNdVZuPi#wB;bzQ`) z%BlG#wMSp1JXY^%IInvvf6UWuAil2x8bgYMz&dNGe4Vz8!EiupX=y;QrHjIX9ZUuRUuRlAiWN9mgGGyRhw!qsNu{)|~f z!kK}8#q~TK5Y-nRHWDMkhBTSqQRYxk{Lak55nZShgQpjzVr&vsK%B{%U!;+%w%beJ zv+P@0EbWMLGr*Dp{<#qlTF8 zbE{(=A5nxSgF_NiURs_MpDKJcJW8qtEl`&>9(4jA{bG*G>7W~`rmb46AIA38*n6lx z79(DNK~Npb4WsXnuC`jGS+N;v5dOt_;C z2g(G(IcJwKb%tAo^4*-K^A#$ODCVa+x@x2@=e(wi6LmB#9%gkxPj?qXkM#ol=??tt zSs;SqwAfIPOC>O9BaIIod)Zj7Gpm)%y&HvN^Mq+XPCrOZgUo7#OGcGEddQn8Mcd{Z zImoV=moi2UafGK=fnOhmyUXGU2~GM`r|5d*pz!MbtybLYxkB|ByqqR#f#Qt8^cAgb z=ROLaDAN?KjQzyl%W$m@r_%Hi7Ke}@apeUYwQQt5n zr~BAD7TChcTdwu2;*qiSDWN*J8&+kwipyT#V^#OlQ0(?jYW=g%5-F(y4S!_-js*JQ zGzhEDq_XRh$0?t&Sw7MM5Q0j1sTV5NVg=%!1NyT3b$#0Rst}*c=1NMx#!1PU93130 zF7IGu{_E|~LT+>%s~Yx=xRUlaa~=G6tbyml)1W?&y5H<;^MgEOuRjw7tikMuwZ3q5 z{Ok#;>bC0gPsIntPzo&Iawn)vrtT3UNQVP4JgU3-r|zdb&YBS~etngF<{uUzt)3F! z;TM?X_6@fWTa<&r@n8K0=1(&csi)a>py2Ba+(FvHIYM$AKjsRt$odyoYmuIc(G6Jig8laT2qi6u1VAv(t=2@1^pvR4n=_ zWNkn)cg8=UFOsJ1#YOB3)k*7nt*8~1nXg`jA*o@nUTtB%?nw+{s)zp#=T$DnP>N(= zE#%JzIK?VZRYL7cw%^P2s~#1&%l`yKcu}g`6BZ$r6V(M?IKfM7V7?M`4i0`ZwpiA? zkxy6|;LGp`Uj($knF^wTSVrKy)c`f%MechLy~jPMx6ZVA+?~Isw`JI|WvQ@d`&6Lu zTky3X^9Nu7UiYGFcK@rTY5z;(5LI~SNr;*-MiBEQ9{CK(!7pJ7I8M|6lXy|sREe#T zH=3cBgEawQGqr=aNzCN27!!U4DQMAxKc}uuh>LDw8ykv!sH1M?a1SnGi+ju1jV)qF z!EqA?m4OogNbtKjg6`_98^(J;sBrQ)Q&rD>9N`!KH7dOKBHQZU+;BCR-CCH=<0B3la z1iAs?$WB77l)$U+wg*eX6a1LXPH41~CZ1I?`McGc@_R!$Zx11dCV&% zv@OBVEENj$H*`!jFIS&d<+M5$ql`#)2c>Ki$9#XnO~#f2YGjXi%KJ!Nx!$4eI1*h& zs43b=aGbw5t0UY=fT>#o44DWuF`I;sex?EU?^8xT#5yHu{Y)!Y&4|E|*}X{HqwxIE zB3G(P%)XZ{OcHN_L$`5}Styys*qc=Bmla~?M%R}0V}@M`&OCs)NX!l=BD*&#XUtjFAd^An3L{4nJ}#L%YL+{1M*YWt`sX*1 zCFk5t&D?%!qvrDL>L~W*D7tUP9LJ;PE{Lq}&Z*I0jmi7GYqNY7jLcYPhFo?A)&|3nB)5}7}`fOfQizPx~{ zy`ai23;vXBkdy1hsGHe4YR-DTpP9svVYa7=(G39EqtAsoAiFXwm5}tJk58PXv@GfY zh&Er6nH7lo19Htq@}{gWvw_?dah^FD&-Qt+E(3FN`E(K4h@YX+W|Lkef9 zLq&#gR4GnI$vqBa`sP`EktVAogMCGbxT4Gt)C*9Y2H{uv*~Xos6Vi<4wI zOKJGFXQ{fB#B2FKeJD$+NC-ZnpD=X1w<#m1WU#aWwFAui5@K<03ORj|GCws`lq-_k zE2?O`rY>erbH@7{@# zn3j`R&O3c4>vmO2pJF1gIy{G^x;9T(aQ}*46$MY-$#yKW{F2JBl@E0^&n~L{XqM z5({~eEH+pAQgeYV`DGHi4sniT?eO8o?Zyf^>Mdg>cs}ATDR_euAK8O>G^7UB-HzYY zMFdLCp zpte5h6uGfX=p{u;h#~i7rrCCeF@vT>5`8#;lk9>$e8o*Np;Zq7rJv5mLN&)m-#f3w zPJgr*O&Xnn=F-v1k{Vy2evg52xka!yU`=AP8NcEhSHCjJ&Ly0TOVUlW=gjr2k4tpT zNd?Wx(9g@i9v9P{Z^mHa-Uy~(n_Cm;F~n=deNB(iD5*A)qLmBlG|S}cf?Y+8T*>52 zHZF*T;K@Y2%+j0#6HGaEEe_70qf$9rfATPOHR9U6hByw*TS!G`z8@<*X1(X`$m~=B zOfH65afb&jE3wS<;|Cd=g z@YqU58naT5yF-?jjIWD^2<>j@gjV7sN-qD(*;dNYd_W0wsWaB7OF!RPpkMp4vD;y_ z*7kR|eR5am`>x1`y;k~pyUcQSeZKZ~lILzMePs-sA4HyMZ+?t}Iaa5x*>n7xU6;@w zOft5B)$9`bZy4ttP}&x~sDKP}Log=o)>Ac_D6m5OrrO``{uS#c6U<_m84Z~w*4IDy zC$nSz;oJ4kZQq&|6HhE_+-TkcA~x-Bq)c`Swk#T_CAz0|cCI)V51IaQi;*&O7@gnf z2`W90ThqFaQNCCXoi1K-%eWlP8cHYmgxZvrtM$c)s@dD5(px!ta}o@DjZ49VMP?b$eR2Qk7rk2WCmXP1;SO1u`GX!4@+P1MZPs$tTV+>eef!n3CM zQ>EHd#gC`T`PXXCt~ESPiFkn7+E;S8DzMS*J5qqLMe{G(VG#R<*1tdq&w0G>zA@x# zfazx7;im#E`nyZdHv=&664xlyiBPU#an!@2y_sRb% zEB=8@&o!5fJgn!d!0O8E%+D#|F}IqZ?{t4#$Ns89|1R>o?wq>ruf6WsydHk>N896% zYW|;wKdHy@rYM}Wdt@d{*ewppAs{}(u1Dl+*H5a;D_-#VkAIY?H}|g&e>8;uLou#& ztc85v{O3ApJ;y^++0z+Zk>4T@*~0sOd&gqbLglRB3DLEW4~37PP`_{W7U`ai}t z2ALw38d_0S7nU6+mR#Ff|A-<0t7|(^y?yaH{X_r%jBS|Z+~U&m%Iezs#^zS<0(=)J zCbz#LR*-4DT_E@Ua{OZA{QT-}@z;Ii$?czQb0D2Y9rAw>+X=DL`}vB@E71+1u`9aKC z`1(!G24`9z{Gino^2O@h^HBQ#F}9>Zo4FmWkHurJch3%9`%>~*RcLsZSDOL`r=bMm zRt?XES9@EjkCTL;`)Bdy_ZU4B*zc~6<|>CxeY$?%UhHwNTb9v#bIWQ7-3E1wR{rD0 z0w4n?MA*K5_@S$gbOrMrZHE#I&B6erQ$jXjRR2Y6#m)3p$i?RCEJK&Vis{`mQOb;w zJS|7N0zzFJd$A&XkY#I$&9Xfknc3!|PqM2wMG1-zMo(?jak2N4RD_(1lQope?UN1V z%wDCK=tWVooGX0Oe}jPy3nk#6CsrUqCpUeLBX`mIY5qF#@drjrlx?n5sCIpB5RbZB z(>8YtM`uPNMBAeAX9TFbZ$Ouw)>ctm7yXZH!b3Pb=n9yAgO0s3vr_egC2o6#a;am+< zB-1qvF{kHTjndV+U5$%-A5Y4n$+L8x&1Yh)6OPrIVq;#MOft!`Y^5T={n|AkOWye z?kO^$ui`bfzkqkG>9R2Jy2(2^?}$3k|Jsc`UAWsza4Z(6G;(4gTxV1ysgwD)I`5vb zGGXpX$^0rSpUpk~InQk3e<%W8CSGND-I9BN!(WQ(*z`qk7~Q&>p_i0m=a2dGs9e0? zB(j0O#wWL1^C@0l&nthwy5Vr#YWT(QvghyZ#vA#D+nrGP?mMocuip1(pLoXP^SQq- zvrh(8>%3erREBsT9t}TZL;n@tw8NGlxErn2I|rBpgoxXf%K8)5UE zQg{yE^%DBSl-!Fj$)voZ8hV*c!h-e6vo4teR>q&W{LJsYHcp<(xS--*r)ybF4EqW1h5U_LxGgziPA<5;y z-C2NwM5s2W!%7SG5-;OCeIn1CREGtIF5_!y*T915guf+0FMiFM5m?)VZmsCk+-PdougL2&R*;R4I^dqiPN_Adwn&1fEG+!mx zUN3WKI5NncD7`MmuU0k79*m@2QgEesC!Vn^!AkeP3pzos)#POBSp5bO=K_C1+e zp@|a~krND*A0M8+WQq9-ZfY1z)l^}sJ3=@4cCN~QLEn=bj(0Q&V#pDpNT9+XQh|c$ z@RhI`h%s2vI9{O~(7uxKZ49Zo#ZW32GR8t$Y|1cb7$I39NHLgXS7OOX!Ag`Tf*zBQ z885bn4`K9TvdZCYy{6F+B(>_y&B=;$^{anNQyFWui*2U)VvTWHN!=i;Q?MFC#&!8C zrbzaSu@HhV1!5sE3jZB(FvEp6L;zW#9}Ar<;3^dUvkQ-;StFR`p&-%6(mDvHUD?Kk zV*|@9ZTki@6v;k8=Qm(EBg~;A?V{L{cjcnzg}qAG!pg}S{2{CQJ(CYh^qcmjo5T-W z7$9|WD-;=x;H!1jmfd2NvOcg66pZI94%ja71V|~^?jD{~stgPk;_F9gy4~jD7C`xR zM9^ToCkjvKGeYcnFA>Uaj%*tlFC|B?x&oS%`UQP2vF!0T@7yH-GSe8=)PnSXX_oV! zvRx#9{)7L`;C>7>O4>fmht5Bn#vCKE&(LaS6_#!}paeu6n9RH=SQNYN3TL zA~bv$aK@F8NO8CQm*NIB?l#dU0C)PK#5dT67`T$jo~a(_^aEoHD}|4Ty7M(J=es#2X4n7?+s4Wl?h)HdBpwDx z<2@(kJ~iM)ek!)eop>Z?d9(y&pi4}LbDE+;-d+&b%7?NSEvOV@^Rs_mBg8SPtOO3wn6yYYJa5mEVB&fWrhAW2uvCbwd&2bRz`cuO-D@+?;`LjV zCe5GNigIBCzeP7q@|!ror8P?x$+*=Mlj_T7q#if-imr z6M#bqsX{1BL%y+j#0`UODFA*HfT#sWBSC-Kr?3cO`*9_vJ{5(<2q{_)XchCvZ2SuBdio;oxYhCB%#mzHf|=hD z`;FKyz}^A{>}@Em9Tym_1gv-7BEqK~Q%kuy#B}+b!asrepicG_6bK_!P@yLlBg8h& zMp+0RerH63l!(A`3M}@G#?hDA7jQ^4`ru;=jtg-mTeR*svb6D{s{O2xNx^o{2EN34 zAyfy_drN1Fp{OnKA~HnJq7LMp3Q|;a=4v74U*aIPx0i&1ki(DggGl&H+)r}K;lp=p zPZVlzp&{YXN2V&TOw|d~-c^A*4$?`qT9Uq(w;Yg;`2oaMEkJ`lnXg|^WrSst<|$w)+(rtc_~jD}`=&F* zH9-Cp0ETTt5`743liO?~8DB|I280ve(T{8;jf))(wqA*G02A+Cdc_wenxv~)1nZgD zKqKctH%C@!lF?WC`r#|tgWs}IQN-LFv628xL4kLRZ2C4KSqKvH_)#pwM~4q-+w9~$ z_DcJ7C+=$>fAP2o&CXpO4uVcvhAMFh}CBg3GWiscbA#LkZjOVcHStQm9ZMF_yT1wP!!pryGXH zKq-9MMfosMEkrNw4*BbniSfj0;H?4C1Hp%5W>p(63Wtx(H2O1bkrjg09PPGT(I0u+ z89GO~&zzCrx5c_ysQ|1LRn0qut{|7C;(MTmBbmOBRlTZnpCOKsf*C^{ zh%G%SdqpI=PEy{boUXZS*1VdR5AmNw;U2~_{zb7Q7aLngzm*tnL{6u z6G0pc6zKP&HN&EVX0NcJ;%B27bXo+-^EB$>zf*6p$aB(33}s3>yFnf41Ot=I&d z3iUF5@K}_p$7Vy$Xw*}=ilvf*D2Vfqe2nkE*%Tv9*d%ZmnLjBm0mmv#WMRhmhI-4H z3Bz3F1H zoMegKYVtF#67!B?)3s*9>}Jc~&0i8;aATx*W>`1{2z3r<7k$P$;KCewrK)>_L0ShJ z38A}Lpv@5ni4a>p+m6Iv%h{2_?eQjhc5FqjZir?3hPcnqW~nyF0n4AxXG8MokpT&v7>3 zd=RAKsWyqBXY+*qAEW)MkXm*#9D)yJJ^&%_la@FCMOIAyyfc zDCO^~!V@Z<`K?Id+Vi-vE%hX`R7c6i1Vt!dnWQ`u6oKe>khWHQtXS+#4bK~`gd7|( zw5|cY4>I`MOow9hmyED5vt9A&`jKocB5ut_9nB^d{Stxwwyym)+5ML-c)Q!cd2Pn` zyCviICE+&E1tdD?#?IooN`cm$@ogko=y-YIv@nJaVYak9e_uNs3b(2PuXB3}$qWhU z@D)khIMcPW_Ex|X-kSyzs6Yd$JlPlu8|l^?d-VMdU2%tJaOoU!1Kfy-&q&$00~xkk zY%=ap+b{>VHYinPtfCy4eM`CQ;{nE8S#wFlJHgX4;bvz_=GK;C`ETs1K|B_odW zXJR&%p8@((QlT~u)mR9S{q_V$W!vyQUGX6+V|ljTk9kCS<|k1HGVjkCC&SEddBFJg zqqCM@u`1C0vYq|%6a5NRU#(C3(Pv-p*1sA)kXkC(DyFro=d>Ix=D=ZZx0_qqfee)y zkBakcfCY6fc4Lmp}7m8iW)mV@p)m;8EUl zMOx!O2Fjzr#JB9>Ua8xOW14j1`hs}K;5xSrGJ0bBLK%|VN+z|#)R8k{*U3K3H}QS3 zBCnoUUX3!d=&(%kEL1}#?_8Jh13LtA^|)h4e+^307eEvKLiFfUKBGSVyN6)hGaF4$ zsh*>I4LiSwkKYdTPhAF#NO|aJVceOs4&^Pt*@qx)QcV=>w zW|$}C%M7(loM8V`Lh(CG9IrasS*jb0FD1xzs7@)K_v{|VY&kCOwM;xMo3Z|jBNmK7fLecT^@5Y6i9&x_V5jEbB-Lf6h4-B}1-CgeK^TOt{zXArvp0BrzFc>oRTy{Coq0wRx|G3;^vQur=Wm;g{` z*u~vG08fQ1njIvBPQ}zwKa#fiHUOJ=+`O~SveyT(O{=x9k6NtO5Zy%7BSo2p zHF0p18Sb}?!A`urVQ!oK!~7>-L7~*%%dr%K1JXYi9h%66yHX; z?xIrC10UOHrL7nA)%s)#^Kf79To?WA3-Jbx-8J`%n}L5vru=KsgvVwd*P=cgS=Qdz z5NUr20;9#EtK-47-#?%>egS@f^RsE+|N2FHzQ7l}Qj8>_jeP2?tncx zurp%{gRa0hABk1nuQ(!xO!)O?cl?p}!<^jDOx>G5z1;P+*YR6Y7Yu(k(h?@fZXxbq zuHcJ_k6;gvV-O?2-QuDyXA$^y9|N06Z3W2oQE|A%SDTK_PZn>KLSmVbEs^P_|Hstn z?B9Vc4o>txp08GaWpO?DerkLe4G0vwA^Lwew(+0fA_;MLp{a0OATB>pE&0FRv3$9r z|9Z#bWJ2@cH3_K=z*PLK3Sd=RM`u@zRY_fU|G?n?v#{;9j9iFV3SS9Z3*CTk0eAKm z50(#CkJe8%&$hqsUZD5CT_4|^-k#t8_cg*IU-6cd)f4&%OU+ zY`@qx6RrZi=feQl6jWdo%9zcp@ycs{Uj8sa95aj&-^^O_1i{z(S zj_n=Dzu+P}RC(!Q=%8)|FE7n-O+1YeGl2nJmBvS^1dHsjGCul9lg@UX3_wWoF zE(`yz6YZBY82!mrZHE=ELUA`P8i^g)+-G$L4Q&fpfdt}X)gK_cArzed;P#P)#=o=E z5)7ZK0x}-JTBhpQ02lU7UaYfJZA~r>7Zuf|^QQdiG>zA_?l&y;u?cCm!LU1GXw2;{ z_XP^`*6iXDMWCa5LPG5mlaC=vABkp2yy?rf@nfe2@8O zCa-T6UdfW92)o0u@VY`CjzEoO!5atx;|$q?RR$tbzQu08D|9o5TYoNi;vFe9lHeb9 z#_d+Hg|lN`*blR|9Ix5TyX^?^c!~UI<*B>9NOkM`{WR%3$%Cwy-~DotCb(nj2uz-8 zrknCAA*Ps?^AU4jc`oo$)N;AMwneL6la*DbUPR;dG4>a0%4@0An86IMZZ+DnTQ$^^jkV4HI@Hj*j$>}HId>@kEdu}3Uyp&htc@Yr# z*qn`l?9ka5g7?s>3}Yx{qW8}nq~F9_`+r8AjliVm(abyj3KAutD}HC~aYjI-#=r~R zbHu!oElK*w02j3_uj*0Wsml>Bi@Bf$5DAA0)P=X}GQUF|>vJc0)xeu-qLfxbC_3+O zn3%(C+%PRE9}d(+Rxjfx%`K0fwhoWq)W7+-p92+FANhKGnGmQ_%t(%-p+-2H5EZu0 zsX+ws}1K1weQ>{1<)&$Jin&K{OhyOey-cE0<=lRc|Tv4gB5Rl zNKMP|K1%&)R3OA;zeFICn!3VE5zOtgqYZ=0d53&8N0HHr`0e5HVk5!tz16L?3=RJ#RLnyy7h zyJHq40n3zLoJo%AYK7r}<5Wm8+QAO=pP%5mFtOBOeNrRaiEZq}J9}KL^d=gl;r~6x z=Sv9H-qlhjuX4Kqk1xy`jHXiwKSpfP|+DOD%T*d zf$~b=C4x9%+~sW-pD12U*Evx?`2yWll8@_vu3j`#njow3WiDDwG6~wN2x@&}-fUcE znRM1nR<`>hmv#$=?Jr84q-Ld4U9TT4g@j(KIN*?X>Q&F*zcv^h`eYcxEIblxc=mBG z^|<3a!*(^Jb<0!ZlEos6&+E+aDF;I7pEmYNbMgNSE?D@Pb*H4SEtsSbxJ!|JOLKy+ zKoL(HNAYV8^c-2uueF}dU02v@ajHn3XF8~s;uWpEZxWd;Hn*--imWM+Z4(Lk1RSItGn1d5H&g(Ya;hBiC> zR!B*6{y3zNqF|n3l#S?}b|0Y*u*c*$+;h;|Lh0z6v>{Y!Jju&N5p0VKM?}LClPR5q zk2R#InaBgTonShu>p+F~Jhf7)oPL7i!m=$WPQxD|w4He&2EM4S8ye!PYAOuIaKsJ!RnV> z_Y_44xZ>5h)b=w!R^Gk2`2VOn>#r!FMr+S73=TbXBi-HI9ZEL}h%`t`iNw$~ba!`m zcXyZ4Ez*Lbb9wK(*8SG^ADp$$Pv<#%KfB<&!mw~|-F#~7A|s#Zb~~}F)m!S;B8N(- zQ0z@z4bCw2+#4t*bRYo`8&0j!e?T`y={w%D;aImP7X+1ts$5@i-O{kh)iF@RCOpyF zMV%+CI(BMd*8D{OW;}D;_70~Wg+%{dMb0+v5+S@M?2Yh!zZn6HHfD?8{Plc=b06x< zb)F91sgYxPq)SoBDj%vNHS*fT5Sy!gbak#5;QUzZ28FR`$lqJ7t9&g!@L3)8hw)Cn z`$1b1S$CCpz&!^184=La`<96fF?ADnANN2`=4|ojMaaezI&FWQiO5mVz*O>bCVg=E zL28=*o3DLlfL%irpzb-;@|FL2!EYK(TneoIKq1^m-u7TwT!>}b&(Z)3n8g=-R$$Xh z{fcH0fU>ASKnvObU@L!Q8a4NM2$xXa4D=EfBdN37`Rvakgx}X1#PP@{RLK6Q%kzQ~ zpP>}kL_SM)+(XSER{0j0abL1>-_6S8>a)w zNQpHkvNr4ZZybyL(*(DkAiac?UyVf(wxb^qg$#SflSj}W)4VyclAt;ee@hSfL!e4~ z=Wo>*Ujip8fFLk;?^x-_K8h599!o6auH>ZiKZQ7lb1Rc06#)N^&`F*Ka1$a6k{E_T z@pb03o6A$VhFC^Ri}YOG$?^wxVTN` zBraiHQn6P3YQ~K+Q7xFS1w(XpLElU8O!j?^AE{iG-=*nbD%qqil|klrWxYMrPf-Y( z@a$9~Se@JC$lPq)43OVIQs12>E9q;?uBR77aM7Kr@y`Jzi3zSxusK|ecL4c=X;sxAcqpX0P=F8*k21lHvO*D3O0u2U^*k>#BbE??r1EYgaG1(3jr zr3}{x*p;gYK0sQfL^=#oTn1Xx1GDpi{}vThLFH?F+!YryfLB1ifDB-tgqbq3qBNN1 zDmbVQ4UeT_=66-GOU}V~^toZqB1`qMO7)NO>XnS@wT|lVEQGv+F{%o9Q!bUXcLE@v zl3cDd_dqk4nF_c9+JpSo5tLg=a^?i6AewiNo z=R0DDVGZ8Ge)ZgebAdtDTrdPw&WtME{UwY#*{^g#Wq=`cu!$IE^y~~W88cEW66ksp zaY6DrEs+LS7e4hV-fxh}czl>l@T(YQ?;(B^+c>=+HMhf9ftqun$;8hW&-xUdT%mHH zFg0(f+x$8g33-@CmPZW)(u6PuG&{X#s(uPANWf<}y{j z!x^bWlXRFMy2T{t$)N!r_RkE|k##4{THKGH;$9|^exBPao_o{nZom7YoFJl}CaFl$ zY|;d&vE$dMLQ*QydQza?nrQWj6P@OZZCsfy=92^s_^}1$KJf(Z*_=Wc%bMA%$h^aR z)vE<6WZFNnzFd>jGy7G;1%xd@w!GXIO>2QcYqeCI{kjP=hT4)ZtIn9~8d7*!8me+$ zbMo`}spiZ^`E;|wkTjVT_xO12zqxSsgc`u+4s^506uYWRU8x#kr;Z`?BOa9$z}vb` zFg2s`Ocb3z-kz? zV6G5ke~5~y{|q$m#zhQ}-}gWa{b{(%dcH$bKq)WHlyAa=Eyt8TH&;Y^8)@6dyw0A_k=$!{;)TvtfGPL!NG-{u@C^`w~Es=vO7-I<{W zs2s29T~PU`H&PmQum@2`{IHb%MHBtro6p`YN z%hK1M?G1pD7B)dWetWn8n1y+8A6~M=p}jOyau4+nd$hN5^XGI_ty&h_NLM;Kn3WH# zIddeAyFXQLI22+xL~aM(AS2fGIUwrSS6wN`4#3;V4_B?Y$Ees_oUY(rR1EFkoH*D- zfli9N{+A4d-xNMgAAY&p7XPM#{Y~lXw`jAANU0s9fA&Zm_XZSausL>V^K(N<2a#zyZ zjZ8mS`ZFxz5s$V;MVEuJXyicf{gn|yE-U+tZT5#Y%Z{=1Jy>hf>H0eOazFl3PzU%( z%E_&8^~Gu4DN^d!-WVcRpZhQvN{4!Ij(v;QP=BmCkFRk^!>NJa!wJEy!|%u?2?F45 zNFMi5KJCciOiE5kO-qbP z|BuG@h1eG62xJ1|;N?YC)it&MH$2wfk!{l1)B6&!{V%a?!N3bDi%k)LYs70*N(5&M zU?i0$3t(k&!sg>ylEl}dSWc5K#-=|770@%F zvI&F35%gZ>v8F)Y1Urpe6q#$GMgE}-{K!5LP#VBpd<0qx& z>D|0I(>itMS0N<9L}Z{xs#T15Rci&T2yq>d){1N($fVkKSZUw=7UDtIQMOU&_yOe5 z)G(oR6klHD@QrcIh^VFrm4LZyeJf8_Kd?k9DeYomNX-T8Np4VF^g5ThkaTl6Ot@if zso}#>`@BgHutdEP$J@(Ei?`PP^Ri>-ub(@EQMGN4W<@uVvz1}6p1;54FV}lhg%BUV z+}_*{_U68m{DOD@hJW`*dQjX6L{Jmw1%Vh&c7m`4AiFSJJsUF^5kf01KjfObZ8wa< zg18`*)|E*aJLI(3;+=+JE2fl0mj;Dms@x)uN0ihkKm&_HhR{8%Xg^ly2znZA|G29= zhMvftkj)gAr$4XgE#Iny6i#k69?fpPoa(>KJp{E?k1d?>vKg^3rjOLPS=C8!K%PVY zM6*C^1#?feVtjjfdYt>eQUrpJtBm>K3>7B@wib<;P7-LY({zTY5s^7D)Hg=hlkW8! z$ZX0MSRe_ukywFzI_r1Nu_OUw4#2iEgH+iFyscCb4U_3G=JyJ~53bhC2sioA1 z?toe2c%}w40ehN{$inkHqz5#imd)x&HSbiFn#-vVpcxX@vzuWd_|2$!}y{h&^Kz#nr)5(ec7%i>(6qpQpNe+4K*T zU~~#l#!T-OHP6?l+r*QsL6atBT$YysZi#c0rkBp zmo@n8+ZnI32+z03vYdLspU<~*v&J;x&+4DP+^-RNbw8~8wsrs7jv|(b*v}mM`?OQY z+4K9L@st1WtJ>FJ|J>RqTLV5IG4s!4P||qBaeATARB!=%U@Ev%v_t5~C3H$lW*_3~ zf(VEo18j)P@t_WhN3qfzRt_@GWIzKCGe%l8dEqt(yLE^pV)>r z@ULn<17SV)K2Cv3H5oQ$VJcoF&ULubR7UJ1e?SJ&>vzfGps&k&bg?JU^0b-_w&B$aN$S@c+{wt*M+kwgM;F_;IPz z1S4Y=o!I)bhpuc7Nb^UE!Sk)E{`el|3$45 zP{nL(hfLvOKCvV=5I)-Uk$WX+T(+s)#5V$l=~UONB1Ij;>3)Dg8?NqnRFHicT`Fda zgkOsZ&bgf`m8f6g_be(PiaC|HLbh(qPCv7XpgZLK_rmF@V5*q%O3p%sk@gY=+@R$T zvW?}VO3F=nEA?0|9M=L^A_D>>f47(rc*?Db6)tQAsA%#LH)#v7r4m8iFyl*-I73bR z+&{1oYIc!@&D|1H37WFjlh7s4?Ke!bq$k#FEKKew_Z0@yc6U9Dy)_H7l|MnO_gjK1 zzms*VO#W6F4R)+Fw(wUw#8es|qOG=XG}m~s=LVuk$6K@WhmjX6dG6RU2Zz>21pPQk z4R}ei>bWwVDmhrv7O$nPxz$@-*wjHm>&3sh8)K!ERr&v{4%#&n1{YTy2>dBtl4)!n zFlSrNX@L;sv=CHvS37;SkD|YMXzdHhVHMt;D14~IZJ>8z2(_0Se}c8gdDPe?lA)f& zhIRaDsG)0$+LCq=Y^&;<{@kyM_;wRyk#eM7>+=`(uDV%Yqa}IV=QxVuckCYD!}L$b zc7g5M(_g&+EH3s?rX6#$);={u`XHjI9hC37wchmhuxSzVCYi?p+!3x2eurHQU$4Q} zmt5hBY)LV0pc*MEw0|bYy?|Xmw+QMFFA~ly_&*oHyYZBa^N9O~`OyW^C-U z!)PN#SP-x)&0gej{F>a=9UJ42<<+l7b#iva=Bba%p57C++YPCs7)NZ0hOYB6H!B0r zANd-erVI$((hu28b4(uWT%6o;{)i^E%cW{`ZsaAuQa`EeX`Ksy)5MNlZDW{LFb|Jy zD#9~;E3xXmkT%m)BB(CMf^hr2n1^*w$KtmKP0bi872q}%&N|bp-B_ws@Tk)LYi6)& zw9;C_U;cg6f`D^)xLWW< zX!vpd$)D_*sdJ{el0f1-gzi3rAX(u6E|W#`o{}g@VZ1=w(#g+pP0D9|b3r>!;Niv!L%ILdLT>UsAX$p$1Jq*NqkD+fz zb@jX0@<0%QTH^Nac9uh^ojKQiVUg%IPhaqB^CiYo>A(BB+}btobDtayiuuO4?#t_U zzq)@({Om(?U;T9Y)$}Llaa7R%D!$k65c~Vn)Ti^yW+UGc9YkwOec)+n++|vC`kx&| z=d2iX4|i6tKVC-;uY2DoX`%Vxo{ZW(56*s?T}1ptPwANaRJ(b;ID~j43TR34NN~48 z@(O^Y={|opx*h$1`iKa~2=&Ar^PSfZockPzXW&PY=0~>XNAc+Q+9r@%$wkI0;C4lo z!AloVhL_qD1bqy$9Q5K63TA5!I3W}}BOn$y!INxtO=IxkGx#bk1Ov1L%RxSkz*O2_ z*(!L!5?g%0j~E;$Fdc)C@6s{{{2`-U>~nf*dTSoE#G&}%fghMcNex16yh8290&T}a z?N0(7*ZkV=LnKj*jMkh~2{0e@KhDnuxIbEc)A#=>6keqx7zKcxAB7p+DxSNC?G%T@ z(rkT+Ba#dvQXbLN4Q%2(Bk~mjevL%r5l3!ZBf*vAOqe3ePTZ|dLaQKQpCCalFLPr| zLG?;ejY^@dZHUMkA&Ve6%jcu;xnOctYUlwV`X~f5JS|d#A$VdfdWPwfXc+6b5}s+#1u zu8DOpMOBZ*bw0-ZBZjxE#eq=aU}kum5**bQ{+yN$L44%;uB%#`$o=!^J?0ulH*HnxK8iJapK zci>pmkwlpY&Ocsog?2c^FiFWfNo75$xh+ZKG^t%ERD#%(xlEU*6%YB*fmk@Hb}0HC zNy^_6gg>vm8!w6IcY%cVKF71rXbbOfy_JMd!l`4<3Ckv^vP&11?1B-<)FRrFh4bj2c_?XdzU)bsMGBv{P%{#wWD)aobLk$oWUC;d?pPr;H(C^sJ}% ze&e6U4YTw-vjUR+#Xcub31|1tWiG9w{aV9Y@y-T}u%4wl?mT7gJ!SWf8z+(^r=+K+ zJ*AzF=bV$I|5Q%Dj>x$kSKmT)qfEe%X+XW!b8LCam^sBW^Ug)?c=1I#e@}nEDU60L zg0MXtPwYoU#X(EOH8P!D&%5Ty0(azJ_2m!jqzH3ECQtLXP}9Ub^5{fTOVd8Fio9oz z$nQ7}Va~AOC*UFSj^ih#6Y41ZW^3~UHTR69=#sfeN~B1^s7Q$=SFWN+(T+NitH7lE z9T7>$$XqVns3bx-*bwcj5TQU7b2cw&2^n&6=0lz_kq*sid|!YNL4^|+OUVFgsp}c4 zk8r6NbD?LXobb4h_eN=IT`^FhO+ld^D9;s6$L$%!Im zm0Z=xa`lSxRG*w2qw*}fa@Rxspx?HM6>{P@@xft^Ho>JZGlQoY((sDAlQG;4pSvLNnVsB+->BfU8w3-fXStD-OH`J{b@1+! z^2C$YZ`{>fM>eUP*Qoi{sAtx^?X1yc{i1pZzbmP`^-wSk{j}z+QcqRDe~J*}ki&VA zHk8!WH^Cb$e#76P8F3m{9@I60k1BsB)8P9+WT?QRTwrkx@b`(laB22gkSPxURjv-~ zYL5{y8I#|id+5>dNi_90QF|4fh7t-8fdWJ|S{(4+|FuJn%xj6bQH$hyaZh7WXaHXb zGSCc&J};9*hIf5fk*(*hGtpAdS}KTc>mFrhBn6?+Xbb6tyu_O^G?6#j+P)?zNIOIN z$pE}_z$!8jj0zd(+{RnfN*B)2) zv@y7@(sa0WFc=h(hEstk0@`OpyW9&Qkc9q4F*pK5E(LjxYONIQ672)| z2DSY9?8sImC1~F-wcp~F(ph_|Lf&P(K_;FmuK=q9g_!}LGuw5fATPgkf5`xVtoBFl zcX&oU*GTvs_<+Arz^FU{tS%s|uOsqWjfxyYVn>$b8I5)dAD%g+b&(-1)en>E=E(!4 zi!zwjf#s->SN?Pvk^}IwvQy?d2|A&?d7uhoQ*m;D5MUH21p-QeO`yY%$^|5Tpv$3# z&jQ1|kt5n!*~C&H3q|CNPKZn%I9$!7$(J9(4W^cYxL^!QI)jDD0FDI$ENmdTDv&l5 zU|dH*uNERXStiX2(bpid^7Pt9Z&K*A(MIoW%tACZllNY*_O^FTURF-dT1y&`HFVNX zjUIt`p#XwDpfD6!EMTk>$b5Z2fVBnW%^Q%Lb9_K&I_2ssP($Xc1Idw(@=_rKTBkWR zk@dEEh3iHh-6$%I^3(>=+M+6kP{x=mDw{N&inHVr)dr2Di7V%7Tkzg5kpW&iE9&p6 zNVLzY>~i+m4-z>~J!*sdu0L8^f|s_~lKSQ>j9h06kl|NTf3J+a9A>#~i^fJe%X+p<{c-|?IO@o?mW;(vP~rioRHQE)^P(afRqG2SByF&ItKM^ z6&?!N=Ve&R7m3L(H5E638CdqW~ian)SHzQUIL|_XjvawpGk`zGEh||48_7vl;Ph&IM%WtOAK%^}((- zy4VHeRzc!a^Oa=ZRUBV)=yaS0zLSB2{%!*K`apib-S?u|Ba1^DB_DH%cO@jU1)lr# z)JS~S_#K02zE1D@+3)Y}&hdy%v#8CdiQ(LT89^11ioocD?(cldjw@wzj+_&Uca~z) zJmSIZ)Q3-`4;%*Ut!H6weB#(}k~nTPInH)GrbM#D%ZbC6?-zj&vuuHsw)Ys1+QXce zoY;}ljF-$#jo%N6!RYd>4X>ii0MGg(gr!R*df3d#O4XINAq^770*Lj8tp$xH-$Zzo4 z>N{mnx!CT;q=yeG-~CW-I`(ZK)|~^TlYxY}x?-}Z5=GY`U7HV@l$lc9(K&lJ1JkfP zC?N;(wA#U;1jm6t=V3f?_EcZFQF3j$s3(ng%Vz9KPySlY+go-M*wv<{|9Cpy(uFmD zJtZoJG-!6SYpDj`;_nKNGtg3OwT1FJA4>es6f7n+%1(ay?#tTNndNHJgw`(fO^MRL z?u0`ugS-E+2==k??5!8av1Hu3%qQw-{XYLQne7~qfC=)J$!Q_gGDGF6i};9$^Hs-= zOe4i9ZcJDD1>!CRdawERHJUV7mf}>v<@PSDAB|&nZgJb@{Z%H>H#-))?pRLh01)xj zfXF5X$?G9U^-&ntrpH^#IaP?%6tokEY~H(04{P=D3!dKFVB4bLDlsk*2RF^7U(U6$ z@$Xf$B`L4vM|Gh$ck}wZF-JU(Cz{h#f&E~o>~{V9C((W|Fb7od^%C|EgY^=lv-fv# zFBN`1*!Ax*1=m4l+!wJo^`pJdWD%z<S3w;;bLtFWXvv9zK*J+CZOFR3A^xuv!3MT*eX z{lCPv-}Jvygw|kDpfF56crk1#qc>qCF<2ia&Qm+Nx8J#KEVn}xvRxCq)P1?U32eH7 z8OZ`E&JG5KVTj+T|0hMDD=L_aBpZ)hHdb=k8ImDlwc8r2FC6`U8r$Y*e6;X};>lF5 z4>fFbMR05rHet^(nnqe|8A-Q8WF=c0K%oMrhdB|If@-pOp-Q&OeHu2CZev1cNpt0D zt=Zs9#MZL{hwS5G=u}yY{VS^!zK@%hpD3$jb~X|wJ40*`ojSvG;F3R1T5p`@k({Z9 z^lJA<;k2p@X?%Hy=`oD<-=^9dk7x5_qfk6O-6#Ek&Ra4@I^;_MJ6;(r1WgJAy*05d z?}jpdIjKlnF&viRo?YyZ#T#-bxOuzzv;jSz7|+{1ipNDKFjG4Twl6>TH=-fBpC5Gh z7Bi1~D8KmrJl<`Ldz92?R0No0Sw`Wag&L@aJDHmhM#&UFUfh2|DCtR{!J`Lv`mAGEB9MhteHU(Ykq(l~rv+Kdr< zIN6VrLSZhFwk8p@l;)RrFOnAd=Skx9_KeU}(*!?o453a-Vi=yH>Um1fDd4YMkY<@; zdz3EtJAg3SMr+tA^9p$f18dG;ecXgXW>i@`0Z# zC6R*8odn?Om7q+{OKJ!cv3$_7prcn^9Uj=KzbnJHs>7ja+iAu#%484zW4p=Tisc_w z-L@G^cG#K!M#=-fdSg4wg*x!=`2UcGBg1F z+arlSOCSrwaZ=;`6;Mbz-nEX?``@WEK*Nwq2BC}~ba1uC#Z2EHXKTHG^V;#ade~AxLtdKo-zw$e;Pz53()R0%FK?i-7j(Ps{Du8e%Z}5dd*i| zHweD7VHf4pdie5%asg9R?WYPvdu;h2Y1AWPl*v6~Ea8DF3=C*hEk0Yn-+`@arI)0- zm_F`B3%*O)i&eyW>pVLZNipM34-GiVcx5JqgnM@p<&tu{Cd(dqVH2KLnwrB$UlVuN ze85R|?$C(9U#x2AWc0o1>Dy=Z>+Z*seC{4$jC;Php#0u-Gs}zM=v^e@?CzP-&lP`| zd;3*wqA4sFDLC~wR6i%BC0;_z$S3Z@+g&F1z<>%~+bax{L*!>Haupxwzz z{CWho0~5Ddv|cD=nc^xC8l5K{nV%4#3?&)Sq$m>VeDTrN^s zCIq3rqS-?RGLfN%F(k1XC_}uJQC;{v`YBmtL!?D=v0oy#G-pVz3RPfSae|gGm!MDP zMtz{16S;@_YDJkfY4DUjY9XH`4!S`aHi`?5;?@txbf%4{gs~A7ZgdwhheGmWB}McF zZda4MtUo-DQQ00?IH*+SFNSayxv7a*L7s)DI^;pF0XQ(XFrVW>r>WEtIsS7KemyZ> zv&9pZi10i`tb}c+g|e#MN>mPlrFm8S(lpMe#^fWL;nRf9f>ui1R582txT>ksY-%;K z75i7_p?Am}iJbtNtd4%%8{Iv>_p+0}P3l{Qph*7XPhqbJ`;%f&Ln*P^=wyE#&y*V2{1Fqm_wm0 zhLSP-W5D!o@ZgpHa0JIdDN&4@ zg`|@)A*iGbooL;G+5s-QEpUZq;rp9a3o_Z|dvyS|}vHdwNoMeUi&`Gob4p*)Nk7-LgtCXYsFX*J3-JT$ju>2AIhiG0BF_0O_MV?qeSS= z&Ve|9?zG^z(;T(+Jx4l2s-G6zs$)q%_S$cS{7vv!fi}`=>)XZ8-67_xB8iJJ8B!ot zjQ8KwmJK6VWzldhG=_$xUGK|98B~75XoG*u{OUO#KvVi9s*9r8M9F47PmQzm#&0ME zYEMLrSR;Hc(c4nC?=~0wu%{%lmhWufwJ9W=A!~2KnR|$$*&I^Y3a3((NHLyrm4_8JcK&<%fM4S!V!LQZA3+l&bRy617Z z8)(&pO3@cdV-AvVj#x3kohPO>NVES#498lDLo$SxNu!blfCOa0c6cnL4-P|SYXV z;Y6#nM6UKw0g^<)bX7+$HyRtcN8;enmrFK)xb6ALf6yH*mFSUj*i?cTYao{n#>(Wy zz3<28frEJA*zg^7(tI2DQBPVDLh(^6$%HS~>nV0%Qzt`$78*)^IDAq;!z=}Tu*}OY z2}GF(mX|`8gW`X3iDZSv^IyYf`J!8v4IjbrE>HBcYeJet=_#iOS)+9R=?9w*D3cTv z$qj`6eGIKZL;dVyMx{0r44R=Mg5+s`rNO~y`(9VHUwBO$%5fvL^Z1;h< z;UJ!?wAbcosmi$YYY9yRn!cqe<0RQXlH#VAvj+k|Bv%fkp@eShKpwLI@j9@`7?|`S zOw3Z&1Ren6k|Krzg5@-mQAy>bz(i(o4f%|vCsNVgWZHEO-^by!@#!n4oK9dTX4Ld! zDUzXpUQ$OJ6OazHsun_q;RD3#!x-gBD0bMLlfg%qiCIxS1q0?3427%lBf%0BP4Rnop{P3Lq9>BAR0U%Wz3CJ$L#6yfhQ1ELx;I zNd#9QAS+o0x#uQZ$cLyw^Q*^0K_!T7Mk-6hjMX>~;(QAt8Pq;uj0uHTprnP7Ed-YD zKqNK!gq@jA^~>oDxe#Tadqk>;kb{RZpqE_8Gdrb6pTP%D5co?y>~o16Rn8~8qUZ9k zbpa4TdK@JQ;HfT#Hy|pUg*JAM?*(dp3rD-qK))7V40Xp+BMCLNfBeA%oihoq>ZyfWcPz&j!f_ zX5^8?fcK~L!OmC;kr28lwrvf>o3c7j9jn;7bdU$6$tSYaUK(}>D9;KEN_TC|%j}Rv zDyXo>kir8nsX%mgVuJIOLSJ_NG~zyc19{*;$$myE!lLkyuDR zLxS}$&GuJ@5Ua?%iSdr=KcB%9wW_-XeeDp9K3t;ydUTbJ_4qnqW)Egm&v|DZR%P9* z%ATLBy%(ar4r4e?Ql?hv-GdtKz`TspJLD!&vvB8d!asyPNVPTN62N)PQB{X11CS&T z^@Oo0R~qvL#zsM~ydmI3=9CZ@u&D-kv=Y0AyH(9X^4Zt@dm%Cm0AhJrfi$Z+`$ex4 zDa@KRXkkGP#H;6QMA#XDP)8>t?_0Hkr3P^Q%HUL8pPwLtE(G6kpg+(^d2jLL9fGAk zFzyzG2Rboas!$n8|q&8?08sJ0gOp!DHs;Ndk^2xEj(XA>r zqWB4gOx_&d(MGcc9&wgMwW%fEcDYVnGXI3T`N16jj)Txua6?rrVX z2*OBjk=4MZH17c1y{JhFZ`9tsT5T;1d5-5rt`1k(mr zGSQuE^;<%wqNGC=0)Eq0%}2-0DfHsK0hDct!*iZ1vDqp0-qYu;A6;8B6x(y^vlkBA zLt~Zz;>p>1-$)JQ$uk-O`?Zk^7f3W!o`Th3F>|bQFh#5UUxe&+EwVI*OD;N4PhTBv{yhYzn))!vHXpt-0+A4>ftQGLYFMVA0o( zR6BYO%?3=Fr(k)S6BNLjYk*@Ku+-ZYvc&71hM?xtZ20uTAv5Yqc3){k%?dc!Ki!s|@{>?1^ zJ%+v64*yr@!EjQFs>_V5Ok;Ns@{;yvDSG;T<3sy-TdULzoV9WS>^U}an($){ ztD3_sxkR5MX)2^VuIu4v_b*N*hCYRN>o=owledZ&s0mV^^9`(Dl z8iOxa=4q?*tR?U=wOs8c1l^z>NkC(PWah`(ud{ZJOS;zteQy}-NJkv^l+k<2FlWz; zyc`4y=nV=W2Q`E;`Z692x73;}D&iM{{gQY9+F>3mjw$mLq#OF)JMoXm2Iki?NcU~> zSEl{@Nd5us7JNxqs_Tyiys~}E1dm^rY`qnq5t{&9*JU&1;s>gGd{K)w|0=e&}>whP4cV>Q712y&~MFSySxHQko`7ohd&JVoz`{ZTl@3A02 zi69eTXjpheWYkOh_N6P75NaB#pcknS9ui@ioD&q9l?%*BEG>%@2reoA|01?gdJ4(m z-MwLHX`G>WEI^Kkw6MI~f#~_prR9~ftcdl@D8y#iw}S1x$Q|I}@&3l?*1`Gr%iSM0 zXSWx3zaE}`-v4?0`}_JCjBJDTPTC)YU{)Ku%99F1o~MSj!7XGXu(=iZ%IYmfqsV37 zJloXMjVIE)ez&>ICN-J-GCbyP`Qc@FtjxbzhVO??Q);~uPLX^x(M(|zitriIN39lD zC109smF9}&N(1KY3gKuy`ZB{o2_(Chlt;P6Vuk5sOZ8^!f20VV4;M7r$r<^@lb=(z zdz?PE=y309>;lFy=&|bd<}5yNeu0ZyrD@gzMxf#WCcc*%z1!%tUz#WTW=CTXCgQ(VghbZ&GgHkZxt392govYIp&UN31@d-=9y9a>)pfKt4fy3ZpMpG>sTuY-_fAz0&NEFViL7B^-9r^*{_z#*o-7(xS!<&C z5S6SE5wF(ClzY$pic1nI=3(KY++O6l@|>!ZezAauj{)DmGU>6;kIy_ zfphdQ)Q{mnRJbPu^n)Y?qxF1#Whx?{Y9YWP^qGserr$L^x9HslI+e!aR!4a9w)m)W zvo?;ykNz2>`e<}{8n(n*EJe2KA$v}=$ZKPfxYvtzMl8(Nk z$B4jt%yAfjJr7w@wk|>|(Ne;spC?v`reVrXRKfnPLeDEa+)|#=73pIZjX+~aiJVIW zb7=yp1>G9fB^ARz0WjDzdrCk$#YpjG4R=av{E^eL9WbGqrixp#9K%Cua{^DODLakJ zk@$TUTyQCJ9^3OxDq)CT}by)_ZNjnVqe8~%-I`c*Hnao9$4+H)6;6M6-5 zdEH{j@y?0p@djeXJn2aCPdiiw-QECQRJ!@L`zlmuDj&5*%8Y&JBAGQVxVR5sPYiynvoSA7=nU1+YCCtF!SkGgE^AJ5;J8}D`)oG{E8J1U9 z;UT+6x~lPmYif^LHrGcIH4CKMv|hC%uFtJ%CIZ^@Wq}_Td6=dlA3?C(qGf8aZdxCIUMU>?P$rnqSQZZabVpEln)sT?nYjRsp7 z<+;kHTEm~LWimt)bCo}8^HnA+pKZ$2N2#jiLQV%PN;Jo`?NEsE{D>O9jbzA>IuTlq zGnny!YhQcARljb<$_m*MbeTb47PLYJlIFPtH@HfrFe@|=ymRHrIOfFKIjd5H5w1@= z;?+P#+ILs-$qF=R4RtcSksEZ8Ju!lyjAM<_-vg!1Wl|>el}4)*dL4Y9{PlDRSt(sc z-!SY0u{HWZmkQ!iPPUmw{X=)Lo`Qwjn0k?Z*7O#?Cv2f0S)cZUn2Pk~J>m-okk4 zb%#G3KC5nhE4UO|6tY{sVlIIxOydZAc$X$of?riqNupmD__>3ZFk6KHxA)Q3)jcG9 zstb_wgBj*kJ&&te?9sGnIVoLwXu|J9(DOK5>+g0=^d*Aui-JZ?Ll&&Jb8R&^fqL4q zW-ieq`B0AHqaigd+saSUfg-{bh3AKx_Xh!GuMa-L1dDjcj|yb)u(vtie6SJkUD6ol zimi{fmcj6vN#m5LlMbUWSNXIaGEf6>rJwQ?Z!<%Z{7Imi(8)UcXZvv+hjz~J7Uhry zVf-}V#3$2k>0nVblq{{UNt*0dzeDTa0H`;2#+I|oP3 zFNb51SNgMGQ0{VX)odiNH|F}X>5{7nk6sxv+TH(k&g_3`2V>XE6CdR$a$>wuUUVxW ziG8d8VYd?cfxe%BveEyzv+8%n@8vo@{{5SKlgMsE!}kntvcB#|ns&;wu-xA>ZxPxH zUN+^Ov$r&)Zfj`rl1;|s%o^vaJN`-ch(U?;Y;K+Y@f)>sGqKF!?->)rd4>Gej;Dcb zE}wnArBm}OyK3~Gz#Wb=0tciq3LfBG|ud`CRE^?}8megBZ{07|h`9o6c)kZ}-M zCW`{~Yi$|2cUO}5ij;$km`k5-Mb=eaJ*pLFt`jn|Y{BmgiTLtT|A(u;jEeFB+jrp^ za)yv@Q9_UshHj*!MY=&kkQM=v76t}}9=f|zx?|{+?hXk-0SRel&+mEm{=fU(AMUTS z*1hgEAFlH{uHy{jEAKX)j#Y7c+c4$MC;fC!>)Xd3ikR#S&(VOx!1r5j4v+T-N=@&n z;-5t5254>HFNx?nk6e_6ei>P8Y@Kg16C9pwpED`Oo9$Kqr;|XV^3mgW8@iOhNU`)_ zMz$HbtM1ZD*S>k3)wX`rdDXTedE!gdzLDC(b8MsLILN^#{YU>DURe9@Rhx#|XGAw6 z#*bQ!H@DRS6B!t|Dd(~2QzqgoH;VVVy~)oHYruGCvu%%;vs2@XiS*{BU7!DzkU)Na z{gmNwB(c&?)Om_MOECFqg}fE@X-A7HhGAs`Ypqv*venepXt_Wr@zgA}{m<1`|DCnF zwbz~-z}KGL@u>UF=ihFBbUmJ33CXw=BhDYlzA0#@9*TS%xVO?m9SjztI`l}#&OF8U zzu|ZWB-C2GVxl+S_6TdT9Z06b76P$kuR^|bg$7A1206+&>*~weTQjEa%JLrseVH<} zVP&x|2Br0SB<^?+rpRqw`E3vS>mT?ZB*TntVP*y}^AdlPMSoKR7@-zOalm(sH0Xzn z7sVI3er;tTm$#EZLD3|X1s_mWNy!F7gv+@(G=Lf|lnb7*c|}J}=_&7>zw1Ko3J+t0 ztJHeu&Uz#MV{AdkU&7Lw!;%kt9Q)uI)Zuw-;9Yq|;#wv~B_laS`n!*Wr6S=LynY4l zqNPQmIR|tr`mZhEu=i{s9YYaqC9n@7kyZwgU2Ks9)RERoT(7p=V^2e!tV8c~$*Ww0 z9dbiOwhXG-0?+0`<8keCD56(HqH#fv3|3YY)Nc5eQEpS=#4t+9eb=PIpire~aIH44 z?%PW^LxOG0V+r&aWc{03@iV3$O`R3Wz(XtP%XSLl2{=skGW?tu;VKjBOpZAGhw%IC zVI5*)v>RNyi?Y#LM4abG_IXB*f+9O@cz`FGd3g!5 zvl=xrXwm3Q|4p=IPY`Vm(uz-V_6l+=u{6<4l6jM$NRs?X+1I?+nIklU!7F0nrQ-R& zIKJUH{-rqH)Hs-OO88QWz;H@TY6`-YUATo^0>?()n%p$(y{h6c zBG~|a(X_H*#|IeYXDbyGR|l{x{9IH0RWV#HC5>k{pf&e(*eSd%fC{@gjY1jf0LH&# zV<=KaWsIddqszYbNEkf9)}3H_iLj_2Uat7VNyDj`>xS0uUQcJh)V0b^TV53TSDB!m zSe1iVp3f|dUi{2UnaP$Z|G=s6mXx^E?C9a_*wSpka(1X_&L|B7xSv_999=)I%_%;&7z0VJRlb4?vRf}9!Ub=mFEVJB7(~YXG#!1(f4|gJ@tD!uSWp~vQ3#t~>t>N24l~awr z(6y)1=q?Prsjf<_oE58dEUV;htDPUIo#d!nxUDrEs(jm+9)*yw#Uk&>p(j>F(BOez zfy!_aLDjq-GRC>8xJ$EYkaP=ET7iRg z0+pR!O zI!JrlipD#-j#=^7^~N0#%_gBqOx;N|_KT&9#GZ-J5=z0}iRf4lscN8YK3M6T-wt%? zPX|%A>25OrSKxNqv47ObXFy~B`2Z<>vs!=S{-PtCDjLs=UZol$z@UMqCyEs zr0D*BMKOHWI)VTSB0DhBL%T=14$>%_?xNOITx&UdI3hnsp7Ksc;O}`h2$A&Wn)~pW zIA*zk(e51TO^m1QK4ioD=RRX^sibhxUwHXJ2K=!nGk9mJMEdSncO z?_2!Fkew+~46gldX?10EWJ(@(<#fI7wYiPwlT85PH(;lhT zcKDEvkx$Tv83JkF_gN;b{Ib1=izDe7@9*wLY9+X2ugmN;K{nb-HDeAd*S3uk3HBvs z5r7YYf}<`1HC@RA1MOq}#!ruEzmH_#8_f^ri`C|crUYdC@N7rNr-SSFgDdwxzHp5P zVub!BYrYZ?wk;Xzs=#Nr?w)FQj3tS{;kD?<>#Ow{ruOdHG8i7apKz(60?(7l;6Hi8 z*~{Nun%i6fE{K-83R9j&Z^X2>s0RR18O}aav_Ay!TTw$IjAK!&^luOYlzu@xGC$&o zEjHSwNFClcj7&o$1z&JH4Xs8e*=U3mD2`sCBHQ!ZC(k0t)5!rkXwEwa6TSA-Mq)x< zRYcqkw5y23tHS&x#y7_X^)lylJLZ-n=S=>vfmNwsI@t0qATe_g7sA4DRBjv?45lFr z{%s0m>FiA@55)xel2Odt{%5-@|>#C%5#kPn`Ar)vS`a(;H=4USr@myFeo z9i`X8LWjSU#DEw-Pys!FF8~x(xs1(-8e_5{jwN16qt2Z_B@c1I)I7y3m0S%$v+4nu zq5*57n@gb@*l!^7k~yQ#O;#v_#%!(E4<&hp^ka;Pu|mw(is%8WqnHAS1vmqip)^*U zU(=`}#m65@K;-NNA%`$MfGS|YfOu)l@rS9okl>X16uUOj1;$KL#6|v`>DmwdA6vA~ z#_83^>A1J~TKYoOVwXER?##gFbx|cpZtVk;)Bx?RmB8fN$hLcv#-oQ_V9)FH)_%Fw zi73d1m}xMY5qEc51p?^!%~2pmz{ZwwMK7?Co1R6oe_6tyF`JA~!eth&fvGcz2^bZ6 z*@NDtVxpIPS&~>nev7VT`9xUxk-)dDqP&_<_A;bmcIn6jG?t^E?Z2@VN`c_vaIexM z(7W(M;=t7uXYxhm43E+kwKX8+=F%xWpp;wB`W066`gVv0CfVAr^Y|tf``;r^UUAA` zy`kTvLd=}AnX z&unCxyL8l7#qZ_+~9eo%`cfh+n-g-DOkTj zVoFRdy{cNc=tvS-M}huI_Wc~E2*%2!T!$%wFE-2nDgWr7H)%hd#1AYmCvP67P5%|=b_#rViitXz?|N8#w~c**#M@oX zPY3;5C2D@&S?qEX4*9DRy`VOZFef=tG$Nf$Jd|{TWEMnYi;WH=Kmu_7#r${6d?}kRV(NCS!kwyaIbm7A4?QS4R1WOyvI{wsv7wC>A4nLnr3p+7JIR zwj&w;YejGium9{sUP&MQA(+gv@OiO*-C}BiZI}{(k-DFxlyCS2qZ!okV0EP7h}BHP z(N<7!M>djp+f!}Vl6QAn_7e$vZHX=Jy*skmN=0RHGGFd)?mOG1NiPxIbWvr5@|*T5o3Bk;w{`m~rk1i3 zQrdTy$2+~*-+uY|-CX@DpP2a8g^Is^7)%KG1uV%9L_IJn<@n*_lxzlJ${LslldIb@ z29a7CS^2ZpSI3MPI3|FQEW9R_r zb%@`qSoPcfj9t{h#Cst+#*g(WiLHk@Ku^X*M ztCYn108nQvLnF301y;p5AsmM#1xbg>nzojFnjf3jLhQ=I`e<3c)+H@~d5Ex2;ZOKM zniI)xX&k>*_1trHg@PG+-VpJ72FN|(1CbypQKv1so5l&|C8JMxrOT;E-akPXk6ACP z9JL%}C?B`}Zag|}Gtqr%#3Y-*f{Bwz{+XUtVd?OD+zrktrsO*;^HN-$3!IZ4fDEHU zhWFY$LeiadhKLI9TpBZ42J)L%b>5WpjIGODmyd0a`<^MBvwWyF0@BNNKFZ(b=oZ2| zQ*r*|t~g}J&kPTaqKCqf=bf_)DFJj zR3dqO3o4(pUCHC-(POjkd-6=057TCr2_CoR$q)PE5%1oONp$v;0oof{;3UG&{_dki zx`Wl($reJ9`{w6qZOHHd&>XS*aa^sS8iY!bp5j3!Bp;LPFIVaju{JpYjrb<4BU^se zizkVcWY1UK9k*X`o4yM_J(aQ7@e9)lBfFe%nf)V!2G8+FjYlo z%kzhH4ATc>ApXeTnCVe^23+MKS#@>IXou&imJJeE1EC5@{3(p=itzD*A{U?07nEHK zl8?bh5%C0tMPslO_pq~s61Cl)TB`6t)1JiN5rr%+IU~J-92&l#6-K=C`;26rKfLy( zA0GFpeJ2uU%2#2;r#U2N!!Z*g8fn9?d#y&Vr=7NtvBy{XYs}g8Jbi`Wr9cBs&ugOs ziD`})hOlmYBfX*Iq18Uh3H^TWY3+EmR5*n*IaW>gx#^(E022{~f}#C>Ht21M>~rnR zZ&>c`VJ5aM^1R|#g3NRw)4<#pDDRN~Ci~2%gr!P~9Puv75t^%pxX-jXY6+zXC@Ma` zWK$ktmo>*Bt)L~n78}++zPX^-@_zRAZ6UWEIfWWbl-@FAWVT2wktO+}gwMqsSsWcs zTvxvGy6Q8Xgkghre{2qf9mI=&coIrI+h;h#s_x)jSGnkWBvPlW-_lBv;nv__^4D9x zIj-)z*Y1(ogV93jqb6<@Uj^?gycxjcnI^-7eJXN3^|#Zp!+p!XI{(p(uS%nimi2&U zzs}@D+Q0geei%x`MOnw);yp~f|Id7y(Tl0SBDnOdQ1>l*or;>qT#iDm&~)Q1%BG6? zetMVW(bYXY3=+7xwGrKt7OGw<09dIZPeCAPw9i!P_#1J^NzRx=hJ|c@A~$a%=@Ztc zFyD5Hjl&)`nt42M)p=c5Do=1Y9b_X11R}XTXjV2J`SOx)D75J}z^ZB>5dgj?5?_AC z{7;S?Rz;*4RM?lS=kW4-5Mf0qHvTp#l}8^NWlcD6bep(ovG2Lm-*C+j>h*ZCtt~KY zOjegh-NoeIh+k7rY6szqaXolEE&&Xb8emo`68UT_zBmYpLSu2f`mr6WA214TI3467h|_mH|Ai@)nK zbhndjy)`7nGNxQJs6(KW`mi)zpzSYDz#!LLjh4`GG@JhIOrFx=XE%aFt@PHfq~Lmn z-%kP9)Bq$9B8_1L4CBgZ<;B-?d`SQ?H^cRu;68gnG&TR?9G{=$y zOYrz=3*mOntUZ#y;yz()(-MI_8+NQ?Kgx1u$ZIsOrn^3w_&R%8*)sk$`UPM7?S4|q zWhbvifH{7~Eb2`OhC|@EThdP>MGDH>?>7%eo%EUF9gH3`=~;gqd@`3;9&hUh*S}Qr zr2n=MZflquN0*F0{ALT?6m{UGOm<*8PCVF|w}3jUSS68jpMn#L+pc8XT6$pb+PCG- z{@6=Ulf5)Qw^XjY>W`5hSG($~u!;hIBcpx}Jm=4*`{Z@9-EmR!?txEaoKUN4Wh$|{ zjpgZPP*aKo%bTpGLrm9S`jpLNqzCfzV))7GC;q*8&hPhPChqrCndb^qsJif7zNo** zZ208yD3DbZexzqP|Kj?RUOUj@k8%6&PhZ7v7qb6dG(9|6etf;U!t?DCEk*d+U|-Gk z7doTAP3ygn`nHFQ@0aY8r6BpH0YCtdCb4{e{LcsTTGxa!klY{;S^d-`9&csylUj(W zdlKOk^DAQ8z_VSvA|!1qgBKaZzi0mAHwCCPYXDk`u-Bxx6v~Qt@o7^NEI|V3y;5gg z6a+Gu?kWT|RlBClc?ux|N++4c%z*+QgGs-*jU>BidBO}*zqaxZfP9zFmL(cCH`l?iuQG;O}Z1>UACB)2uHT0{(Dd^xguW zZ!sj}lqJO@Akzh228EY?@tngAOBix1(1%Jd02}qf%nC?pufG8SV)=t%CA)BR@7UiW zkgzLCtExDNyFp8G53DT1Dutjef`_j%V!iGOj%>t>SHO#eN0cS_4zNTHG<){^@42bFLpzba2G>K8obvS;P!jsY?*;V! zI_YhJ^?hQp_f0b68*I84LsFYl+@UT&Gwj$t7eY|%%lN=_(%r-(ktCC_%z2umC9ll&;mj5G zqz(40U~=oEY0-L1Y{47~F=9*^NOHgub1D;gtzAqp1iXOcqS64;BZFsYP|~RDYz%v& zTL5{fMM8Bx%v(0|oJo5bLec@lKa@5^@a5zNXHcf)1|_hsF(tu3Vbb)>7tXOQMx`kxg2WX=%~& zaM6x(kt(yw_d(1pb1+e?kMd{u9UHz5l4FKV2g9D!SXxM&m?CS+72d0n_3sFlfiJ2Vua5`ua!eM(b zjt=&Be(>=j9{m;vHGo_ITE1%}ZrfS}S}6kG72%dwKN+odHY&nL7p{mYna_}zFhFKh9zd{8bs2ND5sVaI!_9#2hyH3nO$y9@g zT1i#-tVXoR5Wt5e3lRI8!zmQNQN~d^Uq*b+05y?D*_?ZG;GM_+-Q-vZ@Dx817g}jB zzvIm<P8p_OP3{WmZtC{g;ZA>Ya~rlwnosHf#tBM>p63k?oc98M#_Xd|J!!`(9_X%02CqH)&N|ZIv~VEz@CX)4)o^#wy*) zPSn5@1h75v?QKaa)(P%%VpFmiCR8VRvQ#G+5%A;~J!c`gVm1xP!L5H5dnZ*(T}=k- z<&2jmE1>`}Sq7}IavF3yr0Y$3iFfIeG?os-PzpMUgJ2}rw%=)R?HCVvL<*Ui45w7E zM|*=SS;(#3+JjX=#^&0T1nm3ls2Av?jeg70)OOZ@6{+!+kyN1K{xp+1dTQ0zXVNzi+1DRAHdxW8Jk~mHB8bw_IGiJq0f13H%)iC*7zrx#)Pw?d z3@S+>*dD_@zAvUm6LvGk?WXJbQeXO|K_19re-ktkU*h@M_oqT84!J~swog2A(R}L0 zpXD0?JsrHouS`U=pvEB2+I8?BCJ8WeAD$M$@l=AqQ^W~lV--^q?R|6|WAtld-#MqB zy>glwOU{<3;!7LV9jf_YFe{$Oy^-rmwsBqZJMu=pVjVzMaHOf{p?TI@q3nen^$DY zrg~!ZV~!p3&JXQ%i4z|sxuql*Jp2|sf5;Qk$9t_U_&+RY{hNIuxd=5~)FPaNzg-Ni zT)Y{Se?vV_gt=4?$g9R!LUcS&pkH!V3rsS#&g_`WCLBwnkI+k6%Kc-To4FkDmQ=KD zxyqCvftMLNNxO_R{zY8({=ukiSEPM&l5Y(g@n^+AiH6uHGA4he+LE)w)VlUnhe$CS zocHTmP5014_xDV)FMewQey^ub&3M4xHSL~Te^!}A2y$rfaw^t>!4R?1^q&`uGKdh!{JO*ik_k_$7K7O6)7qyl0YS zt(^rX@TcZg4GMZR%FEsP%m?Y+O7FHtliTti@GlipLv#&9(X2!Ia~;Zq(#o5+3koeNt?rn zE91cnjQnV@>ti}}ax*n&GZ_hRaJMNn$0T;yb(qE07~e1R$M>oHz4G|yW)=J46d&R7 zE9q1r@pPXm8f<8_cg|<_2JjPORS@eDJVLewF*t#o=2=xy7}gzYMayuqP+}1I{4W0l4efs3Jf`4P-{H$zqN=!PeUHmA`eZn{`?q!Vx0ANW^&nRn;0Z_MEV^^M=TeRSF3p&bi2DIHVp23jyqS06(9|fy9d{n>{y^%#RW$ z0h#_>57@gqQg@lfU_+jlNeq|WOqV1X6c|>QSv8T!_hzq;A2uNb8ZR!}_krfu z4_TMDPHHQg=eGSD&lgsauYQXcm%Xvz8zS80FyLhyqDOXW4fLG!OdT&v-)osY%YTi6 z>PIVb$M-#co$ z>Kc2S`&tLuhdM`)V?F(ogHyvZqjNtNCZ<YN9qNm2$mQGWUzCoLe#O8PNn;U0)twyAlF1&3^*aw5^#f(&~PdZVi?y4 zM67(kgI1ZzaBZQg9~mBDy(efpCp?+~r!VC|1wane!$Mx?nFj;}Ig)Cnk(a)c<0WBy zLvvY(Mr`Zs*GAA%gtyw7v|^(F%9rYF(TFYT|6y#SIAa|F&zTFee7AONHe_^TNIBTy zjvG;M$EQLD36t-+1Hm+#q6eR(YoUAg>tlvwOW!vJnVU+@9M1C$6j$DX| z1(H=O2gm>-1jK%{3Bu85<}eh^$%*<#6bqYcX*u7Y%Z1}J$syNC&@a=gjh)eb`*>HzJE6RvCSoAoyt18#oejp95J;RKP=MGBKonU# z$;9%27_vLpwM82+oGp{>gI!X#LjR|C>_w7o9*crOtRW*P@L#gO{w#&`huq9rnEX*J zl_nMH9xdX%mzfQ+lOO0qF&icfv+abb#d$688X@038 zNkr02^{bJ>-uw*Klm4Lj;q_m|q42l!cKewO<5m+{ORLP$*}njX(K&yK%RXlNKBn5{ zL_Arx&5e0h#+H|$ZqJ^dXz5*=pX%DmUXTgBEiFjfX3r!doRuHahK9{<$-Ckp^tD3! zUdSk;DG9>f(Aj-3e>WUGaauyIC+a#ksPWhk4RsT4r z#mmBvCY!=A8n=Iz|X(_gg^u zmjKKHUgYT;!a4`kUN|NWV!I~c)#`Ib+KENSWZbt94Jur1y9}#wTHp8)2lefsB+8du z=VJoB+UGw+_AAcEx0omq=&nqGXTh;Z!=Y-*6@)b-DZ{p0tAyf@7?O%tm&wzG4Zc+G zW7q^Q7^N64_84@(VKjJY6<2zE)bw6-O>-E0b+zigkeS55X;zUJ?h<5^7Nu*0V-yaH zHA#-LdF03s=e%-So`J?rzj-f=_gJ=;@-A*E4*HJZDh}}LRZ5aGzq-h3RMS}Vwu7_! z2eXJ1rJo5;OOQFJbiIXXfR1-VkX)T7&cd$iEGMteDw!ynK2Rtt6pq?@L5%5B25N$ zo-p$GymQ|^%Mp3Q{;VcUrH_d$KjjU#b4|D@)(%ztU@r}AM2KN7g0@ggJ~cCn?9*(l zG6r?8g4*Oar!nRq$0dVOw|`?KOqlOBLlv<}&k(L^1@izyqzE^uin~Ao6ZY_s%1D%0 z(pUj2N_co!-TN#)N5^<&bC6LW0jhgeqi zjSKIpXM%*Xk6DKBrVJ8n5Zzpl*od8{GJIfV$yNSgZ&df3TK*?m?B9V<7cLXg(xX9-rU{_L9nT|`lC}6u}W7Qs+PHMd< zghZ8ID=24aji7tSew3`VY!|j$9!$tWrgiq2iEcVG4W2y4^-AhuTy6BB!<`uBv@0k~?L>2XvYn}VObDKgBlP!Y-9L>{Ms zR9ssp3X7iDs0u1zRb+pW6R&(5o?O==q3<#w zI@%u&>h)<2coOA@y36G-$Of&Eb&)Ri%6W8wLzJVCeQDd zemn}+6<0diYOgF!u{Ji8Xa2EvyIY=qY;3L}bawjcv-0!V*XEfY$6wl3R(Jn-v~5*7 zdrugzpA0m0oJTqPXWwo7J-+J1tvZ3?uWkaq3-@4Vo%%e#-y*yc?tNM10!L}g){Qq0 z2un>%D<D?(X+_ zvlzw#)i3hW+o4K|^3y~$?s5Vh#P71>r;Eqk%f#0XH5PC=U(|kacj@3VB@#zlY+u(T zXa4@q=d(ODPSVhn`A6Q>XLalGvTnui&)080>-(Kotve4V-Y8s&4eXOEB%S|hD38Q8 z)%WWGpNGG$UwwZvzWX|IwRRRf=({aA;W@6_c@|G3d7${sYbx3QH`KZ2PfH#x?4?>Xvb9?+XQ|fQG6Yu@5zji&C z!sV8X!S#Z*N;%r%)+7Nq1_7Xh*SIAC;A;;2g8)LM00NOfVx>S*gFtG}K-v^>nxQ~C zk$`8^PzDhwh5?l5I*^q*kSPU9*$jPo0Oe4E@~{Q*4xym*Nu+eRN< zM;{nOT?|G21;t#JMBgk%U)#pqvBg}8#5{^1Zj})CYzXXB1TGDN;3npw1OfPk0JR`U zmk>BKu~at*^3+(euvp^K*k>)V&%+|?4B}Y5;`*%JcAMgMKKgSH$NgN0gWSZSr3k!U z@d9D-{4Mc9sqs?7@nTEy(l_z4h6yrW3G!hHaxDo8sR`=C|H*7MZW6Q%6E(dOb;1(0 zTN3qB6U~Mbjg}Jolf}Ai6}Uen@wqG5dnGxfCOO_DInyNDiY7ZLC%f1syN1PiwN<`C&ex;TUrp(f{&@1c6F6%fo>o-mI$x_y-X!e<5_O){MtylJ)UG`&Y_B~AwYAG8amNR87 z`Z6%5dDC-cDd)*;j`(GIr)X}gVQzDs(opoXc>VOBSno(AoBUYAYRF-XDCVN;~N?TUETvo19Rz+J-i&ywP zysWOQtZAgIfwsIpt-QLm9C=tSN}I7T40>x{I+Rv1Vg&AQm0q(eo-`_+4lkbZE}o~Y zoK34-FhZA(F;y-vS8k3}Zr@h!99HhpR{cz?+Bd3FF3tJ9Q_P`_g-;FwFy3HcV*vmF zF7yMK$Bo1S;GzNm08=Oo8XOXezRHA$p)Go_xX74@pyY&GhM==U?jb%Hl}3pV+sgfWD{duS_^Nu81@Op3l_JDjT# zv_jDp$(A3+LYkZxA+lGp6D`3PydENuCz2l}Cq(rjR$8xd6y+NMNsWttEwxj?s7Ttt^1%j|IRL;B$I9xEm#UKP*jdVu;XZEn((B81*i4%BzyIky z8OhFxw4DxSc>5GjIuFhotnw=cL?pb5B)ekd|EdF8-wtSwl;J8tZ1?~JeyV%{^Kq` zX;03gOL066EBM3r+l9$ce^zk(B+d9z&NSoxV#&6+@}ISp+-3PvGBLWNI&<6)yq3M( z0a{N#{Bt$>6}Pi#^V=u#hAB96)X{b&$GT@_WEZVyxP!j)&8{UWw37SatVdW;;;z=I zZY}Py^4C_LRMjCI8Fh11J;?1dz|fL4zaO-3=D8klw0?K&hvN2K>pka&Pj=dF{~UNf z?QA{x!-vc7Vs^s$;d1d~wzuMB;~x)*z*Ctr)VxvCO2dtDa`xl=LHReSJ6I0N|L%06 ztMmSE?}`88h48(gqUKB%09Of#QN{*_^qMM>FUI!C9Di1he~R^T9|?N)Cy+EF42T{W z?*q7))7!$YTt9z*V_g}{CXtIr(jZG#dkW)@w7|0vk)vs>4iRb3ee$}2+k^{SfcajH zSR8H9qqK!%+**u^2?qTI=7hDmkaK5Hx3?-!QN0DNt=HT3aeM!bFmJ~v)hF#S5f~%B zUU^QtQ(W@+>$^XX<3>l{RTnDu#Q&y^neR{+20;&u0R%5p1{Nta-)g$}TIKBf$0{k1 zR(a|QWGQke$qa(!!WuaApw3#Y`2Q?X?j6*zM7Y`&d|K*=5;YcL?5!Xot=@zq5QDI} zT|+klGam6&p~Ep{khF*h=0HF(Y44$!_4zM#@K5Ylu-xG?u1~a${2^?qfuI~|JL)lU zc>zD$;16YI>6`Tvf>AYZEfdJnRl}oMj$&DUN=}7oB>bE>n;+`Z)QpvKTjCAfQdcjU zq219*;~y_2R(6+3>UIgn1Dpl~wgUhJLv!glKYy6WyHk%66e|eR(gs`R=dA&LDc;0R z-M5TIu?gn)?tv81TGMFHJ{Wyy>7eE56!SAlr8!V6z}n;@7b_5hv~5$xzSA5aNv}W^ z;LRK@c3Hak3#ue25(9o!orOfT1-C|D;kSUD$_p%)^nAAFa{B+o_SIQ>&MOa-$piwy z)Y5WIxPXE@w*2OT0j+95ecU-+;x}&(fBB-#TKDz<%oOPm?&Vo+*~=OPVT47l=7?hb z88wS8j!a^h=6kiA5*iFev)vo~G;1e(bx(`D<%VVD%4)E7P7kFCo0N=gAeFYKK3N8Y zXC1Gn2>@^wkfyB|p%kVPBBpAPrlaV8l0!8yJD`*JA~IudyJa3tzLQySJ6>Ki$D)g> zVQeuYc-vS8ar3@H4pH1nsx=)3wmi=u`mEL-PxB?SM#(8A-d=vSu`7f!dY=Z%O620| zZg#JxO}5C7F*FoG4N;%V1GsHBe0K|@r1PB1mkcg48|6k8y zHS1Yo=pfXfW-efCmO+?#u%9j87kG-nfQcNtXg*P!0V$H=S>kQfVo)`2g18;8lX)ES z8Ow-U*$r~>$#JBE$hx;oFm{SY4loddj&PXGypOd|pWKNLi7bO56%^Zzr=DxlT_TlA z=(>hiM3V5W{>^NO-so_(NhCLqEapTCcQ#(&9*?PAa04rxaf)N&D`PHBm-Q04B_~`; z3^*Qu_egUDjawCPsz( z_OSUp{V?3vM7JUXCq}Lv-ykimmY3J9MoOvD0{awbbNtR?A@;rRo@} za2&ST1{U@<8nnIxxsX@_4c#$zYG;t+Ih@KH4^oi}A04 z!5*S5=eUlPD9PupKrYLPY=PAQj={uI-23=&55hQzGcv$Byf9!0;rF;{mb@pHibK$e zOH90I)(P=kSO|P}O|=(_uaitf*r1$S4}uL6Pd7Ss0vy}xu$!!vLM@dJ;-mopr;A{e z@IfuMi3WChC^xYlNIgJ!wMcI&$J%NjaD?GK4P0%{M&_xkpN1Ytz{V^Wpx*`fz=DIP zHwU|$XXw~8sfTba7Ji~2<+ADpC^d2fHTcS$1-ej&-a!mUiMgthLaMLuSwu9}HC&yV zwHrP#Z+}$nWF~lNZEgzq*s%NUNL$KXJIG^JRCvZ4I*<8^!4`@PTHNDSN4U!kRCF@kaNnL0qWHB>~A!aLq@MdJ=(IoXK9C$r%d_y6N)7R@0R_vgd$! z=OyT@;VYA;@)6SRX-RO%WUvet`Lns;c7WDH-}{(-@!J=|(CRP%+C~)W)^>^Flmh{j zPeBKHj#+$C;ZUbw4eV?sA{lo+n~&H+E}F;IST)UJFFtF80F2%hlVM8RuaWA1gBkFJ zcnBzbN=BHF^cxTvf=HC@js9UIP=clZnaBoOHM<11O%7tQG)U8@uO*Q7zRPj$nWj*ps;U ziDDwzJ~?!B)2CBEk`p~J(gZF}nik7Nfp-a{Y(UK*@VJ54b4&O0HIS0*`b z#|M1PaH)g$aldDdEMD)IXII zXPxPXBSHbMa5pUzS-{sxffKu?9kw84icde1Km4879!WL;G%-w{Y0QQ`J4pg875cvZ zX-SfbPXve!gIJR4`ud4x{S-B!2{m-x#wVOpYn{~au!}t1jO)uYhyeSL1z20ni1D_7 zrE&tQzyvp?_}Fk`88|mak=q-F#1P`(6D{*@DEB)JOupX4L|M0PUE3nCJFO?dH+>Mk zt|nj`6Iv|e4JNKtM)1eFepG;wf~~NM#gb36GTjND*~Qg)qVnquv&35SHMS&u3bx8AsHY*2vnOgTMVH3J5ru*-6s&gs6`;Jp+ygqm zLxRVxxKN|`xPkoW+mcNNG%}VK#ZJ~=V&@cwZ`GJxzM18*@Z{H5_&=-HAqcFxH|9yW zfOkm8#5lps6z`H2co)N~^I9*%)_2`50pkpo9o6yv`U3d6DQiWEz%P5lMNx|e2xQ86N|av6`5dpL#nu>AKX3S`C}0j`0Ti;4(BQe{CFvC~+R z5Zh?2pcq+UD-Jb8UbJ#fv@nRBGbN2n$!HWJdlCj>GvW$LBXCNTiH70xm?ONKVUt>c zPzc}{=hJvuYyrb7LYOIzZerA>92u@p^1lxqH2PzPHIfa^_ATGC%rPgLp03c=@vY#+ zjl}bZgBQZ_s}f8c(6D8=I#9fPM3YMtKcdROv=@>iuFc;thh3_RO&T5+LF$#oRE|h_ zW0Ic>VU|)t6eeOM@+;-SmkoblWc8go#WCb_fi-&%$+q^A>{p&(p4Po-^|dW_Axp;> zHmv`yWXgZn6rc+CE4B@XuryP@=RHiqqCqunGhtJ0&W|E?Pm!H^ws z>bIKwNeTPC%!R4gU+r09`~GSTl_cj*ao8k4XI|7H(70nhop2-Bq~ZYIBpGDxl{Je+ zX#4NuwpaZjp;KTeSU?n1M3*tX~*|<;(n+zw82~+xl z`JrT5{s6;~+ra#wmV3_Tol~oDxDE`VCj|3r-3l}KiI4Lhr=}j#poK1((sy82Idsbh z3>2`D`S8j;{RzdH3_*^;nlX41Lx54XU%h`>b%8^+2J(C8+a(mEu>74E7A z(H8W3VXQ~P)g}lZLI#`ONA@D?YV9l^SwX_7`AB3&GC~LTe=&9zUQz#RyB-+O8M>rP zkVd*o5J4JLN?JrZMWl1+?(XjH7`nT=yFjQh9u`<`6u{0;M2YrgAxuKT_l^GW4E zqYsf|oZ#qic^)R=>Ry!c;GSBSK^NnmaLu}AYnmOLN^9b#I4lSA=3erF?>ji3zQ5p* z@(vzXLH~THL&mZrYsA8R--H$w<42!n??da8pl=IT2pb0rUU_^^3tm`Z{ zvl;c}Vf}8ev@LOOiySsc0^HJD+u@-MYCs#CD7I2jb6GTnTy#sBW;qpf)h~?+XjD}! z<(EjIQ5B-gHD}x#gG1SvX%_rCtR=;WCIG%jh_nGp4Mum2oLb=;+Fy{*>OX6XPt50L zbjKobhnHnY1NllOQ=8Bl6VcWh^APTOM*!oudPo=B5t8!g$jimu;mSp%{@qIX7~0dS z!{}tfe!tavNWPUe|CWl@Zw%R(F5npEcc5pcp2?@0d1RE{O^k8V!UCHmNus&@^m^Ok z7@1QKVtt_gol{BR|28}J)9Wc@%rh&+W7w335Pfe)#OQvV8rl3tPEUVZs`qqPV^V)m z2*x;JPf?pq&ss^dQq^-)wC)#1+U(YAj>&=&?(CneE}PJ+i+AUltULX3V+_;YQ@wB4 zX$W44ic0Dd_>9Td@Q)rTDsTWqB|JIsrvZr|Ln7fMBm*?Pw_4f*^A|RuY;}>#%M1zA z(_%I!TBUCMwRuwc+&r%6!6lOhCJT@R8d196lG;a zcnygK6Hy0y-w(a#67|X+t=`l_(~*SSaqe4ziC734vOJp13ou7uo8gk0to9m}$i|cP z8r^u=2wUg=*^F+8O%4C7Om#R)GYnKyYZFq_ZS~o#(+u@@jmyEZ+RLUn5?3#VonlAX zf$P|C;b}GUk@g_oiXK$oRQV0%laJA4r5Ufu5ev~U$@^Nyw*6w!X?5@=l2#p?=HpY6 z|1|GxXQIeu8YE56OO>GFHJ}E@*fkXIs6cmJQqgOcvOb5PZVKZ-Fy?{mJ9S;%DWW|s zqTdOGK~zpAVL^+TKR{g%BWf<_&5OIqB0pY3vHZ!gGa7N;wNOmxdtF;EVKSpjmfI1m z?3a@tCVFmQw{HLhr4=2L*qBgbLuB(6aG7SAV}*}2TV@N!4s+E>n~$ZPDl0$H9gd|6 ztBp`iVq|@(u*@JQuz?;-{(+&6knY8h9B(N6m@g&Uy;TrsmTHeWIT{f>hMt^|pPq@F zM)Zqj^Pb$Mo{sCBV0`+lDe7(>z3__*0@T&K6FfsqYXw`KAuFD}JUs)!&d^|IsF>#{ ztmpXe&Vi>K2*s!5u=5Ga*H#%bmj>Rhwu-c2@K(GFy0i;Zm9m8S3$}M6zj{y40Gkb| zxDGK#L+o2ISVs+%a8|k_4*Mg7xd49J8Y#V`T)mX7;!h)|OcZqtNmi6CP*h91;taXc zEV~lzz0y6s(tCF;OC;ni&vHX~d8agJFQZT*G`@^+Ga*c9F}mY;ySp}Guh4pfXfX9S za&47HwTOD_go*A=0lP7CyKOvU`g5!4yQcE^iYua(UJ0)=`W@uM7mN5)^Cb7X=+V2h z)4SNRy9~wqEZw_=u={ky`_pKn6=SYZ(uYytO{L;P)vC#;`5%|ohvu+X{#eX^JTC(= zWID^VdddWnaD!CUAN$-Nj|`8xFrP+rA7$l1nuQ|vU2Y-qAHOz%ME9TK&YqUvJ-2^& zer<8aV(c^cPW`Y|_<;3knDyxB9jrwccAZAhc#83f6=wwrqy+#-L;f#@4@4V~6p-Sd z=9l4{l^B?loL87ylu(jcmR(U=npRsGk)Iz_mz&U7U(irh-QCmM_peMQ?4MBP|3Yk6 zn=0#)wmS-Tw)PHoPYzFW4=#@O({KJ2T z`U-uvASk`gQapA{j31?VAgOd^c7N1gVhdM%{yURtC~0}H#Lry`$t36$$KuNg-n;-o_ z>~zqCUcZ**0U&W`&1WMX)|NUV0tyvm$`F`tU zz9Hx)H9=_WY$vNocNE(4aC5dfnD!rHyE@w1`mYwfe~7K;f4AtNg!-*`uS%b3XH|IK^jjR5-Ge-YcgjUcuj`psaj8RN~6e~9hBcTcv$Kj7b``q1dp zWkyOH&b^7Gmh8`tR`?9wj#gJS*^1Try}upz53v0^dt&@wnM~^*hTY^}aKpz%&9uNM z)kS~K$nWcO!&a&rKFVH-KP?QtR2|H7u$L7s$+!>SJu%(Si8uTk%KUw>4-aKB>_z!v z2o%QTL^|yic;*J0{?6!OJS?uBF+D7)-}y^yuMZB(+Fmdnm3QHr9aS(?%Ip=E)(#w1 zJ z{o)ZW7Xu7gTG0bM^)g=$i{EHnj*7gLznqZd47nVa z;eC5Gsqhgde>J6QH2h~;%MAT;Mu!gldQLa)ZSA~Llw&y1cblOf74EiTjYe*^lg%)0cT(vv z?)TE-SQ_`kqulNfDCgX`J$8c z)aB0@h1L0=3EN2fY?prx;#9so8<#8>K~;-uxC$Xe+@8bUD;ZMYXf^%@YDPYhij zW(`5x(nFSr7sK%?htNKzqX_qP;MKBuvwir6_K~j>XXebCD>?(iwojbo#2SkbNfgV^ zSnM@^g#Q~ZeVhn?K^mTj06&k+*V&*hY7LtJH5YyStom+--xY!CXj%B(eG(i_+ytQ+b)!B)Rgrd>1`Q1r>!;gxW#!Kgj>mM>ypvFrf^yAF?Yxw+0gv|}* z@)R+E{LnI!`~kbKyG%eo-EaXbAMylx8%BQC{z=~F$`jbU8*%ilO1&7O6SWHE_(AaVi6?hK`SpaXj!d+|?PTm*g!R5B+(WMUDAJp zBQLXQ+P{1~S)ajxLUP8WW@DpVb2R26F+{%iO&$nNsvzMgRky-GDu`S5kNaHcl*s>C>i zNpM{Np2>_VwXZq+didAyu`6>!XV!aZHq%l0s?1xsSO@)ZrknA)ELZ|&Za}uE-Y243 z9#v!hgWY+)%W|eF^4Q#v|6zXIE4DJ@ZHcj3(ZWpbbxnRqiQzXv&H2dK+Pa!!6SKj^ zrR(2yP;?e+KeL66O8mMm;ZnyrT6-dD^^-N0b`{RcTb8p;6UUan z8y=R=z2X|z-@VasLiFVXZ6QR~}4 zBIRDdAw3{3UpuBwIfM@F8;Wdw2O+fFmwMKt$p!zO)k%~a^A${CB zzHU~XiXbDj?|&a2AG9L$`_Oli8@}FmD-~gWXa-cM4SiA~m60&WkO4I>f4`zmWmF#8 zkH4=;9a~f!Xq;(<+LhZ1A88Xb z&9*7jmdD7O8mc3w zE)tP*KQ*BZywUn@?$GlP=jKgHzngXm44X*Zr7hBrcfBg)Ki#Sxw^_pO`hMvAOiWwa zVd%XZuv@uEcxc{v*XlTCD{`4a(6TFP#8(_Qa+!;2HdXXoU6|*#udF6~kUAnTRlssp zWUGCciP1FOr0}~uZ23riwQ+V<2VMxMePrVIFuNRj-7uJPY}YHeeB*XgmzHwse(JpP zME=+CX;6S?G6`S>Z=LVXzn=WudVPA^uL-?~k8{~!D7zbh4^_wAxa^6w-i;?gFY^gp z52VZPXR4mB^6XuYzO~-ZFG8>D<6KWn${to=f1YpZjGE8<6kX&Ipl5w`59={$E-k3f zw?kpjKXLD#c5rp>XUjycUyi!&nZX|BG2L&{6x|MjRv&g*Td#Vp+^)+go=#Rp9(T*! z-V?x{Z%12`9Wef6-Mrg>|I*_FormN{4=Dl<5T6HF-2>IZ1Lf8O4djVI=!wVYiGS;k z?(d0{@A<0Flc3L?a?ky>u?M-j7j?WRUA-s6oF~(*C)KUjn>jC95QJU|!e|U(_J^<# zLImK3&n<)-RA2EK} z>VdhpREAQ11@S(`^?{}8zUBVDg@i$-bAi>jzP0p04eCK<`9bg&y*hfoCjX#Tso-|L zAgDudCtUOa`Q+UOj}eA|sUTBxkZCDzK|=2ZKJP_!@8$TACBo1Z`cQZ*b4NXNZx6DX zAG*~Sy1N&;?+|iGA9gGic4{1UZX9y&A96MqcDon$z!!$_H4Nw&hMW-gcpHYoA3iY` zj&T=$KOWo%3hq~rz;lE}^cY7F1w;(x2jesZ<2FQ4%|{SRN0Jgn((*^rH$+m-M^fBH zk`qPI^hahQNANgC@$HlTRhjCeGUuX1`=j39MTzf6NfJeWNQnLjAFFQom*3ML{rN8X z%YL*fQH*jzj9P;~|9p(jT}%%`6z6^!2O;r$5fSo)J?eD(~x>%k_z99J}pRv`#qPAY3BiHf8cUYL)r;A6+oPh zh=M;$qu8uRI6g%%=ADjKNC*x@MLkGIC(ghtOvgvbAUHsM75I0bgNPB0lkg;!Hl%EdGJ4cf?tOjM<_GS&{|Unq#;NqNvFvuC>@cwmrcsW7TK?<=FV8E7&z>MYl!6Y+u~92fnP3&KWGhgT zD$s)}NMy^2%_=AcD<~H$Fb^x<2v*PvRx&bGG9Q)(?i8lMiLGGOIHf$7a~0oV0TWLk z|6-NMLzO5=^?Sjpfgi*fQ3Cm2_zNM`#aY$TLHzI?XL-~b#YO&4vNd1KYE+!7KMz*x zz%!XaHM&f--->F!4%QeX)fx)cnrYS=FV>nq)c$m?vDU1!ZL0a@TxXP2=Mq%s)>P*{ zSnI@8?}}RQD_ie*SnCs1@26SYr&lFT(h&I&o+!`|>)a5Z)R5TJpg^Y+KG={>(l~zG zkg3_2OJXPpPb@YyYWKgp%6eCJ*m#TEv`yVqF4$D>+|+2+)U4SA6@wcRDPVQaPHp|#;02?hR!o<6iwF3FLTcD&K*cp245o7};8q(b!A zMzYj_>(Wjf+|F^-!S&d|P1?!V+{wGt$@$pHgVrT*)G4ObCC=Q1Kh!CO)+sI5_0hab zzPXE^wA;|ITC=J{J-Hj5vqNL4TW9I*(L=YsP)|c=m!VL%Q8BDbDY-{Mu3Pc3$C9+y zoVnW+truQAW}Mt>$K30*)MIbn>nhjlM%o82v2!QwC6nt3Z0<)hH3m0OdC+&~c z>Ic~N#mn`1nD-?P^(H^|L(m4iga&*_2Xf^Gl3WIIf(KHI2MUG;5|{^yga*sx220Qe zzdRbM7IVff4MLllLLUb^gof;Kdb(VO`ikFH91YZ&4-N(oR%#7SEDcRQ4vj4J&u9(L zH4l%=4X-2*uMQ0lp^a=YkBkY8OhoqeH;){VGPN&_oRN-dar9qkjb0xyY%dMp1&`dD zkIXKO0)|HsT}P0fMu8S%$R)!FDP!x+W1y!o6xT8AVc6J1a91NU^d@^~q)o z&}R%=rhkOY7@_wP4D%~J%~-oqN|DX}(w^p~&fVky~t^xMT6;l(1?#YXhS`WBdB(-CJj*-}ReNwV-#kL!|&=WJig z(ohR&%hOWR^1}Gj!o=|6r2OJc%JOu}^3?M3-0<@1@p41S@_ zlM>vFrKc;Un%~5Xs`x4v z`MP%d3XaY?{xkZ3>pC%X-SXQS@MIkYV*~Yh9VD{xT4#eQb%P$dfnd48Qo8XLV>4*2 zfmCOcN8uHo+ok|?vlMGp=y_Ar5|?9S4S8fkf_zg_VM|6~LrSE%o*G-$ZA0E|OPPF| zHFZl)XZ!hZO^tMm5{RdCvRxawsjsu6p9)(yOx-aJ#Su^4R$bZoT)J)ZyrV9%YfOe6 zdbUOSdRI+k``5{?CHdZOkv&%t`rVeDs!1@~CuG1H68x4R&ju1&+taj8_kX50aNB>x zkq;ID`GkWabU@NdKrm8Oq6n>s+W{rDS&Rs>-xw0t*&YC}?~An$5Irb-X0X=Tb067l zdOoxpIrL&Vx}F4!oFQ?KA%((Mwk!`JqR0R?WU00z-!&w~GlDjZJ@3?GDEZOS%Av>b zc60I}@H=s}C5T4}SvVXNjDgHueiTA}syT+7bGEj{LYv@rx`l(HfVDsQjHIcAtaXO1 zDyj>=^rwh`q}Gt60mt{xG{(=cGmOoHRvA%I1U#f_(RxdekkUSm6~n5?(d*XZ6`hL( zg(LdaMYT0hiXL#1<+PM|2N@Hfg0(-ea)x4aL7jF%yLv3J`e#k#$nW{QqUR!9^gQC^ zOhOMViwRIHKav+k*7U&pkVbo_bJatI&4YQG%?L_rQ_W~YRv0@)Q$$l&q%Lr~KE~OJ zpyZHjLzYz(txz~NwVDuRy|7ojc-ML(vU(#{b~9OZ(Znb(!gee#dOq0*lD`B$VE|Yu z!GaWbj-!8EU^mgHH?_u)~Tj zQuofm>dC|EZaVC4-fA9xkPTnC9XQ#q!2nEJB7;p2BEkzXPLaTv;Kj11C<@r@=u;dk zY?kwKQju8_0MZ6PyaDn)3J^a4m!CX0Kmy|B6B8RN83$2?1bmUuf+WPpWyR$Bk+h;qc2Np(`CRV2A zX682*x0iQU_t&?MH&1s?&d>HPt}YL*?{1GC6Jd$;2>(yT7WTh7wgzHi(N26nCk$k0 z;(YZ*z!Ltrok~0ipv?IKX{snu2nv}@b^dskR1~B3Ky|@nhENtxqyRnMXx@K9ng2Mp zJjMh}?+6g`H-H|POcrK*-=sJ56h1}IcuvxSMKfuI2T;i6>dV(V{oyToF3NhZd%Y6U7QJVt~*_6 z`~C<2ImzK{v@V3{qe!x&&2FzEYaE8Fz|p~6fmth5*zxztT8q7v$g|_!-gw8n z47n6q`_ivioS1lp6I*PUx+B$_rr`fLww@pqhiT=wGlM7{uq6GuH=gR>P$r{Px314) z_~bh)JA*G&TuXT&I`jvVqe9FplN%zerF$E}Y!md~L-^6%uBLy?-{| z3>PI%ppN{=*pL+^#{!475~|W$F+^8!>;FY;Y2QB#Z{q?`SL{??8S7U^C7NL)uEqZ) zwkZxf0fZ_Rs@>^nPA?eu(!KFb_cC5`zwcxWEtnu+qkl#4Nz?AmXYb#@_Wfmw!|~Ub z2l)pP1E~dj8H}a{#i=8^ z#f1Zf_ZjG>5wVkgY9#6kW;XghYv~ z&1;qT0@6wN?#b0Op5&rg)!5ILt14Z4^y@O6DB<7bKeAkZSLoM~T`w9ok?}5>4r=o* zn{Sp}ExD{N+poB*%F;3Yfjv_(pFXqVW%OXn9TX*I9x`CjJq_~yX_F4jI? zj#{}dTy46;79JK;-ofrsDFH9{TA%mjJ&-@FA%N>eRh}TI3nVf)h2c@4%2O}Gp*8)H zZn1siznRR}XUY-&SSnlgFZ+@1G1k3_l`~L77RXKv=mm%)M||swz8(MSYa$=9_Txp; z$AIjKlRuaHe-O&V3F-S_8ZYOq6r71yfM4)lDFcT6#iL`hvQDDtaX$!5BykxD;3QPA z2sD<6$Dj5ZD z(aYs20S{ZEuqQ1&=JG}mD*W{NlMHX9Wt)Z9?*$@rNZm@~4}I$uI#7}40N)EpFagw=TNv7$bAu*j3Lf@`8kLVP^;vlbo(U^018G&86WUz<_J%Y zN8Cwn7|#`$cG9fQdzmIPU1(VSE~s2gIOOb$j1iEWC_cA~V;)5sf3_KT1{W!7}OaDeg8K3mMZV{=t%LxWzQQuzh)o3<^!mBqg>xcRtmFm4O-e{tZNu@E&Ua>$SC&sgC*Eb4yqJiHm~Yc zyi!9cX5N9EB7vFTBwyx47d`mv_`>!O9?B%hLt#Ox1{b{jDy}06n(N>xhR4=$Lu5b{ zLY^P?aQzu>?`InY>dP=K*}UnP*HK>Lm;bD>_GKmghVf;tli1KgVpnzp2N>p}B9)VK zQIn3(d)@tli18Y2Lq8weD_DZNBGmpUW=vnPSqP&tJcAKcj2z;Ez%S*&Y5hLslD$S@ z&6LbfZkv(9zg}I((k7#6dtV@~Q5VDZSG$lQyM4lt5sz(bL$l$&Kz4v~DU>ZimG_nqGWuP4vOt{_P^=o~^x@~J*^a>r` zA(I!7+sTxbYPdeP{wYagDxbx!P*Cn*4t-_}9?H!4j6*@k_M1{7gn0yQ0w6|bQ2mjt z%QYok;w#C+9QrvsfoJfMp`hmbXwhFvpT5sjT_6=lA)C1)Gpj#|JS?ugkWLyGvg9^v zSo)!0pEw-?&tx_&pNZ5p&kI?xhTXl}+y=SdNRP8*J79HV)U~yf?Xil`rvMe}J34V> zM|ceIqOMA_V45aAAaC0GC+i|^H&Yeopx=M|N#2uEbW$DZ07@!lyp>W_VLN!WXc>?8 zNhQw)vOs)AL4d8$PBu)3y zR(+sQqm&<;9=Phrt6SrYjb0}hbqE1{_(WE4D zLNDSlvE$>VE>MWBq60=B52E6ajjfy)R-sSz{{ptH3*DoxXJN3%ZMxPQR0J29wK;b8 zI_8h`<30_9u*v&d7|q7G-I?wd3?`%IEKm1Kzg;DkokD}dsgS^lM9m4k-UB1w1C#G> zA~Wx!CxNji;ml9KoM%rju3ww}X^j~)*112=jAqWZ>Dn+Q-GThp%f#Cy;3b61*o8<< z9K_ehb+67%4CKAf>uvqf`@OoiOuV<8zqf*ew-Siorw#J${IwXbl1RLd zakcwFCOngA7u05+I7v&Q@6LtbsvGZXg6D2J=llKz5lgw^XLb!*b-%b8XNP=eCwj(- z9V9{;ILP%6poZAf`}-Q3N4y8$ZX?llc_<-rzIpHA2hU_)dM_IV?9_S3=es2td&d#_ zB+S9Q)B6Il_5xx6E*_a*48*`{O2|CrU-{d8qxpiQJAF=(UsuNmsdkgj`~b<%`fGct zzm2yW+4O3J<67z!c%s(m-6$8cX2lMgC{a8+i3&4gIDtTyg~k}e4&al z{%`p#bYEl9{uJ4o3sss5NK_9zzYVw~3_PO`ypjsMGY-5r4!h{{uE+<+Lwu%Y34O2# z<0t8AcSF${IBNNf(TO7DeN=bV71`bpy)afF+@}mf#C3QRLCMcQKp6SvPHd9bl`F!8 z{oG9h8-+Vv{oU(O8vZBrGHTpx2g7o#^Hrr#fC&>zD9LWA#ne@1q3`VA_i zm(@y_m__6q`i`rrhy2qd&f#lZQhA*HeB9?gD=#8z=`qlSC#@2|&hu+bup@80B? zf}LN})LyGw<7tn_DI|Bcx0Ca2uIwcam=uZtzhk-?uI2-y? z?uqC%h+==-#e6r3g@-Z`P||^kF`$DOqg(3 z&J64;cp?+Ium1}n4e?z=8a*R^m`Mu5LZ(=iUJNC?W(ASxEG1kiIOCH|RTnLxN~W+< zW~>@mQ~)c><14-qR@h#qOk$|)LbfWWa`+f<1q|S(%rX36+b)eoFiZDNAjCdjLI*E* z=ueXEUXB}8oWQIG)n2waF+LANlm&5K@&vNh7(P^5`Q3dMQ2|(ER;6_kc{%}G#REl& zP1!Iv8!Q+h| zUn1m-PgllLf|YmOF?e%+$DtLsfggV$^O#kB81$5IuBLN_fj!kePQR$+L`|aag6CpO zqC{&@BdVlitF01iw3-MJUgnXs7s1ZHd|o7x)T==suhMR+E#)e|(BxIiUY7`O`??Eha8LwYNHC>)^F&Tvb8+-@}acGc^xnOD4fNV@s z!#7PV_N4dyqTrtlj>i6S#wT8= z@u1|&NzPle%xA1&5e3jC+hk)}+Sk-9o)M|%OvK|^gJaW-H{OVkfLwXoJmg$$YgX>G z*kW_o;wT8+(1fl#Lmh$)VO&`Hi*d&Sg`kS^6en1e6m7Doq*2&mVVynr)QlvfrgfvS zC5peYm8tE8oL+tg(v&6^RS&pUlPF6wiC8Rx^{^^cPy`79{Pf8Ls$u>rI2&Z&*2vIA z72I5`SJH%%RLg|T7=Xp}SdU7IUDOEOQ*Ucbw11=7q1;d-u+%9@)51?$MmgR=ao)k9 zg(Z2^`4SDf9|T2`g(?hnDVjs&wYt9?b@9rPxO`5r^Q-S%uh^5Q(GyBV`i8`+m;H*Q z4a#HRC`h7#49KVVeO4A5W#W@r@{L2)wGXbwGAFiA1b-q(7+42NFBN(4Mps~=d9^j+ zd=e-fBr%rh2}Dz7m(#4R>^+w1h$pRlyn?;Qe_d~sQ2QMfzy_d0`PAo<*u)Urj(Cn} znnc5E(wXEEJRmqIzzh;m8koE9mn?_>FGh+ddEhUhurjrecA>R?Y2=avdB4O`(rXEO zV8u2YtYGY(F|SiH@1A{ZnUm{QD;|b{Dl^7f4}Y?JN8|R)Fb*HI3f3gHW$>9is0KB? zVqqw2w8?k-2qG_PF_0U+{n++&G`bl`nqGuJKuWE0hM+P4-(CRnP>v3Y6H7u+KKhY_ zBjj;*qWG&}pv30%bD?H=3?OPpCJId`Bz`P^B!>XNENwt-QXKMOFa{d}CPEjrv90u{ z{IdtF4ugrozD|+h8pPM%v4%TVrD1;;?}^y*e*~$z(&%0>C}D0@ciSjNwp836}>f z8&YNQZUcxY5;XYTa-qbNAa)}f7RDJMk#Zt292bKUA!3-=n^Z-Dthl>^GNyROG``pC zXr5t!B8|PeB@0}t4&+`K6Aq6h@>Gm2w?g$2p{k{D(?{mtHK?~iWG^cDE?*LKhe?N3 zO1fB5{Boi*_zh|ga_rZ_%#dK3r=>RqZ&OOJ)%0+MX>wE+fMvxBpa5-n zjskHT9WbW~j*79x#PWkp!|cOzBbR(T0cU`fR|BYGOT_J?6D2M+kE<2~$c~NSOv1&a z>um|Xtmz(WcZ`fybDkAe+T{sP+@lxE1iy2^S8vz7$67N08$N9ozXIQjUzNTp zlBiTS@zMi|F|7qN%&wWwTF7r&$67BFcN`^Mvh(Fe1!{^f+jH8dW4D_JG2DM zrj$n)z5;KNq#KiYI&9Az-|`n4g{l%A574RLRZ)`IY3~uEk}h+wm;pj|Oin_ywo}&l zLEHz}uE}lF%TAAPI)lxZ>f2~#!cjttN|w;8C|TBdl=8a`CtpNN_mZ_`loUl3S6NuP znv3j{#=L12I!F8>1C*yb zAt>sho~!p}>l~Q;gjunRPzHXiIY?AGMl_5ITi&8T9QOKt2B5$*-&oy$Hcuz(AbJ;o zqz&r6#vgv-NDakqwb&7D*TAhAcM$dR?qO&-Lst(;7hXh;2JG_u)tXya)YmkFy^*(m z%CCfv@oQ)CThJOD2(sJ4X%i^H31fr7tZ1H}rU7{xnx(kWtZ30;Li;YPO=dXUV;x3h zx0L%QLL#Sv7^kJDnfLlWqfrqD_480nX*x^suAD+KhjY`^uofpE4 z%%G1|>bo81b-n4AAwtAF=_szJm3W`V9gdsq&j;g_lwE~CbT}3>n+oQk=0|yw7Mwm- z#=_w4#^uY^(pC(-=|DUhci?}pFEi`Ec2B&uAZ1<^ zfU276lK;IFAvpvh+y@AOPoI>j3;-k{v%d2_i{7)Ve#>*4UK`u0+gmg1N7*~!(=Dgt z|5GVK;W;503cY`Nl_vGFWpR+Nfq5_nt-hn+CdckSca4$v3BAV&6gZ`dl5TgZUb(J zcj2S?S9CI%S`oR?t4e(!AR6)|NA=Z~ih*cxK=9{|1=al56-fsj97$4Ey;Vjw-Qu&I zF9@1TpBetMdmLSYGR5+|HD(^AX{;D^jHiY`__J?BZJ=bTTh@}R;bP)i( z5+v{ko9XcHQ1wCd*a>%9)s(8)aZNWpbzVuIdd3lJs2eI3BwQl!_^)DX8KJ4spVcJV zF?iCXSgXm}a=jCD3O!$0EQ7)>1g+YTFwJ4*krz})r|q(|8{%J;9AenwLaVt^eT@~E zExWZ1IV>0|ZmktHLsP$k@I<1EQBr)Y$C334z}4rCT(jo3#xdJR+X6$&e~B$7BSCI* ztd}8I0=YpRb!H^7^rVojIM<{^9aY|^d8x-=<4W&vSRmSj8FD^iaTeF}5yQdP3+8pg z+G=}qdMmvhT*e3NV@Fc~ef5uw8r-bL@fKneFH4w%$r^=StorqcrLxiyUC$D$@>qu9o=6Y zAwx61yo-|QR@6&CE(6QYfvyKUh%fdg6DMx2_Kn6K#j;Wdw_ZGmE|ALVdF}l`eGV4m z@62ClR3y0Y*%L!DE2nzFtkdwg9v*?y5OZ&8;_dn#{+{#D-$UQYZs>)$Yd=6-5dqwQ zfRDcWIiJgIsKW}4uz#8`$iwc8gH%bWYeQ?0$wC~uzy6YtLh>weX8)r{^if*oX{hXn z;GrG^yhTsQqBFw#OpFxEsmHUkl7;>+~ZbLw-vf?g4h=rGirEO8p*@%IW-nXfF2 zC0`egg^FBeg76YnJ8nSuhUPdmKZ6pnzCj4uCMcQZ-bj373_o|Qh$;eQ=o@;5p6?G> zdZ`mD2#ZY~y_%*0$-@di3-{#au2>W(g_t5!&;(KKT~d3F=gEoN=f_E+Ck4q!$%w1e z6!0r~b{-8PrhIKf$0<(}cGd%`fWbu?uRK2w7wK>!%)qPj%HqZ{SLbHczUwh79!+&C zUD-es+c=0-*uG#oDM84Y@yp@iOd+Nl6eh##s`OQShG+xv+sGk<;F$Z3% z#J=FR7DMM_-lR>lt_rcOjMf&?UqoC}`(P*$8}w;RpQvy!qWm>Su%5wU;tVrhYGop} zlh#_}U7fY1ZE{l6(lPYwh(m6b&6Uftu$4)Lb^jZIjCBr;8OMmv0(fcmc&O}{WjH3P z#iCW}4PBoRqr2lL445>-8$pi4=`RvpM;AAhlJ33retX1N_ zi6_^oDBVSY5o>Nt#!-xv(M10k{6ey5t|?Mmxtxm@fuPKhrXx3JzP6_-B-powj1SOC zJo_T}#jcpGC6bmH2mgLWH3O$vWt1oRQ$@{OXfP zbsF-@uGgyLIE?nT9U=6rKrWz@hm^RpE;?}}Q7##mpkGmt_I%b0WyxDT!@%%U5sSLO zxVM8n8=}4sQyX*6{7T)>6_+W%g0Yly^lsGur^=%Dhq;1$C4pD);zM03J`9ZCrQ&FS zf#Z9ELOdeQ!~(r4MzY=5z8}&Q1%FDvqi*S7Hl>0t#0|SLcfzDO=Nu7ydP$5oM| zz6}S|!$?$*90>3l$l`9GWg#=^CN;l$78qO(5&Kf^=$hCou0Jj5VV~1CuF|CydSE_Y zyinxZAt<#THd?tzv#Q_Ygx-Bjo7Lo%p-RWLjQWBi(wwDuN{zi#9@Kv5I!Q&H>1l(rQ^+adWftFihL z1@|1okH%eD-7mD=<9EED7BWEHK<8Kd_jCAH&nse8fMaL4OE;BwgqX#&5eIaZ5GUU+ zlAa=2CBTyluGreEO4iCRKkrl-AnIJzyn=vNH#9QR%%4rH0d(O{KhR{KC7xp7b zU0lIOW&i-hyA52)2P@qw!-;L-8OBKb&+?oAhVhW%4iMuPbxn}|#hk0+u5H-2P<&6P znrzbVK%&_-_lkAG%^#i*a@;Z<#51OBt=3*7rhskbP&T_5Z~7*PLrsCxv1v+ zC~8Db&6=oDdiRetK~nuT^$?KvO?WX|q-ft~xodbIzce~R6wP)tyGi)EzwYPy7`;1^ zkAM6()L3k6ATwD0Q?Dh-dck^qW~(2=tR1l~3BsCwfnk?=HVxq4`@T;6u&~W?4|l>? z?|mB|$9UbXU(>YY>I`Ta{3s<-m@MA|C)@pDlkw?i7XEh;Bqo+gcM0*7W~-g?w{(;d zAcouU$e=m@sI&OXvAA@iq<8&MRnpPC;AoMA==!fob<#m&+vQAs4$y%$#FWgu+u$dgU?9s2pb-9`zBrG9 z^F<)7%|C7ZH$q}Siiypu#E3PI?*gh;D_QzC?1V^&$X{miF73W*|9 zwgD~retqA=-TtUo$qsfHNVH-MK-Vag?=kTTM{wb@U&5wgiTcdyP}mcm-W;BLAx0tu z0N9%5W{)Eat9>m^2+h|h&bQ9!5eSu(1o_DnvA@w(MV5Wr2z%`aNubfdoMp=kH`UC( zb;bkX3$SAuV5Q1TX|0E8%IZTt0~u}Gu4fla3R@boddWPUj>J~5@$I8mArU-ebI zh>()LQBOVqg-F=C`t%BEIT7?nT02V&|20!3K)q7^fzXRSIA*dYChjNBmiRc0F5YYZ zH^{Y+yAK~<0B|T#QRm-tY|=1i)u!%)TWje)G@4Y~!AiuX3-8WQ5;eZc_|iGBmufER z_XXAmXi^TW6?&LuMjW^kFXnjIXL^+b-=`y2uSsbH#j$AqrDo;nnYV1n@57NZyHLV| z&|ab1iCoemM4)R_Ag3IvM2+X)Z<~?x)~CI574{W7zsD5v6*nd0@R@QY-yi$@DUEO5j3LsI&oIk3TjT z_0#lbQRG*`2@+YCJ>F=Dbh;XaTVB{QspH;5CGtBL%>Z2 zQeh#9hsUOxdE_v}GD(n7vw`sBKxC9iAIf3KtbuLw`py6|AhBMy(|t^l5>hQHfHWLr zSR}V5Rjkli)fApDT3k&yo(~X3er*mS4@b6#YhdNRFTKsKuWe<%+dV3SqQ8r@EVeC1 zcWV@5hN1xA!&m?;cvlhv?-Eq04f(mL_HNzM*Ql;4qtXit2v9>-{a)tAA9vH>q&4EX$16J+b)A4A}$1T6&h0@7Oy1?e^CK$?_DKGq1F@bTX^U^WxbdksM? z2ot{#eIPx}jv6H3(Obq03}1jXbBcDnw^qy4D}rM2MP?w2QG&{ZK;v2<>_?t_kKx-p zntXG=HdD$ ziw#Mo9GSZqNFv(N%2Aw{&WzycVsw~2xu+T6nSC8RN{ThnVcw*Ih5Czmf{blEP!hr< zuYe+G7C}_+>=~;H7^)I#H(&;7h$4w$4UQHA2~mlplv|S8>{aJ2uLml8%E$NRbSVdW zCl100lM2DG3dvrd$f#)mIMoK4x^Gh^5_KxK~u%6iB#$?lvZHq?vA0myL9MAK)R%)Q9uk3oXh{#y7%S0o`-YRS!eCv-rr|hI4)A~i3v%j z(`v1R0M5>!iO-U|5O;7E5YB9u>T{1d(r#yqJw2$;!vjEPJccQA`jVNKkxm=Bo!vJB zjCk@G`m#G;E~YQ^EDrZe*cE1m>w6=!=rgFnJ;5uv+g}PW{8?!xcRu%B%MK4&43b;v zN2XKRjmaQqrmXOmvj+%kV#2zbQB!c(I`?OMOF8jDuC4IUp^A{~&lX>V8sWf@e$j7p zH(dSV1fSN|NKJi*okALBa%K#XnDU5eTB~uuE*f!R7)c>x|FQ5hH1dduXCj<4=Cl~l zneqN{OiHO~M(OEx?xq0`H74S(#QRX{X*^oKqiyqP@H)*ioW+ZvS5N=vvDdEn8>G}@ zc(NhG+gnmrZsYLx00VmZESi99?^4Iu zkj^CF3ggmjPyyLvHNc5q;%jMba`Jp+E8uGe+A(s z%;Empx+X)O&MrVH&R8+7kKQyK1yS^1w{oKselK;1eX1zSeo8~VTOt33Z=F8#;18K; zyA)4A)X9+7l43Y=gF(Y6!aQ;V{;7&~D zPNqfP{oOEW=(vg{jb#w!KTfTPtJzDl-xDd3ha%(_0Q?p%P@op{U%Yc_>*prT@3RAc z(hw1&CU@I~Ak&hsB3$TF&Erf{cU^!w`fKpb*K3}ln-|IznCD;nzDNtp0{xPH-B1T- zN1T|Z3>GDgf2HyYkplZ$Ta*nhap3JIypVtS`tNCSnC1&m!^bb_hricOTFW;#Xm^({ zKK>0x1Hqmuw*P5QB9$$oEEJ!<-vC-c>8GM?LX>iBA;3^3`z5VFqyoSquezwdAu*<) zv9+ze1E6S%iVz1>MAmjj<&@9~0>o44s%z>JMCy?93(+6zTk@ONqF3T#YL@^KV{i(g zVj085CPZm;@~1DS*NZDTH-($9n)_+^<}VcBFDa1^H)0SDBIfviF}5~B{$&5RVv9C( zFgR_@0x&qk-(QTan0^^E&;K+MjL*`e#hRR$95qultHl^FR-FaU%8_YXy0E5`O5`ON z-|RzbjGs9~ls}8uzgT~1`T)2>ln9-dlyOSZhM2HTC(+P)6x6qJu`wpRYC3y7ONU|C z!c|RA!?j%*ha=`!B6@1T%Z|B z(n~!9zd+<(Jm1pvzqWI_+KdFPUdkPlvD;=21hN6X2D0{D%T^IER(U2ZIlZrp=5A=(*xxQgPs*EFt5QTQJoXguWsGeU z!Yq|Rghtg|z2rsE{{=<3H!Vk+Vu$(+-@9D2OguZ!!BqwfI&3rf^5Bz(&P?T1j#TXX}T3D0RiGt@ z;iti;JP^EDGQjS|LK3hmYAuheN0Gg>;R#}G)k@x|nr{nK+a##&qoTf-r2J+)5At)Q@Jq_nnM=D$iymux99GIttaziZV!cPakl&YDbCMu zxin163D(9=*0oW>cXBswPIDO-5F7Hf0#(wH97P9N5xj~!H}e!+azNGyc5^I0?-n&c zat1*Hg~h)Ou+$gBu4RpbmA(Abx>U7x33jKSmx0^u%4130rVKQ_Ep>kiY>(e>l)aFc zIzh=W=>qPa%QE6aLa{UvD1r%D%(EC&C`54=op$Xbw)%WHK1-_pJw_M!hRa>6Eh)WQ zpO`VUmMefVj$uTpmjLU~KNueCBJWQoY{BVXw;OKeQpIeB7a93aPSfO!by#Q_My7SW z!H@)vO~&7MBu-$$Vi)UeLJaGLrw>AC(iwD>-k69zEHdNSGhl?ID%Vt- zl!Qg!2UdTS*tkwg#wDwYig@y#q}tE*AW4S)5c&qx89#auF$Vf^$mBVpKRZ`tF9HI- ztFqdXa;|C4=}6o9Gmzh=ri2ZB1=X4FzWgu=x*XG`X><>SlV(gmA1~eB}MtwW-_U1W8wgu9U%~^1Y7C0@7Jyw^SWg6vJ(jI9}Qf`*#;(ONCy76QoN#t~9${A!=Uw~uw zyINjO8TBt_#=T#5MOpprHTq~d-|VZzWkt9d%Y6k10jy{6ux`#fJzTKC?3BuNH`2%o zN1Po?OGT1Z+e@Usk_$Pdm(K2}MsvXnZJbZnTTr2KiaZXR3XXhx$RN#3;f>Jkf+Pu>%aI;H9% z?EO_BIvN5id{;h7xHQe~A+3OlGTZ=xi!1c8Rm!AqFG~5o8Oea3XS0~YMaCVECT$J* z8vr9!#n;j}zFTe{d-Voa+S7qOpkWi2YR3G%<``C~gu2$Yr)ZeDuuvlF7x=LO&@N5tUd;X=@LurobUY3t$dS>WJPlmN=a2wpvJKNfi@+70000DJ zff|}2&Ib#>B|qbSGQi8d{0wr!4up~CsCHODZqV+lufK-7i_#|fe*Opu{kE{CHzC-- zrc%rtUzIkTZE28zLzZO zf}!-q8pE>&=S;L~^q-?(kH&r8qV{__t!5!A$}WPWB3ad62KMub6JpN4j@|J zv$H*nSkXe;-rz?m-jytz$Xc~g6x7}pbg0K8=7-xZ3fff&KFX&1hfPLEPFV8`Mb&a_ zZ7dd*YlokJ!SiVs9)$#4TN!kEt5%kHGK_=gRjAo1B0C)6f!)!4Bhl}wx#mlNky!65 zMeUs#ZMjB3*2MU{5bzfUnTApFCQgE^rE;4gZSS-%&C6a1D7d7qQu zrR=!gsXO&2;rB2A3;^H)05TI%xGC{#;m@Z-2_pRjDzK>(cLPCx7$2cvyk@v0$aEeF z3bw`BlNVIm4?Z9#d!CXMG0xAI4no{g-d$0NhX!dI;C_T9uBs+3=AhggQ|z9)YgAzg z6`tYqVyPsta1-Nqhbm#`(W$4;-_cE`QrD!?v!^kLr)@_YMIwO|3_wd2+X%5xNk7bU zA$OoB=G!qw>(MZ<8dP^7;zO!pI~Jg)I%>no6vG&#e??~R=`l2BT~P8G-9n z$&td*(agSXCq}L&n?DpzZA~HnhZH%%V04w{oyNIaX%cmnNP3sGyy`JG5#(W#U3zVD z3QO$k&c@00u>sN7`-3<~I2lPvg^^Kx6cB!ltPi?LVuqI8#);36fMvFfJqq>StH`u& zTWf!BkCR*ggKG9E4u>qr#W?e6fZ^i*wslv!C!5n85RAWv%HoAVUY-+Ix|z=e+X}=>VaF44k$L@z0kgJEdo=jSuml7GhvrKB{MFz%Bdbw zINiwthh;H@(e>fruMojL1;q6mY_;;ee~cnn3Eclx=C_)=D}>LMWWBOt&u5laF@$AJb2bZI(HZYp^~ zq=T6{!FV1iF;;-laPApVP*V+OyLbSc9U%cuWLYnJZj$zdL$J7ea#g1)29_)2l^ZZfiiLGGu;O&C$;a)?6fJzxAQ371EwOBPOmCskbwJjoad=U5Htj~CouUxR-TyTM)ewNcDW#2 z@1!~-5Q@71j8OwEuouaSMg6hiYtmEM?}=Kp!sHwmPm1Mk@kp*x%Q!`Xex~T<2ly4M zmFTVIezA#?=S%6_1{74A705!JUY{}Gb3iR*n+v@2 z@u}P27?jgemaDo{shYJbQm3iZwQEhctJfMurr>UyxHQ7rG(EWmaV%*1I3-iGUa+(5 zoYd8)0K#&aRZ1#p<|CLkpNNo2zVbirL!Ih07|WHe-d$ zy5xhp!RR&S@!bj3_*G#16^}@~D+L0FI`o#X5u5H7YkY1nKvE18bO-3R!GGeR)PQ^5 zpTUc%30rD&=}N%e>ZqtLi9TvCv`BdG`#kRvXBISPuEH_s+tMEQbKG~#{ZH^8Je&Rr zS2%*jSHDvQgqhxgM6*;8Ts8sCu4`8);VP6kys2uGVh}56D{P$iBkKX%V|9_~G`#Yp zH$4>A{bh5V7d!K;*s|mUzI?@pvVKpy=IOs5r#hNZI7kdP!?ilc4vxNU0q2KJX!~zO zE2N}h3ZBIo^j=gjk1sisL^=bfmnffr<*fHTiHlVQa;z3{GvD`I*&p8=$@7q);hLs{ z+o7g0tSvb#U_LA!JS-91wO8@9&qMpVLAhX6p~7gMM8ep)SV1aZs3%b?-_zy@CU!B? z`|@W{m8A+Gi>eaoPqp`^D)~iewmyV?-Q2X1RZPt8@G#^?Lme07tG+h&Hx}CXMC#Xx zBI`=#((64j9Ui>iJ*gg0bZ z6bKP0oy>O&N|dehlA5|ypPJAh+7E&V9>#A3fySK&*eM%x{9|KbKwgi$#6NPb*aNOa zlz;jPqJT}`V|^q1a&jd;4)#+h-%PLZQ~z0c|A*@1-B}ZX%Ipf4;-5VW3%Ri-*Qp&m zMsQ!imxqrBC(gw>;63ClO==4@b!?0*4SN}m!Gt(Vd~Oqx)xohiFO=-|4-}(hP8oy1 zhaGythZ-4J#Js0=1xU}~;S=#+3`@~0So9AQ<1dgt&QmNca96Ak%H);gs#$z+}|jCpIBVoasfZ2xF98IdCTwRwI^ z5tOOo47Fa;c+KQ{KZ;Mg%ts1emYUbStS;8)y%6lS^dwk57w3@kl1V3LoE6w)&^Eow zd9_Ek)Rl!p)8}ys2I92y+47LZl{`Oc6Z#?I6SDknd-nZo^F^Hh!G;Nz@0$3CP@oYJ zC7AB*gBK3;C3iTQ*C6m;(EO~^M}vl?h4{)M`Pjcx(2F{{z^$qF;8;feD$BGC#OxBA z1xh85cCGdC4LXfO+iY_`EcIqB30qW9-OHl@y!MgVIoD(ycO+(R^{$l(c6~CQ?x`=?xnt{ZlfftEYKc7)2 zB~<>Qa{o~^9T5-uohn*X&#Cg$#Xs(ugvk>G3G#-E%d=pgH-@}Wv1|k%+A>cU$#*ce zPsptyZHmkb7{jq4qIB(tL@lhqQ_4afR?_hD5T>99uae$l=)jLPfe_LwvHpw|)GEF_ zKEc7hWfA$oM?r zEh2tX`psZtk1v4xsccR*k5)tT>|;{60~+Q6557bAISk~7S;Vwy?y54Y+l zaLLh46ymG_$?p|ztIK~I9f~H{1N4_ZW*o#3`~H*d#V-Y=U%r#TH!}Ynet4u#f!-;s z>-oku?Aervrd{E@xV-uz!KlB0JHmQ#10cMaRw&gLq~*J&dV=aC&BWp2eJALL-h5AP zp;z0}3qQZQ`pas|>@R0EE)4?<&Ho%=I;OV{`@!hyP<+o%F&Em1y7$O6RN@0`kl<7S z3=eFF=$__)OTm-&n9PvZGCKl>2!l+gzy5TDx$)o=tE260@gxzh_ve;sQjE?9MG=sP zV`}8PD5e31ty*o#t~b=51iAOEYqj5@5g!oR9N$NVK3<^yWr4rlT<+}4pfpDiG-Zx(Kt2T07RsjaJTXl!b( zDF|-^bW}2##Y9|xcMwV!G;vn9on0p`=~^Yh98;gy_@i2eN5 zqnu208Q9m&Z{JVi4K32kvT0)hMh71{zmC+p+(B62KomAKyxjMiq^$6TKZMy*fK{t> zR8EA)Wee1>|BO0M%Ip8b*lJ`l5m(k$*HAyp=k-3@nry53R4hAO!J(^=f(;Pqn<kx=POQSvQc&ZRcOEq%;C4!m~nl_#; zJLuN*YCB=t8>=OKmic!@sDX#H>)XwN{p_wx9H2wnafBRXvCP1CwNU3Lcey zus=&0XM@wY&)zZzdWI+YT8sDo-2bK661ehQA55fkzA8%BNRBc$IGxv#gUGzvx3P>f zslf)&CfS)6XFI1P49uWP8X87pHBxD?7@a?gab=RyFQ6Iw*XsM+$9Q}44HI1asj`p| z9Mz3imAtSTWbkyhrBT8B*QJh4D4%5%oV)~6GaC|Xf60r127|DzGOWcilXZ5319*tY z{x`<eM5+FJi}_BVQRAN82w6MhGhFF*sGJgZW3I6RsdBSu z{Bv=u-7hJ#Y>OnZwxt-a2N~ z*&9H`Tcri|2}r=YS2?VG=H}23ZWpW18dxNMZ2cw+=;GcN37)O4tgJn&t?!(g3OtTb zt*LLn5v)TsbVx*;H}?MGsAzJ=!aZ+566BvZO@OI6nsv>jFt#n9)v3AL$8G-B zw;}%xVFu^ebTI$|!X#DkcRFF!v-44 zk&U(MFAVnqgcLzqQ9oV1Ye@~(J_}^pv9#0?cQBJTEB*&X(Dci&lEQhy*e>Z;*^Q*Z`kwPR*8glTQBg^0+CwTEMf z9O~T?&vu0th%mLQoQhUljZ{vE{g>KUNCAa?w(48rqX?&`)E|INR#R@fOk`XL3)o)c zSn)x?=XDpO;#{*=0aqmC9O_IU{A7&18>Fr`|29L+Eg&Ts5Ox$&0GjhA#nAcC~K}-%@|CqG_7Ld`qNo0GUTjvEjnu&b@jwCsIr0h{%#~8hY7YnTWfcd%Fq$@lehtOsTG$w3uG0$;x4rt7iDNHM2Rmf=hf-&446=lhma+%@`wz zL$Sv4pFrwu@F-?3&Xl6O2j!I}Ka&^xckbZ~WvBMk#L{I)itW2OW(g#&-eFysoN2M8 zm^GXZuOwy{VJTQUIYH}>V2qiULrDCb)omqWv8}D};9$fMcnh!~H$##4)c;_zwcLg7 z8e>*p@zZ@b(G|HMDavQLn~yVH^2ZJ|eX*a@6aQqYmOkBNAc0C~;YWl4PUP^1qCi=# zpt!W!DTXLSCelf%^a$pBj^(Kvr#__aJe>y{E_rFREMGy%Hl_X@tEk^tt{j;&+PmmL zPDz59nr}v{V&?+=b8t;p=e6rVkh#u%N4#u1EFtG~*>m#a+2c?as|6#`o!_LgaH*0{8>ig2KZ&X@L{^xL@_iAOZ63u~T~|^n`cwy>Vk?n?F?RNmP#hhzcpe?__F-3^ydA=ZhvRMkJy4P5tsR)|N>&Qz^^t7_ zwb^9v6UG*^hTzz2HS(EUoG~0RBWTXCQwWh_ZOlwK37qz$vWH{a(>M8e3)%M?HRJhr5 zyrGAopV|Z>>8)l?WV(tV7 zWwuB;RFmxW?Q+CgI8y|lxUs^Jj@KH9-PR>&iDrVmW0ZntQr(%C z>!f(R=Iy8r*i>+RUkukBJgY-~%v%l{A8KH7uYoubyO;ApHVEE~TTf*Q2fIzKPtf7x zd1qfI1@$Xc|LdN3zgEO_0g!rIf|0PV2z`(0enYeaeJRjBZu-v0n&D#+qda%2$?Zkt zJ4$&C0nD)N*w(*VhryV?!$Vn#O%w{zxs^5nDM%WOFl^&QDzyjdn_G{rR~Vj)diG36 z%Zmg1yr(nZxiWak-=2w)y^bq)zMJ070hZg@64t|azdx8Qfu))+RW;n=-Tgg@t%H}e zK9@T1Xq^#7Pxf33362ne!a!vVFUggCc-y05Q_~BS1cmVjo=IcgTI@%dl`WkLLtD>@ zti9{pq*nF(9q1hCIpJ#juJRE$=S@lk7bdI$AE{A)c%j}ogHmUDg2gj)sMg!Q`iCRl z_xB4`|9;dFKAv-iKzbZ)g(1IM-}#TAto{W(k4GL%zxt`^H2Tt1SY;`aODG)3MncFg z#q_gt^q4*8$m_%I8~e}C)qr*p2+J&_g=rakG8sXUhvV)OIegp+b1h_Yh`*i5WkHw* zu|oHRIUKjMb|!ik!N-B}qSGVyRTR|vpraK$E;Jq)EMyFCPSJt2=>QzzQf$JDWFDnZ ztIR4nzfrFbd>DER`p$CC{p~}~qbN3&nL88-G?YL+p#k9@?-fQkD|Gek7QGSVkb*Yd z-}9g{E5f2G6iH6=50v z{RW%dL&u-F=zs#@6(da%%Z!csk74_#RSCzzg56hc-OBJ^8L5~oC*__ghN{$?D(TWl zkfbb7&+!G#l?klHwoSmXHG^a4TKT0a4x|5jHxi>HE1n;^@vMV5s=p%dMwmGr$btKe ztR!#Q%1vXDd><4NvOstsqeyTcfvx{0Ej<^y)u0n#Zns?ij78DR0J-UItcKLh(MF%6YbWC z!{~x`%txW*q9bCWO)>pFhqK2={O5n>JPn-9PxG27-6SaU+XHA6WL;%r-(y*mzsAOc zF$lF!go$MEWHw{|0?<(lak?%fsvkH#vwr`YT+DqaMLbib~mnr@a zq_9dsV>n+ZV^@6EgShUED zpZ3Am<3hrdzGT%did6+A;gn+8s%ocrQAAX;5g9VSiB8rFq~78u&gUQ4xvEWuJq9Se zbymqjAcTC%@$Sp{<+DeXncjdZ49}=Lc1ekujJrz$$(%^N1Po0~qf4DV#?dV17>sRl zxaudVlNcdxCC)Q^m1Q_NZzsUKhvm<7DhtjdWxTG`E|7>^B?r@2(UXiafa7Z!ol>3T~x1=cCF);>WIk`7Der%I^v zN)`i4h)f$6)EhS9O11(UHUmpBZleoWw0Ss4cvGBxK6{m#*1%zmqz;nS>LQc1bfr34 zV`$kD8)8jr!klq*FP%%tCqj5i8;b&yx6u{aL6Set>hY$jbxmLGE;SQPzhSk;obj*1 zJSW0Yt7@9Bgg7(5I7x|7$@5TcB|IbOlPlyOsv=;?P7-h7qi&<5ZWB5OlZtSiQPlq3 zKpBrXVUBH3$NKnxw5Gw$_v907OEIVy?rU!muM7O$rb*o)!)WlM^Ua_kf=A%ZBY*Ks zN%2Px6W%MJu4Jbjb?W*?18rP`%ijj)>CVq_oo~(?Jo-{4dgZD6T*;hDUr{y(XoQ)% zmTsS<4_{Xs_GD$OzaEf}C);NY@YN-??hc-=RWoV#y(?9W<(!CP9%8TZ|1IOqsh06q z6}Bm~DAa2o)JuNdd|_J^AJ?n4Vl{uJ=PgI(lE<5!8koI-cmA{WTtYofDA>TI&3lSC zb&p)-tr#?)n7*tv+O^W>b5iKnaQ(KP>4jdq#hB{j-i;s{)xLpi(q4cX`-LKzU^fb< zg5kw9yEcI^^JFhx9v{au!=9F1GHEO`3r=1>~!cu!W5&DoAXH6^-K1e0SOI>eZj-;UHB4*UYp*6?h>9OTk#%*Pb zmoi|_C6;}JRhL^~Ja+RYXH%G`K#NO|u7O14_2{0SEOzOG$%7R*sml5hIMJRA{0=~m zTr;o%ad2k}F>>&k26+G`QMZ|~o#{xNYTkzqcD7234SO(;Gwu&7wg3)1<_Em(O@kl0 zqdF|As{q;P!TwVi1~0<44aV?}3?~#XrXr4kd25W8MkPwKb;WEDxm%a;fSTy>?DUeH zeEqk_)pgR{wINe;($j1bqaW#{`{CCn7?eY?$Oo!jS;C zlPSzCOb#UVa>mHcEE8Nb6Qg{lw zu_TCKcV>QTrlTHRrtib3AM$5DO$UszvX6M-qT{dP*J*+XJU%@~ z*d8G3D>ezUh(8v^D!j0m&andMsSl=j(*H&Sq_cChuzvctOED6hc$)C~AxJIW6Cn&h zmxctWrv~zBg8tGFvllLs1XC{}C=mNocpj^tg3x;nHZmLLA~8vdz;%osYCn$ zvdFZz_}7<*yB^Glzj9;FXGa;8%_n*yN8l5y;E`BCP_n%2ii;+tfSOsTyv(h#h<(l= z^n4dkiih`2vR?!TK!nKts_#-azZA}Z7VQ8I9Kgexm9iZw@8t$L;%!WsEqLwI62P?6 zE2elo5)&Hc;E=`CLhw?E1^gE}y9W*ow$*->$C|6ie}Q1PlWP$WCbRZMK@_ zE^!2_?db|`)P!sh_cId?>@{tEl3W6IJ`@+~y=@&Iqr$I;;Q-bLYG3j}woP#QG!K;Z zYb~w-ju+7c(4}mC4kKA=b+dzBCbad2O?idk_zR&<*~9b4p=}tca1Z;TGDtnNpX_#{POzPsun zy_)yctIcYOs}cWHi$azBqt3DoYf%& z$XbT6`K^(OLHR8uP8f>LYPD(7`X?KACYu{4TXxRc-c1&8oe%xNmD!!CV-V_o*j2j) ztX~5A>d|=tc`dKkd22U|FTiUCJCuwHhE_8u-(A$QhdK=|N|K1*`im3SN8%mARPDRnBO(i2fwm)>6)6-L7djVJk3je1LQ@K}P;TClXBH9$NY>qN z_B~E#Uma>40P|%)LvCOLB!DC3`$t`1P%sX3=k&f2yv|U)Q-tq~;7ijDZLIf6#>!bC1QXt5;Sq%ch{X#UM6#e9*XED8Cb*pQOFXF7+AYQ(q6@uv? z!i}Jv(-$FQ>K!MAHPuFV?S(JD23Y!g4f6i|x{}2EIbs)`unBzTu#dZ4I4*N58urbL z5TM??AE((rWcADNKEL?I4`gxqAiWzIYCF666f+HZLUpj1b6q>8e9O_tq!+?OR4_2 z>;rb}(LmCaLej#K=789^_=LnH7(o)?d7=_5ErG`(K_o3ZCtk(?V3;V9fru}z`Jahx z8eV(_fG3u>762=3s!o(4tS62aj_2h_Xagu!=f@5tSWE(VrJO6%lee>i0KoPEEV*ddEV10~~;{Q{zWfbMH7&71=8U+F30YkneCp@W{ zJeb5docjy3ih$|33Qdw44Q}Nad8XDy4W%l&_+C|junS2jU4Jl#sWX>tBW&D*RTq^8 zVt!Wj2jH%&GeX~@sPyUshYjZOoZ`q(rIno?bn^8Eh1{}IJjrM!0jckuezgiIeY1om zO}7^mSgEjlU*|a#)5v2X? z%fK;NadqJDAA1YQMz81|?r*QYOuu3ueHsEV(| zZfMS?IJ8?nKi-s>ut9K7!ZSNX`}e^Gn^b^#&BNCtNIROiyJna#{k*q3u8^-=Z0XcQ|w*rg-2GCo&|ZR|K z5584bbKvZ-W;b&t)Zbs{Rxt(6{S{&BU|_}(X>ejq_zYl4ajLWs!n-{^uSXX>tN+hC zwh6nZ9%@6430!m^HwKA9GpmFE{{tocXpB} zi$m=e45+Q5n9uX?8_yuV?fmVJ73z=^MuoeqU#>bn*LBZd-=K?qshY;SJkcXTjl~$# zn&0?BkO&3cPk$i88{y!pEiDFy$ya_n*6_PRJF@(0u%G4u{3;X7jP|hkEX%X6BkYp0 zA$4TT1&vcP=R4)Ud8{I$LlT@Ze4Z30h8l2JAKm>`v@Bk!!k-`XOb)X#rV6D*(5{ht zAFl((BgP0F~anN^;xKh*XTLPX@zAMU8J z3C-2NN*iw(ji~ci!yh{W+2knL$snvaeADA%D+mqxts)Ldppizk+*0ptMpzeZ#yKUxdxMxKDg`JXDb2}k8LXpJ3THKG@vpa@?M39I>B`4X<=p5L~{ zYHz(!xyCgS!^(=W&*5SA##IscATp*_t!kliugW803v{_{l-6)X^2V@tQ*S8n$Ezyi zzx7eQds;D2DBuVu$+KziI#F^i#OYm)0K(A`Z)mPT1YZZ~*%Wz6SM~R7zBvw+OW78_ z43p<^vx+R++Q%UB7(^|)SZgcI=)R(M$yO2pWAEcOrkT5rqLLANipcO+(MZ7N=&ZcTdo z#HcpOGTc&@&H3_24Y!(boPbxo-1B=KrigWTKu0=P4J-_vG~T|3a{DbCN{S!It$E=<`Fbo@a%QU8$-hr(b9#)FX2vnf;7Q5Fl10a| zzjb?ohFt0EJzloR%wnt7zUBcu;r`EgkzpzY`i0Wi^`8@4GpaQ0TYXz%jAU%G(!0NM z+uX%j&g^H8*4y(Xi_bX8wB=1}I`HJ1ys#QkTob^>RT^M%BMiYzI=O(#d_*6;k7+CX zyhr#;y1Z)?t@!;`Uhd3&Kx;+>j$e2_&52EEM3%$o<%yJ0!CL23z3LH5Ca%sC6k$oa z-o-m4{tRW9FF^w*W4|$Xw)e`x6ReN&(P%Rgc(Wz`B3FB&DVM6qI{#|n_redE8+!rP zs}#EAf6upQ5?%iZ8*!FKJ*&80;llm0s8k}`sc?4gq8|yI`l{X4`@Zwix6ds92J_nW zkoJ4PX5Y@A4_zOA%zh6!uKWV%dO0v?7b$z-OMG;Gk?`bpmayG z)fm$ueN+Ih>8^?J{vuI>F%)Tj_~;wGD&Z*9csCbBM^^jnZNl=+-Qwy+^_xUNsrlRi z4W>pqyPwJzg61on3p>=uZ%xFrr}|cnrUYQJ9KBy66c<~J9AN>+SNZUJHvzNnL?Q#X zRmsWadZ_y~mAMgt?>-mr#9Cc5Eq)Q=_F4X(xj%UM@xElz` z4#O*qX%&tg5qq6Kkxp#(jyX|o-R``)diT#Gx2+;at#Q)*WcL?&zuKDr#qeG1ih2|N zzJMuaV9s3;yE(FDu zcN2)mjA&K>XWTO+&;;Y!N{=v-lNq_v4?uZ$#S2Jcfmnrzh=*V zGwIi}7Vj9F?c_`k8N`$Uq(_COt9Q9rTzQP21Vu4tedkMHa+2p>2NI>Ag{^!1yh;Jb zN<6i*0E{joJ>k41IY_iT=`uDS)vU^O_Jf$5s-C>F3A`up7CjQkup13CvD+0*y>B5) zXUvsG0wtO9igZPgHRc*M>?jaeYcj8JGH=EtarUm@jc}%c33&w;VFjg=7o)a}w-^tM zJgT{%*Sm0jl5k(VD5os_D7Wa>ReC$K)!ALqqCUoe$qF@*p zxoAEapzJCFWIzD@0_mj_M`Wk#zr7+{_2Bd@@InfrTBHmM8eqR3NKYv$w2YAFps8VZ zB^57MtrgtY2Vvq6^1wj=w$xKAN-UgM`mBQ2U(0HJgT~pl#8#Me14HJ4LK0Jidki^~ zk(Fw_m0}Z>?tv2g))QhX9(->|Hl?8W}U|61@SZYlYRjsjK36)C;t$Hmm-SuIVVl5kGM34#qpN=gfa2KuK|i^~|4lCokH$qu8Q)5_H=sQDA5KmA3zC}GxC z+*FlHG(>bJra2@oOm;tgW^Nk*V$amVHi>{kdcWg-1s#fZbhYtkr;YIuU?_BiD2DT%Z#6k z)J7}5S^0`xzNKX6eH=?6q!BLO4$02{u|~4Ejw*~obo{;w#;XI%q-Z+TNzy7OlAlIu zlUGzTb>*kE>L_>Eai&EDb%Urgajr9dSb;)wGmbiO4O1xpvUb-KSI5?MM^7+3F*7i_ zs}pc~%i|$(uCC@Dy%8+JQ69zBHy8*6^XJGG9?#~|`x?319s)f?#b#e4cAX@3zcgn* zKW_hUQ2%It+gN_TOi+{=ub+8cg|TDxqk7Zq zdcx6pAMF#7w)(?2*MjkIf~*CfM}Hcz73kLthTtxoP->&czYW)`ybHCx;-4$N2O%da z`am?bOP}e(&7w|1dzMJO-Ip7}j%%)vwRImC1i z4V=LVFn^PW{H`X2ZoAJzN>0OW)tPLXy>pwx67l^q{rz(F{fb-tFCO}3gGVgMphR5c z+c9;SrO@*=%zmRfqfD*PE?TB7mkQb8QD`|O-cVcLuo}4Y(ICjKV66O@NXVduxZu_M z3SkxXz|FtbSytggzv%_s1SOQ|>pqWz3_ntuxC@g&n>o#MLeql^6eO{l5-+-3xXQ(7 zCh@7DW(G1J0%5TpgRdqj+%#+UQ$9?ewXTXzp5-@Y^yjf|<s zA$org?9_}F^YPv48P!b!iU2qbw0kT(>=G2F%1YdC8rCZ~GbyBeU8%#l{Ki(71s zOE)N60U2bQRkb!6cf0@9Zyl!e>i4XvZEC&!A4Hw?S5$AnZx0MHLk`_YcXx>(As`^2 zG$_GVpw8v{zW1*C7t9Z{*33DdXFq$FBVI&gJK_XY zJHd83*XZyT^ywCkvo}sA=6{@Soc^8H!~brA?{FxUzce<5y*rg)J?h8A2iwXyUGMG*2aj8FbkH3{ggJ6_K(f+>Ld_FNTe=9Znx2HI@jd^0(9{+>+ zaf$!y4bmKEuCDEH<5vvDi~nvF-1?KF9ei>f*3Vnr_?%%Q>l07ucc<^n%L==t9-)7R zo#)j#yj{Dou#Icp@22>BI{!9w>A%0t-h1O8nSu2U%awl>6VONIqFBb`A0OuK(>1zW znRMSYg%fJ#d%u23OFb!-dqn8;S8Dut7t6ltnQdX|!~wy>^xcoe1Q$Ufd7`J&v6uTx zeFtL)XbHdWwrKuQn{_z0299P^EdRs&{LFsRCG?F0-=XM>W9iBhqp<^&>@j`ug9gvFzD)*J*;;K5o2v88>UA^yCN@VQkVu_z|>q z(hv97*%i>}U9FeCLUa@BJ(_WfUbCR0@&oj>Tb)1oa`pRs zXFm37-!2JupYdJ;R9kjb=otJ*+)I|^(yi)xtmv@n<@LjK6*>!?PPI<5C>leOImncUrf~FFG3-R3}SF{3?WZ_0sm?`GEtTK1R^6EaXZ_XQF^q5k zjwS>Bjc0zvUbAwTC?Ec8zGA8sUuN-PT0`{wF46T=Fh7?eUX5nlFO^T2FAfg4Y{`cw z=cRY6f4?vLvorkc##I}GAC3mM$3v(lU}`vj*q#-^$$mU#0bG*5JB4U{{j>e-r`h*Y z(fsa1&Sp zpce{HOV0?)h|Y@8Pf5>3Wf#RH0j0(N%h*b zKJp)9J3TY|ZEk*HVk~^QEN5}!`{vg6&hFm+!H%9-=;Ot?$e$6NF>MjuuTo*Mz*T?N z-&8F5TJwQn2Dd6lInD*bO?hva?0|27#OrwKa3B)Y1kD?Ac@CM}iDGEZ#YIyFg)Du{_O&#xm z)j5v5*xr_pI-y&S@BN&MbvPLf&Klel4yD=sWxR3p=S)~410%Cy?JyE%?jXI|ogp}i znO#ZAJHg6njm2T(QDbY9ZHl}qVUg;|FV{3W7hkkp1kUk`R#ew?xg#~ ztMlR4`Dtw`D#zci=jP&jc;~ZssO#SsHs1s8i8#yx!StnwFIYlph+tgwyYGI4YDBD`1i%~J@jt{`%21j7ScmNLz#D(-|X!pZ@OaYm72+Oic^a2_~pF8CR#Tyya54SWc zfdqJqwLnPW@BJ*dg|a0vFD51&FOlV=gWLeDd-Z3*cR(nil~a%k|6D`>7`u{{DcHRd z((@!&d!Y}UnGU$2m zYtldS65N&A^1nF%1xI-fmW%V1ANBL+M{Es`8e1pPZ*MD3o7Qp`l{h9`d&)CNjQ}}3 zAT3Hox1UUZ?M;T>?@jL3h~wv_O7C%v1jEJ|POz#k;b3eD4vUeL6+5Pg`f>NwXvO9U z0WyFF1_1~aPh3>656gex_7=4i{H)iJa=d)(j*Y8Xr8QR4C36iuN)b?s@e2xMZT-fP z1dB>IyNoH*n_K{#AWw-%An{>TiFo?F=UuVX{;Ys(A5OOc|EX|tg`^t;#%#4f7KxKc z`!)e!4BHe2oMPOEowdKN1lmWXI5i8aey_USSoG(xfcay~Zf^#V$eM4#o>bq3h6(4i z>_pkzwd}?R8~pyBiYwc?2lv!$Jt&!+k0leGdp_I4b^M}WYS>#xNtaf^$CRwdX%AFg z$q*fhU$k?X`WSm+U1ZYV(1+rS^izVc6Lki_6bj>`XjgQ*I)2Q#yD^i)ey^4>FG14B zbz(D5bb1CSGxK+>1QlGLem@`L|6<|ISBHOlbx?!)_btMx4;$4eq5e#Zxl+YE0Ox}x zF@>#VrD0KxY{+zS{stB%{*qjfs-f<>fshRL+inBaEwx-8Z4jmQDA%T{_QW0g69wBs zze;m_u(*5UYSOv3s1xu0c`$EBNZI6~D1uj2TH+hpR4)dwVyF~i_J&ET zYdD5Q<5;SE6Bkq~PJ0`b7m^*ws{G?RxG;A=qG@F>I><)#-B*V}^N#7fV9|>mZ>{0nk z_1w=1gVvhy~hI}oxLDAEu$PfT3s?V87nm|!~Q~RgrMsUJJEpU zvaI4otoj*?aj5r*JKNrHupT-QyLpUU9{TvpQl{t?9&G(eBw-Bxgjsrv&WUXj%yD}E z^Expm>7FNfUD0*PO65D!;6-+&ZsJlE4f|L37n~;1<=EwSig?o9Ge6;_6irkHSAd+j zx?4HX53dnv>bjnyS@`FiL-ZvV7+TC{R`Z{N!!J-Dg1a@c@vF;lhX`vt-#A^Uf~$hx z7;|qmB?Fd$JlTliQp1vyib1z!M2_PVS&5oYA6BFCdpyVN~Tbt`20n zUeWSTkKZQoy<9)m8%tPHs&H=}ThF3otp5c%nO?aRGjDqRsy#3WnbjKViD;ntN%x9k zZmS?X?OX}J@UZOgazXKN)E_wE69!A@QYDo?o$bx}csw(v$WVp*vevd4oo5rr*ud)d zTGmt1tS#q{cR37?9lWRN7H(lJ{l~Pm5xQ9@3(}#)fu3oc=Om9xgXzP1x^BuuaNsxR z!&KZ9qqnY<$927m7Hy;pXO^<^P%Kt{=^fnt7pfK6JRcE}AMj>gu+R!?o-lCHX6lmF z)n;v&)r>|uKHXv}gFWp+X63QYWqh=q^qLeF0*D(44gqEZ;jmRcvEV%SO;MVT zw=UlmBWF68^?sRE%2tOF=2uNT;~H00lA2v~KvN{9j+(;;nYL>RGj(FhDE?0J5URd& z`;hSH2M(0@VYF(by9QlK0|vFN_e8x4??(BbbMa6yus_}%`{=+wQ_#Nv1C6bs5v4>h z2-_GwQ>~kehDp83R2g#S%u~dkyk%-e>0NreWDAPVIYFFA@Bm@xQq_URPoH+4_S?aV z&fAF(3g-x$$Jo_s>BO<_ICJf*=Za9ZHtr-gZw;kV?n1LS<+YS7EqBu3mr8;SWh}=W zuF6yt9D=UE8$U@?xP!K<-CVtq)ebwUb>-=;rb`r__uxsy!)-w!J5|; zs6YJ*;y$yVyW9}mormjTn8{5kpcnXon_vAS_Y2F_9+H-^`O_pVf@qkjz~Zgif$!Wry&sRQCj zthgExxM>;`onO%1uILc>iB70}6k~;UyD$GQm#+rnMEBqC%h0ZCOh<5eMX|=EP)_jL z_> zJKq2DMAtYP0jd@LjMEaJ7V;sr&=HR^FoDdq2AwnDg6?FK?VApHmH_#b2>0*|jmbIs zg%!Kpf>f}Tnx~txoBpe*0^Ber(MNTJuq6)#)W0;zH@;Xe!i-ikQ)|QA_bkTZ*`<=Q;NP%OEisF$h}bby8ArD8!+rW*om~ zxx+SnsNz3Ar}T%ppc%gRA_DtWG04+;f?;gJmIKcl4}e;FwZoe4?A4X5k!Hx{;meY=Mk13(7K!VN^E7-~eq}g#hKh#rUb#HrioY=xNT^ zwgJasIGd%>0y8Mg%#yf&V0?l!)5N=jz@dZVqh-9MJQG#eh zqIg+|-XUpJw;&x5MrOzM6)U{knr!p&t{5`R;f@CkGNMWdeZ@zm~Vs7=C@K{M|iww00{`lNPv3~)8!iIDL_)QMqt^$(?4H9 zz8rwZ0#Jp)Obs*pH##%#JGnz!>e@9gR4V75Y##pA2JY7~zx*nQ8{UMJb% zdE_}`n8u-BD1s>Eh)9w|Sc&07qFvGi5ZU!2WvMmykDaGbSt2l+DE&JG#fd;uLrB^o za3T>PpHN6!4iX@*6y!9(&QUBgAG@(W06ki(TstJ$5d$t>2A(<)ZMZ;effcx~EZ_(R zy`M(|EV-PYj}7Yv@~jNPK- zYT3QxmKiz>^g>$g**+PNY^M1N6V5CbJRL1GlPcabzfa-_nX_n~^nS$Us6O?k0s7wJ&h+8Wh6`AB4PKqKLaW^bQZ;TPPITFY|i8 zl0KjQ;oh(;gDZ2S@QLnmVSX}>(kAOJr&VAENxTtF@eFQCKBcRLxG@4(kt@MrNVm1KIBbMIDMQa_W7#BqWoTxFnY4iVh? zBRE{CU_!HxxW18U@=rKAQTPZkehTdF?@y?s$OEH=iEeoIDdkMMV$n z_^*oRn@oe)y8+$a65AU{8;*&frB&EUiF!Mjvm21AsE^Zc>{!M`Ppm#=uD5XDO}!7W z^li!@FWI}v%sEF_8~aaz;+hHIouebK2?`>?&*hko1=tm!5qK8%2Hedb#{hOj-S|fX z{vS9Cg^i)UEyd58P)+=+X{=zV2YduvW+Yu|BYE;p(T5mi~p{i+VG227XR zOPW?OBwN{vuLNgS9ky&`5PDG8tercpd6<4f!&Qbh$9A`uRWzk?^Ow7KWE<3cFYB0e zz!$&6x#|YgaDniO`re8UmkF@9vo*zP9lSIl2KJ9{y3GKhp^2udpHn8NmSF28J~Bsq+f8iHlpJ3sL)$MNA6fb12@5WO698V$>_j3^!pzLw&o7$q?0aGZx(;xgNd(HG zr{(0Lp)x_es;ogLcCkRD2uiAZulO(FA9Mk zkQKM~QRjonXjV^0yk~!L$LQ-(u=vs-9Dpuoc5xy_RA`k)vstL zhtalEjTR5}Rve%K;P<}GtsdOpN`K(mv&x`8bKwC4ize3{?b!@{Koy!@YTUom3T@OCzI||kF(+y!%{AVDharY&@J&>g@#s^UD$4dsUbx~g5HL%G zPZn<0yE5Cnfj1-cnc(AEtLW3V&oV=jPTxFEhGeV0`QpuyY79gob*q6fhnKOOfs_6% zIO#l8-GGe0f;oXp{I|a0wu+?n1bi2BoPEv_i#LIo*{u4#lnzqgY&8f<$7k%;7b+fd zW&<1N9R{VM{I8Omzf+e3$iDR%%&tE;2-@c5iiX~(IT5!Bb{=7xsKR0a!ddf~Ulm*= zMBk*gic}Ssou3+}WiLP2c|^B$!!}VZO=G|Sb_`u5`0Yo!S5;uvY|1QTPpV>jTK`wB zr~RUMKwH}~j~g*^y_e~vmw6G~=ckI`jcl&!oT3TNa&o}`yE=Bd5OS`QGg`!U+jP?o zs6FIlY;?;QWT*n{a z2JKZfrUiZ{Dx936^XxBho7&rzkE~}Me7+5t19Jkdn<=7x_|L1Y~iQMnyc z)eJN1r97M4!sophd-`3}^l2=rB@I#7&Q2+t^ej4bhdbwu!rMLDR$VdazEskzH&NS4 ztE{B2H_6Aj%<$)70uAtv{qyE7p?_O&pAs0+&VJA8PH=t1%6_D+&R<$9Pz>MS;Rsi% z!+1B4TkM{^RkpSC28^$MW`g>Z-DAzwzzZKRg1bftkmPvmsOj{}aa62s?I621)@N7l zg|}ngdfz#H|2^^j+3E4a>G#^MNrpkEle~0NifulF5!kxtzbB>oA7RIYjEpa2w(skK>5a@dE?FqDUnAFbV zQ0?cC#P=@kZtkMm{cJQ*(Hr!Er~W^)AM?V3=*P6v&(=!OzA(%#1^-Cf4DzqF?4pkv z-G2?yZ;_;+E*O?HpeUvP9ImAlzH(qP$=aWNV4{hGNmBOPpTM9;b-DUy{M;H{&84#p z--NI&%B&*mY(8QWE!7#1^yTt4PVAK0T8I(dR9a6;jfSN&GoaJUsK0-?|$6YpnelR zN)Z6l$53!s5G*1pJR&kKBt9lMDLyqZ;yJw_AeNk#m!Gef051wN5($zq(Jw%z=GHbe zHZ`Zh6eWWcYEz1l-AGwUy13Go(Xp|Zr$v3^kArO!ObMV3GnroxR+6F={fj>52>{Ee@#E(Nff%m_#O)eM@{*pq8!H zSgsqQP-DM7+E}qzBPEHxRHu;1zzvfn2ugufF*ZBc)me?=s3b`6Jl2d-J|ic<_#E_Hvfa%gui@TSKvP9UH!s0GdMhX14ONU$Qd;%U6A5SI*3 zz_xl)lM_eNrym;=zFghk%Yt)rmfKtYlOpiTs1pZ}%L`nQq4OU0q6lKn7A}-Uhyw_i zjQzkOR8f9RS7Fo7j<*${Wb*4a+__&W;5BDbgOU1#WnUx}V{C;ASY$P}fC!)Z$-6@_3SKHkrOdneI$5o-CSNfBdYi z{UK?dvGPql^yD8I&D(pcHN8cuVtKQLi_D^WvsL2O(g}>{fmFMPQ zK;V|Lgkmo%|Ge|N{N7n+1MC1zgKje_9!)$7#RwOdDRfzR`u>$d>dn&qcXuGUv4BAV zjtwZ2$zjiJSX!U#{RN%$Rl3W<-OzLD*)Y?V=Y;mtXr|uSGT{ha5@C^$x};O|NuAW` z^368h$e+Z2R5zIw6M`e(#|m2}y)}9HkDDA)sR~MIVSomcszIt_D`9W_oXv@^}N6C`HR7j_Y z4CTK@L>du5jT2Q!QH`8DLAjb5%ssM>5tnnf&^qVpjsp|v~;BI zP^-29QsunrQZBH(@SZL1I}X*Fy6Z};P^y7j~ZLqI436h^pORK6{AsG3e{+S-!FG@AqT3Rh0<${DpCE?d}BKS zW$ppU-g0o(SK|`h3imHZ1~hQ!_CA4+6LJc6gZ7&|94-GIdJc`PSZ7dV9?V<&w2r*B z&cE$E4*lR;Ci%{xO}y)_>ZjOG-=3)>FilL7E;oew<+uleXF!jes`0Eg z<(`L7v7(k`51r5+@ycoLs0W`QdR;SA%M;5okF+xX3`>=^yr=x74{upJOX&)nh@ z#OduB-TZ4LaY&A!?zI#ru{;K&Q@ooQXHH*#ri{yniyu8%4Mp7VT0S-Z6Ts!a{G{_L z#_Meo1A67PBp6k|6*Q=m#5W>W_U#p8ZzzJSF3a_3QF8V7#C&R{l!PTNMqbMITR zW@CwZ^2%1}{XBAVDD9EvN)u8pX6a#hPm~TunEfK+Zt6An*d%#7%mA{{Oa4@}uLiVK zOEZ;yGxVDX1`;url{nlhn_}Mz2eRh+Oxqj|(+qSoU zR(c9zUW4|&oyOqi)oywjmMqZyEAO-fP++*Yh`{~(Ij~&Mf+Kt%ANEX_Eo7Z!bHJ#D zL7*FVBOcZFgw^>ti0R}sA#;se_Drbs)#POYGu-Y=q^>hITG_wjov~-tYU<>_9TWQ5 z_m8+-f=XE%((VvgidgsQNh_pQ!3#6vy4}S#> zI?An#CfD8m;b6pIgh>(Qjd81{ukS3o1dgPN_0twP!76>8N_zj<{f^B~cHKZN8uH3- zLB7uhFfqeIj(Ru{U4*FcB=@xI{gG6k4Q6+ng%-d0&fX#`JL~Z8+9c1jqvz>|g+=MF zKlM6KOuzapHE;Z?S^Rn8O8CKloQKv#=iFIAbLB$!j~j>#OmeCN+riCBYfJYk&-&Uo zZLn;H;-I;^dKGaWoD?DAQ|Wp;R73pab@rb_@v0e!AfAp=2fa@2)JDcxZpl0Q<%5i4 zE0p<{N`=nX5(h7fQ~favpdf<)@SVH;Ew9L@05dd9g0z5u2E97wKynGf%0Y`B#?KT> zf%Gs)P_sMkT_B;k0#qf4BP}Qm>D%_gmxt1qk21L9HmG?qNSGs7EG<~TE4X8b(6^5* zO70`$fiG~bSgj->ufjNR>z~zwpGg$>B8^E^#Y~FLMV&GsQu(DMdd9gg*No)vg1>Zzgj?N(&jFzU5-_<$ zR2UO0>^%(DK@=1|EE94EOEdGLmhgldM1Uy+Qqm#}OJEsk5h7{6(xt(ol#zuJk;UN1 z5(D3SSY%~sWKo*4EKK8hsrK#Q=fK*xjMyQ}Xh+B1~=l#jK-8 zy=b$%Bo8D{mP(GWu z=A^JT@)wWgN(+3tqkQQVcjpD&pmaB}RhhS?5n~WSfkjx7;;=@7D-I*e?jmrOBk_L2 zCGH~eCF7wHaAL{OQ#YwM&jmFSq{Hc$q!$ZB|^T4f4+(OpP5JX4V&l!YW^ z(ryFjU#CWQ^<&n|g8prW8!U%r7-qZ&%S8XS2|l+Hniq7i7PmDAMGhwYG{bloM)Ma2 zkz@n65GCX?@UXm~DUrli<0KofqbU^#PY$4&T+Wy-Qz%VO_H=cl(gIBhpt8w1BJ9c% zR(@xPm4W$p2=nto{|VR?ZxZJJ)@#IM*f+E=g@kWJkQ}rU@H3<7L3z0tR7^+kA4c%m z0RSxn9ep(C-8YcfYwu{oWN!k6TtqFj7c*RH)KcNZ#rk1_z=pfCd5F2T36kAc^tkfS?m;M(-t2Dze87X8S zl^|~Pl=+A(Y7Ju?tNCN+jM3XBH_oVGy5_Lu`OjzS?cJa~yab#^eo z9ZSuNp;m&118^IEHc&Hi3G~+8D*3ZnGbov>i%kpTds<>_$c7QUM4UHY( zcC-WWa%Jpq0mdubeyos|JakhoqC%m@6wJP29{bg4#7!ZiU z&6jQpcB!#=084nbC&(lDHcS1>ZEr`b+93enIeO~@WWKFFqPsx|la+9;$l_x&=NzU* ze(mBF*ucKdTkUI1V6lciSc(Rh%d8G?K^oZi1f8QR8G~;#+CN+86T^|_<>*CPp!j>B zc(%4Fpfl@ZX~g3<6A-cP4YBcs5DMTT75g?wsjpx3m((Tex@4DTc4Dd|H$H@Enq=5F zP;ofY|B$p8@59H)sBy=nHszwX*g@xZXbnTq9lO^2+eF^lW3J?}KMLNL1aLXj^VOD% znAE|C@|EIJX_y^Q#{?8oue&k~S~vfgIV1XNu11fBlOa%v!In1|bPkldAY+a4ONfev zR_f>Ldk#v7A4+K|o7xDjg`LaMZzEYfsSEa*65kD2?wV6lNDW}Z`WvGCAueSkb8OGX zOFs03jc$)*op3*=fasbHrv=c6BHMapz_UNlUs#OQqhb0vuxcUe;&Hh3esniNLvR@$ z|Ms5OZ`Q<0;P#H=D?z`;Gfub_pmRBbXN?gN0mG;Lm_4{ndehu!D|Pz$w8~3H{(fU$ zhO${8jp%=~r|x^0DoXsNaHCw&uPec)+JnG(8SDYf835)2sE>(?jnZ11aS_vjVD0t@MhOa^CeD{Xv_>x14if46pg2Wg%IeR6f(> z23?MHT?Y>fs*znE@fUT}7B^@X|0-qbU5YyT%z0|#2yhE=($rn}4GMHlPp%o`GC=#= zC=0k>|82=dGa4#_c2LLk;%P03ef!$%l7(GM)$53QUGm4WArBVT=i@o`Tc9sv0=A=% z4!`_=$0$PczKrfqmM8W2&t1G&)Ab87(<2Y;0 z5z_Z98)B2b0O^^;(q;f7`buGO!T_4Bq=p@NqNgo30VW`v3X6xe>-eVZM~# zJyj4D;baoR-QLCQhveVf(wZ$|TdRwuUgmB`>b9&j!_il=2qXrf#!)ovh(-_(7=xya zP==FHsxHiB<%`-^jqsv1Ir_=gx_Y_U{%jJWE@%dmmmC4EGLm4{mr~n5c1V6S@kJ@| zKYN#oz_06jAuyp>sdRvtZr`<^EEDW_CwEB1sT)K8Yh?H~27Fsyr9Kb5zyuzC53=l` zkSgR94@Z+Bd{fnL3U+aNQ08Es$KO1LDVPhoe>vZW==5cFu;x<|C|#3#SBJ&Y`V+q$ zs{FlA`|YUT8<46R*d`#sX_P8p0qx1I*P5U11$LbnLjRiH^X_*XE_nU@;f{aeNq5pO zdot+U)f;HBFjUaphq2m&vz`%IymujkR`Rs1btA*1dy39cxDKDv$9N)?i|R=g zboOjIrn}+#@ujOH)b z_t}PW-@1w_GYSjGcjl5^0_Kec ztF^-+D~zjP-11;jUU^ztf1hfm_Oy39(^%O)q{RNa$@1-d7s!QO+Yk2ThFf7Pl#bhD z@p*?wgv=4avZpDPxXn}N1gg85dB;w`lm4XE~<&}d(Ul7kwZW4TZ-Y z_b;8Cp3UzZ{`^mhFt@rIc3JS}4u4pWE?a*#^F1DD3`2^)+QP1g;p$UjV|AvgjvIpb^ z!};#Z8gjJr@lf*a%Ws&K6m(1eTWkyJtIhf%>0UNDE|*w;D>of$s#h)_AF6t zbHC~usA#tR{uRFlonE~KX^zyr!c6pO`H!(>ewi}nRc95Q%>O@#?ZIPs>_@h$&{^5H z;@9t;s15VhUZn*A+vAv2=r{XLSs-GUf;rAx~9Rx=qy0n;q(@|7CP)|Y2UbK z5dBHv{9!8jkwUSy`O)H&rIxXF1GafF9NUz;u?ZavZz5mdKTbWR9I&lKEoDwCTTM;7 zy<`LH-v-G>vc+#x&B8eM)840y%xguGz2DDpY&zP{bQ$D4ctmXN4zfKYv1vWVH5LzY zz7QXjBi#b2__||(5tW@AKQV4Z53A5{xrzP zctmV{QyZ78|3hpiM?>+^oQpM^cTp)0d`~0jEY+(Hntq(MpVNmqW^dW+sSsXBCI9UD zk<-HqrS*Fz{p7TW4xS2Pw(Wswy&Z)dvGz;&{Z+jo*^lRC+r0UlSgX+YuRSTaE!QM~euqNo;x${x{hE{M@n~G4{8DrB-fRbnUzj&p;&9K=To6j@#pQ$qwhc zf6pJCQ_`rhb>nD|q24XpoP<($zCZcWsrhi)LPDl>_IE`yWxoTP|Bw6;LH*hJFndjh zv9rSuX@i^M^*@($i+d7V(KcWHZm){Rir;?st?|5F34izRZa=Zc|Nf*P*X~AsO6aNi zpO%uFv-5+m2@@j3WhfMIJ+kyiTSr%#Y9lb3+cu5;)>1#FCNJDL`;Pp^fBVQFUis`Kz*e# zEC@sI6wb*m!W8=%zr+T1IJo7xEuow1SA)a|M$aSdg%}T!!%Ba9wA}Q}@)`>d6Ifea z98A?M6^Ba)#lj{coiR|a8T(5qp2!h7yF~9?M%wi599_f(sISts4-B@B^TT1ZZ=o@V zeadVX@zEhH#LTKAszyTL3H|R`MZHIqJU+sz(?dN&*eTPg#yCQEVa#UJnKkJ;WZ~+C zIKNXx&_^#*%nB5_raT5EPiL9F#xL``s*ZDzU!@JJvo#!+Ht}P!?(qJ|xaLyM+>cs+wBtyXO^@>W?ASFH8Ay}TmV2VnySYf_>P^tN zHUUxJAGQTqc7{OeYtv;J4jU-Z81hX~9!?BLD>~OqWWor}?~u%RGx3OZtA=PjFEk3- zwt9J^IXAyIc&eyZqqEZT4Mn+vcE%H?Bx^`aq8U;(6Jt-4OsLcD%r-)#%12i-^l67{gTo8a% z&W&xWVmAwo-A-es8saAA?pw{b!}czz-04XPF%9F7QUtrOn#LuMwxw(xOTnl&6F%bg zo2SlR&AzDR%a0x%iAwyQqKqrY@_B8$LCPA&`B3?g9}OT(HIIowU5vBauc`8U&5_)d z{+Hz4HoupWF`_rIDnfb)Qt$$qd8EJ!UfjMKB%$Iw>A0VkI7zG{!k=ZWx_L!Hks5;B zvBp}a@wXk@F&9x^xp%G?ygJ2lYJDbNTGEM=eH?SB5&RL6U@TEP;IM=4uZmYS-;^+- zmGbiO(!*CGW)63&@!aIj-xlk2c4OKEpPp88?-SOEjg9iwXXtO6*gf~0a3O%CWsC2b z7LkpAiv8566Gk9QQh@sz>pBcme9z{8MCgE@kQyVg@xnJOk$a&+OA*9xXli zN3O<3vj^m!t&5$pT74SBceMT7dE4W=+KtOM-a^4yCk}pzEzr8hq1q=B4H7(rm=JhKPZ~;Q)(Iz*Tl`>s>8w|Oljw3a$OTN9-p67YS7g@biZyb zhKg6W@&7$_OU&HguWp_EH2KM+!1rJ)n=oFwX_uAL$NU`qXER_tr{&#drRDT8 z)_5I7S1uuR#>Gedcbs`wmdPOrZ-UDx&T2Oj-@Bv5-~9w9^t3*qEnAi>?=#uh!;XF=IZbpznVU zo({E6*$~{%e95^keb#yW_+0fG^VN|VZ!)L1_IjfD)7JM>39No{Ao@83_~T;a2J;8P z7IwPf0miP&Wwf5PG9Cx{=|E_MT*#2Z;!X%^{1uD=M$3bKG5F4(*KIa5G5m|%_A8X8 z4+Hnjff`f>s)!8;d?B0;0P6~TDUl`s8djrdys)9c-DorbAZP|&EBSCXL`FK}?-Yb` z^=}9uR>7@SmZpCp{DuKcyZLz|^}jawTB`4JVYV5uFVstcv_-(X(TKzyQT`P~9v@bQ5h|92_D+(|i%mrcGvS1~%|Qi(oL23FT2@6N!1|vhQB|v`{F}=Kqt6*jxrSJR}ef-7WRY(M`CdJ&G2Sq%l#esJY zm{6^5SlA|-A>a*ReDT&%OGo@-;V&2hO-qXeI z%tcT5kOWmj-YEy(&nbOgw)m(HhZNt!$t2^6A@QV;$e~T4H5k6GmZ`OEn6v=KZ~&M^ zfyhVzoXG*o0sCb(#acE)7$re;h#-SfkixWoZkRTeM1VCIfEBk6miUDK6cJ|`5z07BQo2l(362~0N>-6)OhE?HfPq0MV2G^Z#2wcISyO_t3~)0> z2nyyfPs4LNC>cqK@B@y>*NC8W0il9sLHBkjNOK;p2{PfaAHPA7q_|1E|G;otZ$lmt{^t?29Q7lxw)XsSR|&xW<*!fY7xBQJyC@+r3QLW@!A5V5tyC_$;N2e1Yv~?<@tEG`I@b| z`?F{%5WtBFuND;Wj4joj9hY163oSgiTi;%bI7dbx8qf-`G^D=`!By7BJSmJ5T-q}7Uwm(ofGH?h2t@jy`G*O0fz_pcysQ+e@a#!Lvnu{uweR^;AVC$Jl2z92Gocq7!_mx;2c z!cl~banksKCEH2xKXWD3uY`w&)+|ZB2T9kx{#F}hg)iG3EumE#P4uav6<%gu!le@d zFht4Qd5{j_UoVw3s9+|i@j)pXZnx-meV6IxI~s64%sD@ z)vPLfST6gOmQ;~2ngDJU5twIqv@(3Pa-^*V_A)2dw=&M5a>l$)DncqS6M z$(TBa1w0R^rh_-<&G?gPrPU#GbEF9?+N;wLI7R{(8{#Fe>jJ}<-fSEeFq&g5B0=L|JX>GFG)ibQ1Y$1E5)%H*z@YXT%gXh^(Ooj1 z+rFjyrQgh0elHFnEP#P7`QaEDoLK_TcuD_u0aF19x;qLY`ax;B8Nt08v?C`}@ql|y zQxz!1)vS%VHiSYmmMGX;<%O3M63X;26~uZdV^re+$-@>5bFCHd@{S6MKelNIBjR^G zUSq2DAmfUZ7v5}1lBNg@30QCg0;i3EpxdX*BECh2wsmr)4^Gpc@X#ka-Xi(FJ(;FD zE3LI!y89Mc1u%58_TksGL8N%_M;Q_XkBT2-x_dnX5v>rRcFen8w5cD&Djo0m1pJs= zl6+del4d!yP)X_Ykb_s7#I$)r-O%DFsiiIw?^W}{^l%fx0d?G4T8G}~PU!kG*-Mm{6!vQk5YrT%@uJ-IR|0BfFnSQ;*5Q@MoyvK-UtQTMNxuTsatgNRq znArZJ z>UhNASe;}`;}gr3Et`%D_NNo;SqqMIlkX&^-!YHmTo4+!#_pJbLYUMVEig#VxBU~&s-m(>*ceTU38WeFG%d}roU~1ABlB5 zGhjWC=jv__%rqZ#@~#p(u9iK<(KD5SPnl)9YT~x~DKw@xpM>)__5Y#jt-qpr{J7hJ zVdM-k3>^Xvol?@>(hPz~Dxh>oh_uojLk~T4cMB*WNOyxE-6$BOIG4}&xp%GS{tf4c zv(7%R_ulVh01gBcdfNZc`RmI0(uW*?JtHp$GgPca$e%v++uw$#KELgRrbc>fsmnE# z_~FP2na*vv6A^2DHwYxKT&TTFczVY+ALt4BKgM0gMN^VBO~KAqIZ{W@vV^Dqe%s{o zaE_bDdp`fVYu+UXyAJs`MtGM_R_Z-&^&v&tX zx?fxqx7Kg&nc-kpwYpjUbK-vZx0T)vv0O#>01-pJrRV;`*XqR3z%^RgU6*U}#9Laa zNgNCpwCz5bL8Du)x`v;B@Fn+R^JQZxKLE6KRTLb?wyZ(a<24z6)U1t9X ztzVsXI-{%gQ;B2ST8-L?V1z`KvTWncsHW_rEkIud( zCJ%+JKGq>Fo~g;wBL75rA`m}kq`0;F@ysNQV&)w!vgw@qCpim)p$A8~_Ol2@MPX|D*`m1XN;D zxN0baP;#_+NNPr`Y)WoHVNr30YF0#+;oYqXQ7C(LL=LDqtU0y(QAJ5|`N#iHiZC=h zP&INVMabx$x|1R-EG{kIX>9)|MF>^d+T9zF**}^nX9zJYHw&EsRsFdLAG-!!-v0fy zYm5T{>F4_%ml-4a92h&_cipSTMXD$k1W=RigxDd?s6(Mj(f{j?Ikgf<;MFy-jU)@a z9L`p6EE&rZ&kq_M`jvsn6%Pw72;qEC5yq8Z_UPiku zIkRerCf1DCS~`0*l1eLg?q}>_JBU{D8z=H@+Mh0yNHz?}Y(7{hzyJ9ygJ0wEa-RLs z$F7x@A748|SirlkE^AxG6=h&oNc&)_RJS|4iDdD608P*XZdiA@hpuB6w%H{^9KI%*4}zLr&8$sqqJKO0@%wiT8BQ(>mhJSeL|8> z%p+Y&9rHRRHl)Jh11Ff`EG0)Qra|35{>>nfJ!#86GvAXg&S@Q?dAqGR@m;lVkHLq) ztgfsf`6@yLzB#W-6coO#^iSBwB#h5RQN@b_dZ~+jtJ6TaZvJ<&xyVK^@}(K-RoYT+ zh9F&eNt#o^{~@-eLdY`ly_`Swik}hEPI`D|-{3u;5j1v|dm&GY`U+Wvlf>0I7&f>L zicb3=dZw8hY!A}CjJb6SQ-rv)-xk$~R+N9rH*s(*ZOE*stQ?=OsH&Z&<8i6jC8(@v z`5Apw(|t~NT-!^fd0gMMnpssl0yB;F$)BDzYf3(Tv~v$MDX+}DEpv`!(Wy~}kXWAe z4mXjM2o(|UsLfY*lm<9j^N$r-1p#YCR^aBp(--;tm|*}Bh;!k1+5>P%vsm3QR=A2n zfS7NCrWf#|9Q- zJ(#44G}4*)tTVQmZmLok{K72AY$kY_+Z2Yv{FlDX798WRi)D3o{+ge4au+E^w$GN7 zn5EwlTY=ZTLd#!-BU|v1um*@s%z2?_f&ke)vX7z1@SH({7Sqv4C8pk1Bjd*EHdb`S ztMbf1ZpD_g?9A1w`g9hl%H3x7n&aJ!2-x+0PRw)3gS@;N-@~d$F&~a9Kd)Wam3(v1 z@+6CEz7+EMC8doo1tfy;2~Uh6)WoT+ls=2Z)xbNmyZAQ|Ltl3f%2shuA#tm}WAyYZ zX65(y4lGa9RUxK!t6Pa&=O6awbl?R-;AV~YJu7i8{VxE70p<}?>JyKV8(kD`m4st7 z!LaV1Fd`5FxHUxt)6LZ@m=n=+9mrEP;ShDNzP4rLB?Zm5bgTvZM{M&6o&hOdoi9zN zapd1b!xIJp?dK-knSt~|AutOusw{hpp#4k8oX%TR(drQ^t(3+%%p>`Kz*c=iB`G=YcM+S? z)u3J`SxPAd8dmaoTd2`OUYyAUGu@xw=G!6Mf^!lEX z-7AAP;*lGABtkSi_XO@yvU`BGVrrF5Db@2w!SxfSOGKsO16Q0miR8{m_m#fEMG8ff zfE6A+6O-~JDebI<28>HFruQH6t%^4^8VZp$tUC5$=1T<@M$*G zIXfV(_;+Lu_kA`e56R(rw@TO?g@N9`r{X3mi6Ik72k^o$c;;Y~CRFOys(qB0a zPh(3S2P+V2LuI7}uFl=^HytEKbLGHz=y}-5{1jPUuX~9QX0Q)t2t1Q zSU*XPe8|Q_nYH*?=)68Y?wI|)l<}aUVM9)nlZ~LJ#<=0jhe+Z*!n*RhREjAsBsZOa zBzyqUd&4@KA;JzjSh+#Ir@+AmDUp`OA>( z$@K9z5aad(1tDCX&3mBBUi!@DHaw~FJ`E?pm(r0x%Kjclr6lLm^%iEWbb-0T~CWo}od7SnouBjvh~hWR*)RtdO3 z6XrVMhkRS^*^WrD4*ZBIv1Z*aobQmxcaLT@=c`{3!9B~6&S#oB%TM1$W=`CGPsXe8 zdY#cud9kzpE=(g9twwxr4&15@u2W!8E&y4C#BKK)|CxF~+GY#jmM#eWsw02(>TT?l z!hYZb^4$O-97`hGry&9X{D=S$JZQUHbfYwo1|8JDqd~XG{QDP~)V(K!J%qDvYTWe@ zddgQ)vqVyLaJgcd=R54%XHv}GPYFxd{rU*DglsN?WvFS0K8VOi=jFIObsoxRVuzpW}%1&+EpHWeIXKsPP;3&+1jUN4Wzv;PfOuUcZS~iYo#_%-^fIzenc_2*#TorBuW@x z-n&lDoZP2DF_)PK*T2$V+Sy__l`Vy|{(Z*rXTc`PzYVPUo#1Z|`>e*oCK?c*p>LNI z5dTCxCnHlA9oR9Gsyp>cJWLECOdmrHqTt^8{Td7m)A#vi;Wi^n0och@6~Q$nQf zDV*iq$;Vt6w_v+;s|ZkFPDWtPlUDz?G#IhXG%tyCNA+|!;{r~N0&bIZcF6+X%mV%o z1svDtsctQ9;aGwY*@bQChdmG_q#;8c)+0o~Vx%RCg@s?rQWl{>rVzrzOO6iofgx4% zC76te;S@HuG70tiBfBD$VUVcvcb2amBy3e>#jy-+U^OpLwo z$_y8vqWd7?rcwHiTc^fYkvxoAw>^mROWuJyedKj1(^M(`lVl_1v{=dV6mCp>CXvFG zxw$}T>M*fMd1@{O_wgka!C}fYc}ZPi zUpP^g`1AFWlKfI>gEt|M+=@R`5UcK$yceY67BGoTu9UFKY=|ly@~u{GP6+ERztFE3 z4bPsw&UBI_xF=pSHw=KdOJo(X;++!7BL~$z7CPzIrO?QPZV3R1k-C?ev$$LvZioUA z$o+CaC|$jn6{Xl=wxWr&)DVX^{S1nN3gI2 z=yQ6C;>Cvml`S6{sw)~E@)YvkR0!NOG}1NJ_%?DoGGV)`g_6akHMubB@XwbS6Ln<- zKlzlh;It$4iGif7QUt1wh{-{JEz@RY$kS6vu2n0D7@T{DuBH@GgO@3o020qmY!*zE z&`i{`b8Lnt6_bkNkW@yztj8UTEKF%=a_MO0YOME@3K{20dS(*SIh^QnmeSnDz$)@; zQk)bm!5_t)6n4|b5rgIP9%;pemg}lIqgUD~MM(58tzV49iYnWjk_cV#SuO^cU`%O& zOeNOnwy$Aoemrq|Z#SS^a6~kbUVh})uo&q4 znUFYL3J4-#v~XmZ{gD0V=96_}cAIF4^-|WJ276}|z^n=E+PIKN(J)MRKbFKHA_BR` z_-p_6X{vJ)_!-4lV5RHDbhq5Q?0^vg-EM3|qns@Uk-dEMI`4QMiNPT^rulz9>&GL( za)R$jj)8&?SU~i1gq%VTO1^b`vH9UokOlk4C;@7I5TVG_NB(Rf(vEh0|9+!vqJ2UR z{8U{KrZ1S~#gEcX`Ds^Tjx2g1MBWFB-EfjSpG7d}nT9k#0w3U)@3qZNBv6#M)(W6x zC%pjDB2lG<8sW>&{D?` zX4GhHL{#bRC&Hf|H&zg(T^(3mBHi-mk4VN=2ijn4YlN#NnoCSzGE;va{LF&I+E%vG#(vjx|6r>|6nMe&p>9cD3GTh zrht)9d=ORr;Mu7QdE@|W3oI~6a!F5Kmu`a>^k4>gCnM(^ubMeRc8+Np-Q?rG=cuti zQOnLA%JE-#o3l_5yWm&7kT<&U{$wG)YW@UeaI4TBwmySe@dH^5#l!u{G*b9 z-fhG`f8Z%%Rr$$!42Wa-v`3=lS$3Qc<0?x3TJhA|rEE&$x zMt#np^gHS}CtycfAo=TL!0mPr@lJ@$&R5fgC(m~Zop$s-?)c(w{?iMqzXBZf#*w_M zPgBIv?Pyfj?&SysiQK%+Sroq=Y1p?5wTQQLp}NIky`4hr#ns{@N$b9vR+c3zlzA}C zyAk$rUrev;jrq{#{pT;p2f{$hshB=h#ByyG&8idfvSM9*2e%HB_xLcjH=Dc)M2PGh zR80m>26mMm)f&2fi+x9gClhqH;@@Rjzh^6wl0hGnIR?#>kYgDioay?;Uwae~kUceFAz-L^wh}0~RJ( zTsj!mIx$KdNcH|+TyA0(e1o?h1wxL?I1M80PR_>W z;|sW6Gb~U(kTZfU8r1AC1(YIJ34Y@}53ibg7Cx`LXEFE>9L? z2!f0-^@Lwbn{zisGXA33SUOGuW)=B4K8{_cmwr>HsKY#T#G5pTy!)B4{-b)x0>|CteSDERWv5XYL! zd(@!sjMZ8($mp(Y6?&LqkS&<7d<{4fIFe+L6phcEWMbOE0q+iP-Inxlc=wN2uR2fG%h7ynIc|8HV@2W-Pt zBh5n6g3+L~%%t2rO#XkswxqPIyyE{@Z0j2u|C1sFr?ho+c76QR-P2~?+aHSj68iN2 zSZt%s%yY74+cUD3l2@>c%Tw#Eec@YSJE40a2f;_6lOGYM+h@Ojo$vm+yx70`dvkaT z`uCC=wJz@kA!SS{t<9H*WF1W8)GU!MzazHk zP)oj8^gIi%?tT9W zXXPrAbR5Fu^cw{rbO&t+%4+c!rN}+JZ%ZhC3|J=?_YaIEZ~&(`&=IlrZPHj7DTpG&lB% zWhk`{`k*+|>d?LvbJ8@s+s-N$3_v;GYDXK!8}-o;@YQ%z?T&e@x)(1Z zQs9qFKa?JuoOB-Nx*OXB8*x>4{ysnY@yU+tWkKd(eTFH?1Kh7B0#f)7QW5 z@l>koqp__ziysv3bmMUgZ~`dQ)(+|iy&U$;*;fKCp0aO=Smm~VH`6+<%G&&UP~LK$ z?NKfF?L*^uKG~SZq$~+>)3hRWSJRC4gRwW$m`v5!m!iK)l6&%Vs`j0Dak1-4hR-jG zc=>zj+(n0-I+B`Q#-Gfde|@uHPM4_MtI6{DkK$;H4)lVZaLjk5`YgriFve*qTtc$<(MBtzNXs zns(FlL`mE8NB8}Qe`k8g<@{#{u({IHqq?h|KPIRXI?teo>?uc4b$GP9c7kC6D`C*D zDu-f;oleI-H7A6Phy4sx$@>HR*uSs;kP9(ykY^WOUqm4n6@U5q$K!>QrM|pYc!0V`U~PLEjONT(bPuJ_NH{q-yLYdBS2J ztI%1rD^Dnd@KySQLydQA!AaD%oDG6$>@EyUg>(x>t(Z6YuY`V+-<$Z!Cr~lLdt!v) z+#LKu&s3u^xB2n`zPeg+qN9kpe99|BQ3V>OdK4-Jv8RkCex&*{34Khyuv;1`5zXgn z9c0cfCfcDXUXj%COO?a$@k0(n(rEpZO`dXZm1pzQ(JiBFd|uEI#Jtl zY)0J9{&zP(IreKAvxZZ>6}@5Pp13DiM@3lRMbOt$d3=*n#}8pN`^uV%2c_f>Xnxa9 z8a$SRYD^i2PI{DAm8puE6h#{LBj3_Krj+IuqG>=n(aRVTx6cR}OxM7rM)!T#lkNf_ zLTIsKYn}J)Ge+05>2j3px<2Ll1u)7|RqYbD(4=w{u0_6C{Vr3Jy@WPsTv_8}NXY4I zFh%DmAEWTnuuEgUfehc3E2HeG+J_j)@l$>$w#0{`_J(rL!ykDO+nHYsFKl)Sin^_; zP*NBVx;v%v*f;i@T@NpU4GTQFaU5TAXf8D~SGiq|7U`7vV#!g4Ef|qz)wn7FH1+l$ zXw@sWA4vqW^8_MgGM>&(FL+Gnr_Wm&$Euw@V`dLYA2DTiJJ{p$#OM@#G0L7ZlVa`o zr~tI0^LF&y$rV^d&6Beh&UU3p$nS`4I&HQ_p-DI7XoZeBr1{I za3uIqXH4q5(&FX1(6@H@wT#mgy#kxgdVU?7R1fC*>sG5{jsI@a4WPe>g`bf{6v`;l zr;9rEjD?%pvpgte3!d2#NI-UKF;W>1A>)PkyoI(~u!=!sl;DOA~%6oJ=!kr_x-q6VEye-f>pb!`(!12txNL$N(S-b;ur6Z z_3WsYrJYS?K@)d}J`Ya=-}|oT^R@MoxVQ#?OT!N6j`J%NOgc9=wQ>$C=obEo__)?j zN7uyOH=x4$dMz~jna-~F&@;vj&;3{Rb8l5Y>}1G%e5c9OL-(zj`j><5X!Z^V-iOH( zt%dyi_?43UO-@h9d-Cox1YVCn%E{IFBlKWV`{cXJ-Os!?rOyI{qp2S5)9ajvKJwqN zzId~&Q2n;CmSMyB;$-Yp!n2fJN#(B%ub>e{`p$kQD+l$JksRq|?fcF7e(h4Xw+t^n zORZJO_U10gO>G$>O9ZG(eO`F3U7XQcGIV~|+v1pO9Ux@c1!Z*}JbNG)3j3#;fpvK_ zU<+Zo4G48qkUk>kbkX?!?_y2+810h0QA0R{UxCGcXCmEccYl{*j6~sW@!FbetEt>~ zrwQ4w%`XCuUt@1pORckn6&mnNi|JAy_b)|1Puz|eH&>@FCUFuFec9q!Q7|~HMOgbc z>s0Qc6(rzREO2xCou9I#YKuAjxeuKI`0mX70TL{Ogh22JWq;zDzxBaa3_Si4#As*u z%mN%~6$qNrlD6c%3sGgSgZb{h>NtZw?Ahu*^^mcF?p_2@gxZpvONcLqP^tvS!9(cn z@Sff!g935jMqo-WO7nFcSvx{Y>bJCS0=`DPH2~fj?gwl{gxM~H&8CMvT?~7xD0;~e zSYKzx-0DSFYO#&-lwWiUT?dnShYAY>-50|W<-FvTaEl0=1oxqW!JMHkh2DNj?&s9L zy68yiS31E+yg@`{9p=rJMFcVFvx7iu$G0%UNwD;3Ac?pgm65ONsqA?-B+r&Br2AcT zE8J>oFuT%b)1PSwA24*e^6X#?(YR2;5*4 z_-<>gTnDL3dl(8>7mACvE)vct5KWhX8P;PZ1@H#!9Df_eI~v8Mmcats44$=xeFwtL zF2kNL#-Cos|0)angHA9q;INC-GFJd{=Wv1%;1Ji46I<3ul$#%5{e?_a+UWg-m)1Ex zNa!?<9+~(E1QK0mHr_yOp_xvSvF^WqC$bKy_IdjBVIWZ`a0nc49`05WXt)+mZH-G5 ztO`hU3Ve#Iv$@WcQFq7ne^%O^@=lEu4ms4&SE`EOXsWp$tulHx8$ z==68xg33{Zij%Ryt~j(@qFLzFusW~_5-(uLopYN|$`!EZ5>?7imcELWzDzHMhb;(L z#rLq^n^6yz&jiV5R{XKK3$R&oCe)}WRM95XU1e6PXC;dUFmuIJol;24quy|#o@X$d zBO%iOh_^hMR^8|#5SwE41X7+4)f#f3!-t$eqR1XgNYaAe7(;s7p_^^V^qA!CcIa?a zd^T5Nyal8L0!nwI4PMW^o5qHK@_0}&I#f9(Oi4wY&U;IFZyw!WY2f+MA1O7IWLypo z6%pN1VhvOTf4NGQ1c6L33VCPNr{oy~``+Mdr~v}^9ydVK4Sorh+5$<5OyWH1PL^y3 z8^itnwF4SZ{c`anv0nwEl5&Z(dXj=*s`6w~Un7svL}+m}Ycm{ewbB~we@r|YR9>#@S!;CNc`_GIR#UQSORMIig+83p zTPac*FC>TC!zkNmbf>_&@`>mSuu>hQRITuDV3~ij`p*W~n~Y>3B-pfB-Yifo90leb zu2~ocDEA8H+f%S6b!p_hUp+jV_Q7@B#S&MAF&0k&L0F0f6gMj4QD9ZEfYtX3XPQAQ zzr_$lMIhCqJV!{r_#c{NIiGwJoh%8hEV-A);8>SapU$jYE}Ye9o>c8|NPQRfV_dGh zi@b2|pzo!~tl$<)9K>?ohZ0@~P1-;=%L*g{afAg5zQfV+@=&-sz|dVP*-=)q%}~;2 zd|`o?BTrO12=)HJ(sEUvL)Ypm)tWzC{-!eFwP|Y)h2SKuTfYH}!8O%qnfQH>*W>)8 zb*|hY0zvb-&<@++Tvt&e-wJ*uBG9>8+KOG;3Z#Dt=Tm!|nPgoB%5kd4`<$YsjOU>y zZbR!uTv$6;rp|bSJ36lJA!kK_c}DYPAq?1Q3xA9;tt6H2XnNsTYh+rzjld?85P)LU z^GjD!tVG?()nApHb~%wlrszoh>2jItz)IaYq20{=1;p18@aan8kbJOnMsdBVq=gTW z44S<197<`7Lyt;)ip1loB;GQm0qs5slZOoYCV~XOQtP4fl^>?LJ)vK_oqq$f^2M5( zO+*?rHad4OMg<_)C{F93a;2rM_kcv+b2Bh{|4U*2R3CXh8n({_B2 zB-B;F6A`Gz3!?UNh{f2#%4yQ(s6Je73x5 zq;hOvm=vVU@Bj3eI8re@O_P-Ynd&$c0&0o4H3hIE5fCnb5mgLAg2C)VFRdDLLmE5j zN9Pp^jx3;>emL(Xc|#xh7C-j=+l?9QPGvwr9uZo9EQ52Il!Y^E96a`+-@u_G0$C82 zz1s^rV#nzS3VJw z#-m%V{r;IPd+1(akuH`#h|**Q^%9O6?r78@Q4t|S$p|*D_wSTfg9^1k24|RP_#2nH4EF*Dfa7JRYxQ%1pCWrIL6%9f{@#*yrETILrLuoruz&P#;}9salNd zT1}O-c;_QlDR3^A zZOvEkDpeFwV|>GeRvQDu8dbrV8d?X!lRBbtHS9_YvGP#Y*S8I@z@(vbDtgruk1NRB zvjdDIgEbcv6x^{~&+Gjy;LCc~vghOUf|0MK8zYl(Ysa_j4h+uY$5WqWzR5mm7F&k& z4JRo@6P`Bon3;?xxsFpOFHCMM{*Ycua9)2*v;>V`$7fth857OhNYZj!n~h7={2Tf> zbFOT4qmm&2w+G_pI~RCD#9HHceWiWUwJAo{ALIrUycr=6icDyg{}IsCgrE^GZ{dX% z>Lsn-b;sVQqCs#x7L_mLP{tjpRYEOqM`F;k?2RZjqCwyO4(&~&nz@a*xg`PK(fz#V z_}da6yQMg{Z5Y|^YpoZc!0&Dg`sA0#@ndG*3tU^n=i7i=6vXl0x=?yU?LER#6l}TYAu+V{{_zK6fskLKGCl-(!% zcnbTmPW<{UnvzuS`Fs%yl-a|t8-$(iU3-z!UFz%RXokUEf`M-NfZOM}qr1Cg?^zfa zzTJE9tH6y}sH-{I`>w!+%U1g<7a0`l`orQwUT!yt$n|Gv-3iWfe$Fg0p$Qg-Z@-ap z1eAd=&r;i0d;nW5ph7&gu5)4%^?kbpO8IS@I^ng6%lR*cKb;EmsFHJ+_hL>21cdUx zK>`(R ze^K+yf_)MIReplX>>oNlu-6%L2$l!^IhTD3hh?9xF$&WdRE+X_TrF&8tmTGM8-W); z5SsAkmXANA{&y9YS@*%;z62~>AOQAM&NFlJDx&+ZX@c2v!Vm8yP7>FE(bqtH{f@c| z@Iv-`zZ~uEc=|WFf3Mt`^Dn+fc7rH!(Vybdgm{a=(JmEb3@Gfq~?I z#P{?t1(J~%bnKRJ{5e@|?;N)5LY%z|Zup?k}_AcpV%Nf9nCudZ+Y z-mb<;;wjMLk$fd|op&g{Z_uB2Cq-b<$X5G*r3j|zNET_9M0tn*CbroB%ZecI(u%@o z;w!Eb(Z{JGF16gzJoylUKNoIawLuc(43vHPrus}F^CAp)8r!)_qeiRIqW?6u|3`{Y zwUihp8oJ5J$zTdPXj8R9x*|V(aK%~gzd5h^_UXM;U*xRU3fNf`k&)H3So6FjkVP|B zi+ie)g`Tk1VjRKo^LeF$o_n+nO z^9rip?=-eNd+BvP&3gmck0U5{tmG20SxAGHi?|MLS5Ly61ZCTezR?#ub%uEHyMv0w1m3&I1HXP8kiUu~xT z@|pdTY`*jd@4okQ90vRhFmWg=ivJ(5%{;8E`LcXi^?S&Kr}}&;lcxr=c6d~iW0<0z z;^yvQlfHqtf86lL+lVIQigV<+2|N3tkLfkYz~s(~@b>7WRfpJ}&Urnpaw2XLlQpIT z!eer2+5N)vLuGp0@kiI??hRQ=FrFUdnE|^4TP_~S=$JVHuD~MS_43GPgeb4UU?aYx z&8gVw?8@nvZ_jPca_A#?e-5&0&O)T0D5fQRaG_#SgE6MW@)LtFZDC5hBbN=sLKnxs zL_eGp98W4z2OQR_Hb(!RQht;pT-7Q0uz6Zr|MtzKzEW4yoN>qXFHtkIAd>zUH>0GK zA+v!GWt@FO1}QmJz1^1H-1wXbdhXqI$2|9lnuZTB#Grfr9-5D2my=i$q{HmYF1IWt zVOQHJ&z=`_1awil=4K?ujWJ`%?wM zw*h}tMO-`HZOZLm6#DbL?t3g_O*~uFFD?JmiNfST*x<7Xj(IcNTF<$a7Yxnki(cRU zTx^EuzPsGdtNk~>)0!uH^Wzt>FEb|$??x%EEA{8$Jpa>K% zGot&Rxr_A{?SPYH#u@ljVLdLgRo%gT6k?`-%B;s#mc30DZGvbdWADB3Q^$ zUoO~W^DEtFcB_=ethlKnb^t$+*wq4G%&%1bnP~Cyk}C$#wqt9hZADWC<#xH^KYN9G z9L6|c4HD4#)Q#OQAPi=4qn_P{>AYcnXE;;9X$@m$pjE%9Hb_FfD%Y}Ho>rKCQ^J?C zt?iXLgZ?>NG8IT~8Yy3;ARk1y8M-eqK7{&5qo}5!UH(dE0K&H~FCdezz!2y9Ns(f^ zG7ou(u<8Ds*~5i-qU|U{VMMWC{-@e?Ri9<_EHqX_ozaswj$Ow@x5-{Ojwq(mco!ea z*ERz$W`ZBUHyTL$9$GJ+W?69D*BdrDZ_q3_MEKg_`26k`b|=jF-B;c>;N6Fxeas88 ziUfMCs07T6@bG!N$38z-s%rbALi(2gMDMy@TifMCS^cJeo$jJd>1P>}l}#jr-A2A& zT$m$2TNE}JuMaLAN%|s@FoixR7JoP<0@1P_(iU5wX-2t<;De)DozgpMAr<~FmS-}j zy*^4-^Xr@)>EHhQ{Sh?I|NcZXuQw+iu0(_DiemweZ8>>pF=t8g3Xv82;YctUzT&sx zM;afgP3^fIXmW3(f!%k;E5RrN-)KpRM>X{`L2)sorPdZ5%K!n15=%5+m3c{9TAc?T zh}0WF!mzOZqPD@!NPv#bieZ9a`1e^%fL1a>Si;(%+wLrd{wuM^)rbYvaF8QAr-EC5 zWoKO|<=eoZr;6uw&tV>#7%QAG^(g$7fLL*87(lxp*b=<1@N_2@x!it<3Ds#TxScjh zhhhohCbUcXfNi0N3sp9u_ty(plGkYa1l2%;zxI>~jPqz*XTCC=z5{=K@f7>4yNcbl z@@1EU(TeYUYg%)SE$=5qbt^G?yLyhvuK-_XL%*w{n}uFZk{0j&n=YahgrsT61l`pA zR}5M_jzdmC4Rby}4(}$m)ud?(h8h-HRd2qvjm_QT#vj-cX@9zzul_KZP`T{rg$HKL z)6Dgq-MbwJ2o>?YalcGA*|uKl_`)DhghBOBU$i#Chkf-6^i@Bde+(af9M#92wj*)+NrLZTo=Fh(8y!fsleLXC+&aqUY8$fQ8 zbNqr|YVp(S^V6*N$2*U)m;E~b{_I`6t-OFt=%+P=$F|=*!x1-YL*OyN>m%IAv8H(; z?@fL?OHj+;p##m*;K$S2!mh8#i`=Ej-xEZV?P5eX`kg6hG{3e6F^U_%{6gAAVQRPM z{h*D10qMmduJX_p$#WU3&k-b`M#<*Q#ULJXfA-yGYsg+{h|J(SdEnjQK#0<1h~j>T z3i_4p9+dv<QL5DlE zg*z>ZK|Jkz&fJ~FBM6>`zwwSphzRwi2|Z|ycsv;KeIX)HE%Y5{ou)*JSS~iL%Hog>dvfagt|X*>sd9XLONKbcuKL%5<=6BsRKgF}mh5 znqEILNIWJ~JW|yzvP~_fwJb)RGp3m{l(mr8675y!?gr*GueONT5{(@dcN!`qxe{cW zh>V>DVl;ch?Cj!}%Q*T=XjSXrqbU#9#p5ea;~ZzG^Na|0+oC@#03%JdBVKk#Gzq^K zL-~x%AmD_}P4_i#j$dl7D{Wj$G$_0S)&N1&l7;;BZ`cdYD4Kk40%Md$f&X952r{3< zZ@r{GDKPGCHm!O%p9f7QLXe>xSYrb?>Qs{^A!Z1!V*uos^pJ55qI!x;VnHX-m&CD^ zw2IFJ5`ZVKC)0)Uf|*j**#Q&Wi1R@z;!C=J-bxvuc$y*Jk8RkPPw1FuLorX6Vp;}M zBO+4`Y10fJ3rz^g8zNG4{)7gvgXGG&!cIYKQAW@$wn{LGX%a3xIc?nA)yxt`GRd4U z$?S9mFiQa37<*j7JAz2@uz?O%#|A>8gDsNrNt4%EVTAQCUoNp-6pgBVivAF5YMXVw zapveWb)-G|jUeC+MU&OBC$$5FOc{buDN1X=EsB_=j_m*v&GU?cgpx%A0how#B|;%# zlPo@@$p}&wE{y0A#+rsLkPHJL&TusZ_~gOZ`t0lewNm_#UZVpcgVQ&O+o z$aa>mZG4m)TxBWEAp^LAQVVheBA`rJ0#src#ob2ma})=6H;4lXrfrN=#T4*l0OXU2 z!o~m_Z8+jEKdvG5`Eu%u>r@kH$t&&>W1kW$+LADR__zcn`2d%wg}9C@&%+*2;7;O} z&rd3+j$oorL*>%XCmPd1`B4;RAc%+nnotP+6=M&#f;@FCSeneWev-rw&;N=j_Zu!o z1jl7xm&XOiCm^ZsLhEZ8xG)g5)Rh~sW>yMW&%w0><_?7LnQ#J)0e(~-R*eYmUJy;~ zkvY#?;0b-gmGnK8Jk16&JVYmdr&+D5QVUAb!>i=$O&fxuJFaoNxZDaWoG=cO-{@-G zr>Rw3aREsni~H{J3WmGZ&_ol55r8U(@9(Z75?yINaeK%bQ)gA+W-V2Px$zRvWh`}< z;oXNS(osfP)PYWGLtNoI+%?w8ut*TQt1eGOgdFS^1#wz%b^f?cNiU zrD?b+Sr&6X9&-#r;aZn2OW7(((?pG){GRT}^;Q zS8hEv|8npX$RA;9(n9XxES#aNLidruGX4MrnU#clLO|f(arkF(!lb#Uy~#OZg`s-Y zbAGW6L)}Nn=X5bOf#qmKeU(`^hzlP7Ga5L{fKf}*n+2lt@8`+h{Wi)r(~D`Ab!vV} z*sSZz0iaeBui4hAu8)wvQF|t$MF#}|2l}gj@{=CO&MeWskq%Jkmj(C-=ppdV2{;&b87pN091U)n$RNWQ zZ$|(&!X8y$;ka3QyWZdEPepNLrQtXB^_WtBpGs1l?Xs+XQ%kxbi*rNEqn>SCa>>Nt zNw+Xp;IK+Sj?y^wEE86B+zs9SR)J|lOKH7R!nud?oL1mG99mOhFIg488q1{qcT$zN z&p4)!RJ)Jt_A_-r->r&}Z9zh&!ssXZ={4?Y0=mQ;_=x?^6qHtF?ex>_WbQ643?>mr z{E#Xxrb{GeMwmw4g~ey8!JR8~I?QT}tav7eX;w9778W%7^X3fmbPwk@$YX?0cnL-&msh44cx7~DUbDw_|D4qp zbmsj&$s}`|WGX}D`FA1smXgR|u}HlGh+K>gNbwjHiVs+fbzTgKyRRj)loqgrcII2^ z^k2zd%Dr8}JXEoco2QgnwhdUO%~^hBzFZ~K*Rwy9&#>~|eJ1MRN{cyZQrt|t`HHYZ z6n^VU%&i`3b>%bh*TjI8fY7hQU0+A5`3(aW#u!$oWmXejE>}3OR^HAPRj-!i{6Fly zXH*nhyEWR-piPq+kc>nnNmR0AMUdE{k~0!SvZy4oEHM`^U{Eh{6sx#j zFFh9h&7;W4>+)M5`L}>}NPo_6(VO4mmiVm6OF&&JgU&Kr(-NlT@A$@$txNhjZ||}nl~$YI*ZSem*tC>4V#wVC9j$`t-hpMwG0;KzFD;uUE2y; zv2$6opYy+%{p~Qf=E5;+LcK0Cxa!HVF72|eki1TDwic+vudJ96M7# z&i1U%W{c(a+~Ce+(atIdeUZ!VX4CE%)6VwIE;3oFn%Z|?XYa&i?<{%mf|?-2^4IsB z8dUL2hX@k1w|7SgiLQ%;49(mvLE@z#VM9o4nqRmy`}f55yRMOhCHtg9`{Y*pG|l_8 zG)Q{ggZp9!#8wA%t_Q422W+T=M>K~VoQEvyLJps%918F4i-jDBh#iUV z9llUHlGHttnLm&&IZ{kP9l?i=*Sw`A zGiH=>ViqE|+jL@yI=O%7BfPs}t$X^}^>i!F`z;xkBPZmmtG6@FSqSpfi}TD6e&%U) z=HqteTXN=BYMw+h%_bz|pU;RK`jW%D8rCg8iT~7{OPtRX3p{`d#E^~j(f!-V|qmFj0j)nGa zR5?-m_$Ud~&6yYqbux5wk%BtjL!Hi}uK(ZL_^hDI)N>~whzh`r0BLz5ynQ{qd=Nna ze!+p>5#eE>AyKgj@&3utagjhSI4LVJGbS}JJ3qZ3x3Hr8TUm8!ZB9*nT}fk0b6fHE zqRz^O_O7a?j_!fJp27asAEP6~Lq8{HrhDhcr^e=gFa8W#kJ|9w3g6k=+}}RfJwhIy z9iN|GTwkG1(07T}LugyvA=r$eZ`Heu zhQ*N^;f(!(QMR(ZQ;3{FXHnOaOwu=N@YLrK^xAc=-@ne5c17n3KOD{}2(BR$e8*d$ zSe(@2Lb&zqky?dLmymKm^!8NghrTuo%2W24TKm1tsQL+x`DPbz4yLeL=}a2}|50&5 z?7l%==pmsC+f?cAzOYNaL1FTbD+4JkA4q27DvW-lN;|0p#UE`97s$1D_(y+cnyDdQ zD=w<%-J|LAdq{w)|CY0f}QJ*Hz%`9a{lCkCmMb4Hh*n6KUnX` zVJc}7xjbE)?ecAQX}Z2RTUqm+e`|sIS#vYMsON@(r$VcK7u|Hh1M)am&l6Yn;iA{Q zTZLRQ+ts@8$(-A?A;fjocdEdbTK!YAv$L&Wc}ECadV z_sd~2j8poqt=FeS5o&_xQE%X^WJVEcI(b=9S}Ge4qx3|{S0fFgU#`X}XU7@E80Ocm z#2DB07$<&c^D|DeSbDjZ;BZj8miXm@oH^BYTHQ3oYf~^c&7b;$DZ@jkjyXM)k>Y(u ztWJJjR-(!#OIE5V1>mY1ExVZ)o*n-_CnLXZBPYAA*Q~Ih&EKr3Xi0Xfp!T3{tFZcl zf~~ZCTEo2L`=$`8u&h^EZ6#Xv#clPj%7>l56>@KL!3#c*c59ZSKkU}7XBX_&y?!Z^ z;(}~?wD)y?^y!|<$!fq})A50mRWk_nsI&=cw(?H82;uUsdrYx&WzCNtvGw)Q_wDxcOqc_fW^09qgTg>Ac<9#B zZ20-awrx2le}UboJj2e>2%LfPQ=hUbAdt&#hUW! zugjjMyZBegdTd?c{brgH=YxLAdEtXWY5eP>J~>^H<00LWuP47W=S5EDd|hoxu^zL? zWRZ%_MO+A$>H1xIx8S>79f9AX6i-X6fCzM0g4zM$q=N3sw4hTU-5~O*=%n2(cc>Mu zVa}--V19{qKp>Z-UvH65rUs93*As!QkHOt70SktEQs2|Zl*^SQ%tm^#c`ahA3Opl? z5B1@%)W?1m`;2;*%SYf!|L#s@Eps0J$HR{*Fr&$5m4Zk=cwqXy9GMPQjeQ^&e3MR6 zANBN!`(D5dkuF*5StECRS)l1XLy8_iA-8-#$i&W&YO$tMaJnqmKGKkSBezTRU_a#O zK#3IXUTr7&!Pl2;@90S#x?em#2n!B;@PLV>M^^bDJi7k@BY$m&qT@kCDoz%&^vho5 z_=Ct7n(3^cx}VeWmHCL8XR)c0%W0s8MOAsNuz&FD(>XYZsmICY@ICJ}s5^+QILhJ* zij&tPB#NtjXUvn9*U#&)Z_|(mBMd|IS~?ykEZoX1yd1QRf10ZUDjcbJ4dM|@+Mx8xbJ6ZEqBv#FhF$Y7?>C! z5Qq)<0gc}c!~oqzx&05qMR-JHRCG*iTzo=e(*K=sQBzy@H{qhK{d-4eS9ecuU;hB0 zkTU{kn*UdYoZriU3+4L8<`$r74!BVM+l2D!`UV98L#br`!-Vp`!gqgbn*Xhk^KVV_ ze=FpC-2Bx8@GWl9yZf@0xg!}e5v+KIWXZxy4=9}HX*wpq ze3&0>tUujbXb+%KYHBz?T>nv^JJi&8d5Zkq2Pot;U0(-|PaYFL(x{}Hhv>gazf#1HOX3PvSrpg^@fqa|mJbt3A8<`(P#W%8IjWv`LJgoCKa#DR*H*+(i%{BoO z%IUz615-8s0X6=C zfoV74Y)e-x-DW|7*y;Rmkb!aNG~j z!^t4)lIeULzaMBS5AZFzJNfGNgRBEHsMch9h2Af^Q;o6GlQzX8Rqrg`?`n4W%Pp~JZ0z-*ozK+_z6?<`l8XkX?$*gc| zLOB{;cl-8{CvPJABYyfQTVNnh@k{TImx1(t?1=_?61^L5Z4!gzts8lpiHVE_$Dp_RyX^VE!3{vOA z>n+0koOq50YJ=5Q0=$Rl?FmUT$Ug#`&`UKcf+^dQL$RfDCFsoERAeD1u$WKgSVK?{ zvy3=Q7%1&=hN};};4TBqYD_V?*?-uM-0@^?OV^vxn6Mm?R$)e`gBs7wU8q=RT^CvV zVpsVPoCdUt6x+u1{aRIFE*k_i&2!{tH#JV{CI^Z?SNF~C(qj|`%M^bRoE!rOoi?m{ z$GHn6=sZ{*hb~#{VdG}bNW4jdm}o>gyF+Fq#uhN0XZP@nKS+#x16e*VzPDIbm92jO6=a1}Dfafc|>AtyE-kik4jZeCuuy$xKE)A({7ZoH)FpL5MpIuRSRLXaz;cBI7jN`R+y^2o5 zH-|4M8VULyf8q{mmS255Z>FtA-QkzEum2=xu+1{KB5_ULL_13zW>{QNbWpe^dU-zN zrto0(J{LtXaOeTd5Sl*ul!o>B0>~r;8silL$$1-eHJh zV-5N-AFJDVn!#1ql8QGa^7h|(Hw@bU%>I0AQ=|7`B)Ccm4nNNS)Oeq!tD*^H&jrdy zu|X6AHpEnrX!o2!x)p>oLY>-?T4Z71s`y?xoN*57NZ2gGo!X70Q=- zQd=LPO8ur5TI54itlGHhKmAI= zCed{Xf(z~a^B`gj2I``Ur_>2y9}{0`bG2cciGvA$jDLS1hS$N%eTbLE2j=N+L43PF z##Wcy&0BHD=2}31cbVuaRoZ&@g%;R|G<{WC31_T%IiKN4<6Tslgli7<@dkNkDd}F_ zWS8Q}YI4K2sZ#y)#NbI){q>G@h?6~n?X+&@de?rae(p3mrQ%S8PRr`W5b>LIlqV{Q z>q~K0H|Cq;cKps?RCV$T0o)Er*8|05!Ey=wY+o@BjcF63dC$@t&3o| zBBd!4PcLz?KGJCyGWkjs?F{wB^LgkN{uW#vLzZu3b;6Iwau*YFh9;c)_4+Oem$ggd z_*daj{YmIqe6obrQWOFHg9~6in&*p{l$o=^lo9-dix04CECV?*2Orc_zEY z&t4zgRn!r<3MP7daLm1GVv=rLN+v5!CK$&ZA5DGC{EiO~Iyv4$s9)E3@i6;dqNy7S zkO{Upy5y2lmE!3|*}LhJ4SxdzsN9O4z0bZIP)+1*?-v{E7hmJIuJ4x!Axb90N-pek%P^!`wbz$>mHPg^I$eByVN z?bHkr)?C%6obc^gC-O-{jH9bFjO$XK2HvAX=lG~nr2>|V@t<6Wg+frIH3F{F`YNo< zkghLAiwNw82L5IYHeR7aPlRX9!}Lg6gV%jd&Q& z!otIi#2u-!0J-_x7vvp24$sk}eHd+?FXbkr{@9T$3;8vGRMUwPQ@j^e;Rupm+lv&Nej8p6~9wu;K2pXt!3MIK}a$jA8@Fo68g?# z0j+A%yxf6*OZk&FJl<gr06g1ZTMGD+3gnQF!DPs~bE zyFsuvmG(m-%{ncO-t0czCVssDfz4TLfR;VCusR6>HNCcdi`BhHuVp zsTGS!&c`nhm3S;ijhq&c)v;dgK3{e&C>Q~~xAZ(EQrs}04su`$c>n?7BQZM3m5hw? zmRdg6y*KhH)juoMDPXji^|`B&&=d{|?2J)lXp9A>viP|g_^M3mO`8GT zLbSu#4&8!~Vn_Ttk`{CRSnB?`-=^#YeZLxe2Qom5O{+nRNSdFr3?AYPHX4|F@4!q8 zpo>z6_zOHOW;>xA4<8dqzGO%>v5fa+FuP5Fkdf~L?vdBmNK4j`ye^JR zsD*=T3*zrZ7u1UF*VfY3T`jO=V%Oy+)a7e31l89)dsZQ3TUR`TCrV#maYs!}n_It`7_i*!b6#W)T++y!6E=ipEOH0=V0! z=?{%P1eTzalGRC~{_4QmV{{eqrb1}bBU_cxXy>Q)-7>GOYQo`1AI4|I0*|P ze<41Y;4X3!p3F!qOwBLWfjP(=70;4cCI$*Y6;cjbnIHpOe~tIRAbi6d)TZW zuh;UZn~ku$AEfRXiq=i~J=mE!whyN~t2suP?NxtAj~gXAsYad@hIa!_;}oEoQ(a~R zCX)Z2uf=|^_k%*0ooWqEHbq~zvh%a|J$1s&eySOrDiOTax=q5+uB$#;Wfh(A{w|oI z*Ft+DT*m{+xS!uY>8xml-qr%Mn(9YAxID5v`O=%sWgA+EZFM%FNMGDTJCFmjOq3cF zXd4LhqqJ=3?9gk@sJ9A*g4PNLrAE8R0%2F?At2m`;de2=I%B$MVXFlu)ntFdVyp3J zFoW)VeYKfU&Q(juq&drEfj--PH|fFl6eegDy!;Yp_ZJpA|97p>mLuWO-({^5r1}mC zH6o$S3TxjNxO-atHd{4IUQgBM2ipRh&mjCj$8 zqEG!?)*rLIkM&?3?8IC0=qtT;Dr%_OdJ@?>>CT=j+=;0L2fN^6X@~aI(zg4;r$X52 zl@=yrhsTn%84~NABSj#iBo$3SB`7W{*&W>%Nayq*n$+3pE^%K@_F=p5oVvt-KtgnZz4kt(H@OK zvp!euAU$W$$*+$==4qb>mbLK&uh9(dcfKEO^b~g|x}2MV>7P1`S4I0$JIx-J1uz!Q z7rB}BeSk`=q06Z*WDRquY}4sV>*Z&m-Iy-aq|U{{tVPe9h705O8Vr9c(AX8JL{Zg} z4MP2kj7cdcWM4piG@3ZeQ8uMf{tP#hh#AO7Rs)tG!|r~o>nr;5@(vc4h0;(=|AqEF z8Rv3Yr^nO`bnxXO+D8$j0mY?FNKC5^p_u`K2<1VjjL5HKam)uZSO_ZpvBn~UVtNha zN(F4ROtSndN}g$fab5MwTgS~ ze*F>+TB3Z4QNZQ>{2c8WzXAWwnw|2mr)%Gb^KsZ8jpw~xO)h496}U#FGE2CLofqi6 zwzJ4^LPL?f`S!8@K!Uk22>r$6I*%{JEg&)bX?IN%b_c?>$JqIs4&-qumJ4nazst7R zQtx$Acb!4Pm?HGj4rTIO(2Ly!;>>~LN?9v-vpyqAqYAQp_yTh}b{7wvl%xpdgX~d9 z%%4!Rj;m9nC+}%`?B2K#RU!5=^)`Z$^UjZL&|JC38USOnZ7(z=9w#ZG*nZe)Y&mUD z#H)SV!2NuSecBLC7!6Jn#X)czCJhBni#j=#)d4Ygu#F`V``&?5nqdGMpf(Ci9FL?7 zJrqS9id#K-LIVhzGw$McN$qjK5{~4DUfE0^g;*aA92~(pAOFxfek)n3ru4YF>DW{9 zSVswRhvsC$U}XsXB-ZWlUGqs?`ms6c#G2-`HnhT4_jK*v;pdc7$L3S#`BN9vsT<9i zhuE2y?wOA(>I{)`=HGl4h#yZKavH?Rn@fEjDWr!6OH(oZOE?a1>+QhED>t1!z z2qd^($r)VsrqJ}yU(vfyv2$AtH!}@co!f<9e$^kD{e1mX>_>aSjKf6L;-2JV}~)5M6)*ssg;X1=6Gx};G%^YjnP|1^rx+kH(joxQQ8_v&0*0(zq{Ic-ngd`55oduW>d)L(y} zW(L3a??zWLu74W;a|XaZ!|&_=*7EnCR!m1UM05W!T@K|_0x zCFSJp|8--N{?84yI{Q~oj_}(ly#Yp>zlnj=1HWzl?B5O|M)JZmaU`P7jhyJ?kW`qxt3Fz<@<95ui&;Q&P;LzT|-@~Rb-OkJ^?5}Zl=E?qQ zpBG2H;yvG)7yE189&ufZKX1n8Zyc6xFAqheO2DrQBMslj)H^9QC(5rm$1v=P`2JYxG1+68TOx}D<9|30I!E?St z!+1MaF)8r$%??Tu_%}-icIIy^;;-;-XGzoe*DU~^5wy#HF7LL(?Y1Y+@XyhI9YS9@ z*|BRRhyK;)f7@C6=QJUt^m*6Ze;yvL@GITX+qr^)g(_jcUDA>V zrvIGGJL2k_`00m|>$R}kCoL%b8e0Bsbm5;z@tnuhxlU>ZU9ES2OSb8}=2g0G+BCYHmiMw9l;(Zay$Igu555 z0K&tA3*zPp(;?J%2dl^|df(NErSriuo22u__9%}RmZ1vQeW*eePXFXZA!OmUTEUQ` z?b}2L$&*{HvHz%6XtOf_suliVU!8UaehM#GRwCb&zsWFn9Dx4|`}*VO`+hYJz`ht= zYXr&StT~Eb5`VV66&phvuwH)bC^X8H{0I9Az5mKT&5JRAJw4DPD~mgXueUoY9WI-Z z8Ec&XCb4{YY9x6`d@9z`cEgy3K1Z_sJ$>G4)rGL!vaN04JTfB?Mypwz!*o5Y;!<&10uQZ```(t|i(Iz$H%DH(%M z48$~r`e0P%EjJop>Kr7u%EPEm@~QIRvlh5Q7Wfo!B4j zQLh~KKPSB=9z4Pc!m0G%?%`omB)f**}8s&ij&&{)qpe2N8lj2%33AuO5Y*k#E;=n(*a!C`eakZ>p3g1z<@y;5%g570nJ$&%^E!eEZ{LsjDvj3QG<{sXO}C2@r$v}v ziW$JZPW24`I_M>ekV6_K>;!@%b~i0Ym6&qe(!OQlkM4&MoA(}k2t(2!kHbIUQiEtwoKJ@Td9 z2O^%r&udmE`^_|-sB|>kVqXej4Ugr=w7x^7ZMuzOxe~p^*C^|I20x3Y$L!kOu{t3G zurDIkp@tmM)1D!hQS`V5w;Zv%vT#>tK!jC9N|Ly2*h6Scx|dD;d2>MNGQSpz`k(b`0;5JhOGu=a2=bOFkW1!Ik=OseX)~s(*UPJRVf`wF3S(~pbG_YfW`(3h;o0_qJ*qFw1 zaVdokFTU?8vW3UbEbez`KEp`A zXVHtc{C0iwtOu0pg(@lqK?COI9{H1ljwcnVxJ9PYa?_*nCzZJhMP{mf)8lm~-%5ju z%uVEGrl(J;Y6gldzw`mv*GY8?Zn3qm+^;2oy4J1m7xpD|T08tdu`kEd`UTt)`!2b; zgLnY@QYdkp=$kvKJ8eV;l{l}-&0kEPHk}QWxByyXHy5YPAiPqyyYdU@lxHmv#ZnK_ z{)IbF&st%@r6?~Z`9-Ma*&lld{{BTgr?YliyfTEe{1Rcp*>`5eGJn&WUKJEVt`@*YC zz5BmlU)lTv8;XxG3{n+?XeDvum8EfbvtJzNsYjTplsJy1-vQ<6vTvykY5c7D{Ha)f z)=cNe#dsZFRmm6aEgjO!i7LgaGIx}Sxjs$8WWP&QMTUZf5rfmzxXnvC(Y^k zV!o=buRFFM5`L}m@mG&DT7L4apIHd5u9;=GvLAXnduI8iX@0=c<;UgR1zt__srH@= z>DBy+VofWWsI@yy;sTCqO*@04jW>hyB8jhkCsWhDkCWCCO^HCKw2O_S)5UUU)S}Vb z!GpXi;Q~(G+CCG!kMVsCs{+lngNB126HbNK#O7;we_meae>um}|{-;~9gW3ciSJ>CV?pbm4t24`|#r6|0|aAN*WVEwW>!TR*dg_oc3{ zao4`Ne(v|+m-~xt{fMEfm8Z>T!>TSv31Zi4a;S^3uBPLPq3a!|=8J_1m$Q1Yo4o+k z)v|Q+`H!KS%-7pYtcVgXe zYTWSD++ewG1e4B*s_rEA?tnW4MU6Yvq&xMQJ1v<9y@1C9H4jF6587xI<{A&SNe_-Q z4=ys##{!-_YMy-do&vEbPoWx5;Ym-nG!IcSFG&Hf=W1Rr?7d`Sy<}^=aYY>5xh~P8CkKewb0)CNde$oG6 zUx|}`$!C74Wd7*_{)4oBnfCs{HrlHUtX!5B=dMXAsd06>yFrj+bui;RC+F+8}utAti&H~9scNqOkXbDj`!xZGi zK0F|l^*R>{$_wXmfU+EfbE`*Whf4FsMO-XFF#NDY@*>3Z?$<1YNvKB_mQt|1kA%Kw z!Pq~>5_*k2&x#xMK_B_n{5PS zE@SgdMOWLu@eGYju!-7dj3Id$Sq0;D&Wmx2!_xW@Xxf3_B=Knx z@HC3)H0p~q+B$!He*{B*Q0PO5k~&V+LF6)7Izo-@;b!`PX>u!w6q6N|5l@zpVNJn8 z7$=bL=Us_Qb&>I0BU4@`qaie1%P3P`79pe&gd-HEu<4ganDsh8@WL?s%~bO9v8)h> ztdMoeDsBqi19JWMm>R6uGSF;yH4H61jJEwpQa{7JTjD&eIj?I(?1dnXy&}%6S>_tP zDhuGH4Y0~ECW|sSj6B-vT-gWy5|HZ3^9pjWLud_yd68(IfcvJNEc#OXWGsy$TrdMF znkgjwK_kz%hTMNM1lxeJt}KMC7CR3bs6-LippOa24U*A9c=fWh)%p3a z*3o%~L-KxvndzK(NooL%ZLx46{1cq?HK9NAKrn zR=23HJjXhNmL_~IZIUe`ODNMZEz^O5pndFt*5F`TzdP^PVTWZDPVO~}^xy(4IBj+c zSJ~8i)oAfB=7jS4?lOV;3gG}FAeD70FL!iE99d*LnJ=QnPfif$KMw?HB~UBSds zp{)5$B|!hZ5Ekoc#cHSot8}8OoC6klX1sN}Mt#~yTva~2M4h}UsPkK{M}iGjb%l7f zrIYb9*>90=tLBF>*`2Bljaf9v3k@CRy<;oYyA$}GQ1SWt7*_eI+TygIYcp~|p_te; zF?_im*14Y0)KZv&X&&}XUUh7}3A;yLd@op74-5z8l!OXLi-!udN3OQAc9qs-IlWuz zg&JyL6m1r~EiLMWmF2a7QXgSohu6R96b-z@0z}kk#KC04BGar5XQo)`h61yjAQ0>u z4l#~+Rzr|6rpN+1xj5LiWT*vg@%EZl=- z6tz`};+SBlH?7qd%=S_8_=(}o5S^H|zAV&5U(R@&+AJKJ2ZA?BT!yWuCS5|P2;q>q z52>n!2F>-gMCP(8g%I{Y7*|8*M->bex9`0RBsFQ24$kVugxwy<>M(d$6jxWgUfbt> zL#|S@gtBju1rQrHdhsn>|6d52!eCJ%eq?)+<1a|cm1ux)Z)TyUk5;b(g59M7FTb!; zZZo_A79A1T`#tJgSWCkWtal&zO<%r`V5+q#QM0Zex5XJRhpHbxx~Ct+6vNd=AR#^| z?9kib-Y$&&vk)>7*sqA_K7Q3deT5oWaMtkBN@#}-WLs14S@$opX&FDlc1##3T^Mk# zAJk+Xn$R0Oa#lm)LvVUNWU@63vQP?Q6Epfa zOz?GtOhg0y8tbNZB;1XCGjW8;=R52g)@%2Wj(zlX>}Xag1$EJA@i&Y)y&(~aA6(b! zoVdh`AFyGDKkST0Ecxmi%UV3-aUM24Y?G*}a{7_z)%AQp;cd&P{Qc+47ia*$@wNps z0S#068v8XHo4Cl&?KYNG);52k!ExAl(C|-UeHKw|th&~50}-*Dty&6LL(HeK#@Y$J zrv$p!_;8$Zr2?9dK{CaQ;8AQ;+_C0liW>N$AP;x6S(C0LFv(!*bun*flT~B2WZFbp z>C}v1`ANWgvqs~`?^-4#TSY^Euq{qW%0e*iy&?ur$3L7Z)}Cr9CodFX?2PM;koV?Kp^mv5SLGW)zclG5T1#j4seY-H4zF>~-|?K!Z(#w=5p0Qs z-htLmTTtR}hq|xMM3BujY7w3EcWHwbZ@w;)aojt>W#~;>oLgC#ntqS{rvGJeuipY&P?RL$$&%8Yr6)c- z_jhq$aNx)E6LAdwp7xq%l%ZZI?pn}rp-DFAn@%0$ zSzI}Wtt22hEL~RNVJmjYzQgQq6kOWA;ORaaB!oR#ef=%Ofo+}2c%A6ZTIoWin>>%d zVv0YqVIschD<1jBCg?gVIll{Dv)u+l56sb$M`XShWl7Q?{3L`L7g2maW)mIwEFwG% zcGB78prexU%N^X@h~wH)P20jX!_Oet;t56T)d0IHYy}#QzCLc4eY6!y$<(!r8@Rj0 ziAJgdDjee|(_DGdkcL|ALw2rdg5QR2cH^xNC_><=)0xzGb^DK8lX0hZo3w@tee>~N zg+_JW--~yfA~G*B*4fp6H31X{6+N0t6s5XTvd6qX#|Qtl;g&mjGlt~K<@mUxeyw(} zD133d1v6Z+=0)i)em&7)A7=ao+LV9Nm}v8a_F_X5w!pJp@_9#!eRMDXymXJCCi8oZc}~1MM1NO)zZ^c zA}6tJ|M+is&rldMuwPPK+@(#^c6;}DP)ddRnD$hQ3$U$VT+oGPqxa?OM0SXJkVvTo zPMrJH+SAq`x3h@_3T;>+Ar2_XKkwBZwz=-Eq#Hqy*BQMvu7GFW+DuK2#4*AR%%@K& zr3bF}M=PK_1;Nguv-ZD?U^ZDb#r0nO%)o87-3yt=zAp|L55cc;!OEAzI}d2O!k$iS zLj#FlQI?Le+vEY?;k65k{PfUfX$xbo(GIM(EB+7e5dRxlAzj7qNqKcmxK?e=TM=Gb zUQz9a7{QM2o+uSjJ`_2xR6U5^zpFPxikF6$oQH38VsYuevlU{$hjM$eA0DWBj*57U zA916bYWYH4=k6pWp<>LIwZHRv1t0mO*PEFBn(P4gAek7~+vU+k9U3RKzWa_`us~87{NYxxmN!XNw`?8moq(&k6a`ys9idFDuHieomuRfOd`eSfiC{MM@d} zaff)R(=f+t^ipb8s!Xhw(0cc1IcJyFjg?!n z!g?Bb6;-33P8t0G8KiXj(%xk06wrb3TpjF}Tt{nPXH zFr+Z>^5XwuD?t6?Kv$${LB1@NiKYID8hBZp2J!8F4H)ihde)!l*o*4^;+H+`<#0I9 zCugsOYeK||2v^tGUw^*POz@4Q^p^>Rz6h-3Q{yhGoL(*1Yq~lq$cQ2*CgEf|yVFx( zRb{^czSl0lwRg)_;C9n1woQ=WBd6?XvB#w^X4^&2+1Fy|I$(Wz5hd)Wc=&nWqY)E~ zP*noJKE9vWw|-zyj=~ylSmdq#AwSkAMEfR@nN8%xr#JxY8&(HVnq6Jz97+#n7mI z3a}M)*cY=7*a!mr#P^e2db#j=d-Pd&!ic{l7@Vm^8`^V{iq^nA=ZC$D&u;l;b&p%n z0b!czyqlg{xG15Myu_>DBlsmBc()C{zX@~49&!%7r}phD^(|XLmzw)w(h^`p8I!I# z^V_CRgWF-B={m6)saH4uE94JZVZM7ff#;{^!iS-Pu*8ja$qw2#puHwTNpY{k7DEh5 z^WXO5>k?}>U4YgY+;J}b`<2Y7H>*T3RU{bX*3cXP#rN$+0E3{0dJOdK3ZqD-32kFc@dEm3)!=o}3If*L~BB6>9P{iUvI{F7fb>pj);= zIj`dnj4!nMPm|Wa-%+A6Dk0gB=&K}UYOIGNq04d{y!&I0hiL21E z)CN0Z*UwfM(>(g&7{f%3l~9M$cdgn0SphX!*!xInMC#n!hKRU~_88;_li(o=iAv4z z;hFFwZ!`G9^BS9NQy}`IF~C;n&k;_~8&awH_~@7d8_Yw{>vGFh_&IiC9TPbDK$@xO zok^FM;ZXe5HscYGl*ALEXqE7`j5xVm8Fs!=`HnIIEVbvdHd+0BnRaM*a(`mMxZ$9h z)T{cnlrR-NLZ^jDt22e|0DAK#;*aF5N#{UV9WVh0M1JHTo+${xiDe`joUmdXWKF=Z4q zvHEP#z7+=TC>zPmoVcrSCw&UkHBO*WRF&e~_@*>UQGEx%W<(!uU2}YdCTtlbZ(VwGb{J zrv?(XyGb4zp5H}L(z)%V)U;?J zGj)0mSn33A47I`E%42Z5aqk%Sv(XCYR3z zk5DNeIdB2aA^KJ3MR<1gRS|tvbt8`a650v=k*mE?F5w*tXPe`~Ur*~!@ADgu=cW2A zBJSxwN9_`7veF;R$Te~jJQW$pt+@)W`HugI%btRHP6J0q6HhyqRqYBc+TF{Lm824= zbhZ4jaYhGyz^Gk*na!4v-y?keg|t2UlrN;Mfm1@U!ri0tge2jdR({>z!sK1|A%+OG z8YUl?le!rZam*C2yns)T%TN)LL!m0>Ok2ygZsF~ubG)*~)iC#$k+8wf+p|EzmWEig z;|x9C$9W1YAe+A8Ot&+%he z_n<0nPFt#lLFNPwl2>0D8TW#BEI^n~Mzo1yv740Maa?a|LX~+KOKH8}77|)39vF&x79WzquJF4LCa-f*#@9e)In|j znseec1Ud1f;x)Mu1K8=sgSY99SE}xX$NG~IL#6 z=&Uz}?6PD&cBU$toqVfDkdMrG#W4^j8L!k9v@+EP{D2^tiZ3G8)zjXETptE2_w7c~ zwmpD^MtQr@$tyf}-%j=O12VR`EOo84a%udWVY2IojNWv-P1Zv9Cn*e$utkvQO!T}C z>k#rc7PS)(CBz}2KdH13s`GYoDF||Hfxu#M@a1bS4{;2j*nN6|Kc~&_vmvJIAsR;u znA-P447YGwC9W{QkQw$*DMe@zeoit8T#pTQZv~5pg8{jWGijpC-~7Aw{-9E~@7*Z-nBMt^<$QAwyUU-5Wk}u)=fWMgsXets%K&j!Nfv z#`mJ%Ik20VlE>VmlJ~>Y$s@*6kG3X{2}RnU+d!1bu&h|HOR}RJ@*cvBAR;Uzb}TVI zKck7NqxtW#ilI3YXNCVfhRQs#a&wO*%3=?G85^5t`Nhj9jzv7_JT6lzDz(-xLp}a{ zBF5rwM3^4tGkW3}mZu(7+UZzC*_rr0apWcMBXIIE2^i7AJ=Q0WRa)5ammq}J zNn7G4vl`R59XVOn607n`e8kFjNT!~bLzsv6UTbPO@zOgkt&{sPn!Y1aC(AC zclR*))g7#@{AT&hw z`m%|=riMF&Ij^R3oU^iuxDqr3APk$3r)GG$FCiZB5IPFHU!$1HuSD`UAOZ1Eis}0> zYslVyc91o=s6$@xNv!8)PUf^?_;79p6iNun&4oh6?xj;)WJ;Hb_`uQ$NK$-5(enhc zih8lz4V*x31@GgrV!r1QrTQfHLY@7w&R5bsLko*u?aYQ`Uc0SZvzsNhaz)Kue))xs)sVF?CE5m!IBdTA9KtA)J zEzoKe@y*AIsWWh8d~!r+dq!C5LtA#LPeh0WY0(xI{Xgv8WmnXF-}n6?of*2jJEa?> z1q1~JX{1|36ltUxx{+q+?oNm9l-n&B7}3NnMuvrzt$O#wOYFi}mPExuMe4!H&wlE~VaIRBhux$O{Ap#%NE+ zc^DzNf$DEm!$2}Ea!_b}Q)Pq0Vq-vZ>4`hJL^WafB_Y1YH#;*Z$s#w2W*u>UqYWy+ zJl3u1LTHk%)O^3Om?P6kA6pC1PzbBkEJgY5-jAMZPvbxDcW49zjm?*%n>=ig!(bW>g>&KKfA@4=-YRg;hS zg+F3#Pyl#6PlImT3hIOvJ=sP}BIyVy)O!>>Hc;BvK9*>t#?HcfGNHXICSd&5=qCXZ zwO8$Xi)7pKnD(tb?yX{XK?35OG^#&^g?wVo1_MGJVfG+V#{7=!3E{p^Vgapvu@VDf zC}sRR{7t2a`Ma8UU;u-B?^dB?Hq6gsMU%nlM~! z(xc}&4uN5U(x{b71iI%fzA=5}Vp`dugZ-Sil05xOuz?gui%g6#Cwr=|+kKEql1}+v ze+F<-ONo6dX!+pjdfM<$PHJI$T+-8S>vN3JIh0XVLfhQRKF!e!gRx}U2#Ikl_bpjF zyRpZIvE*33XoA)bj(maB7#7{eXA>$u^ke9kBYw>Apx{iaL0BstXB7Ek;(e~Y=GCS zCaKbXpXV#N=@^~4NUZ7CUEVzBv)UvCNAz6n0JPxr*)ra_sNeJXA>|CffE++hI90d0 zY^9`5a-)sSXT!8q%!TShf0X^|cu9iP=hH40iw%z6h7L%nRD$fkAf$K9A%ug8k`x9n{%o|NJB?ZfiZ7W#F z%hc7OI$mG)MpiDkXqTy$g(f20d$E@4V3)sFy%L}gjzbKu+a#+(xk3gq+{muqr+8qk z{SeDQWDhi<5);y#c7p&)ELQ*XqgCHhWJ3b`m6&rgK8 z2R2xYHiaSyo|r_8;fhqe_qpJk=cDWEfQ?~otcIBVl+qX!ZvXil@q>no#3ITd&Ju3Z zqVVGkxgQHh*946^B(}|?;nyJ{+lBJ;wcfaZJ>GgZ=Z053}FyEg{Pj{X~BQ~UQStIA5R#=Oht@dm9aB`*(z<9Vo= z&+XL=GufEGU%p~n;Q2&aKF@)8OdBB;Ap6wUfo5Weq^=PfFn7BBwu0>a_v@hJ&t}`( zRsO1ryZ)`}%Omeq!5`20CvM(;KAk~64IYD;yqkD90;af5m2%O#t=i>OB&BBFrQo|x z`u%D>IfqF9>X82xIpu~-rh&}+_~7ME zXily4tv>nJ%vU}Bu;K60hNN3XNrATl0;fW4SAeqT19B&YPk~O8N!X@nE5LXGZxhEK zBdEg<7vBS=PS!P+1Qpiq1`r~cl%OQymvt>bXjpheB%huy zX2&9QfC;xhz!Q^EbNrnIYZRPTZ^?QHn!v3s68f3YDfhqBA@=w>3srEa$47L@YCH3k66i6;z|<0Z+fA8mcmyMqa06bEeFP9m& z_U3A=gt;&ATofcI*gZGiP}OR!lX+!6SIdkcS=i0nM*^TkSgmgC!{PDXh>h)E7u#y% zdTOQ`L0OvjVT_vEIM3Le^tmwbXJ~xYk~{tBM=r)!^xvAW(z`PJBZ6hK7|!`%e+X4- zFlFEw?T@msZ#q%MAyBN&iujiZ#>h2eaGl8T1i4a<4KUuL8C8gxK*OLZHuE#4OGhq7 zNOC-w?1@3*-xJ%daNYO2A-Mf&P9{v)ytTRM(3pX27rSQs3>@X@@o;^>XK0APrz^6z z*`WwtCMOzsH=l)%R1C{Vkgq=`ytW(Qg9aGJ9n6i%){;-+zNv#?0yM{gX?eZu`=zxr zwsxYq8IyAKRkSmKG8#X{hzlC<&2$;zuZ(1^tN!+76o6~d9Z>smy zIqt+1M))$8Od?104ZiGyZY3hDm0~mIMF~Cb`53TP+@aVm`ql-ZkOHjNvi1W!eVpgR z0z*GcweZAVcN3?TUNgkMPWS(mA5Ua(&cyPfrw1pJ(d!>xrX|395Tj-K7V^X8O!Vo{ zGplU#Scd1x&iRTJif1(;frpEX1hyYT`ZWLIWoAc`vE;U=UuL&&gv1hozpGiT)Q(FI z3_I1z2l~zW`;g5=VQkB&3wiP?Be=M1anW$*-flT%i^S< zo&C|?4(e?Z?zCnO-{=10%Y03fgBV`fG4Sf7RBvQ?IH52a0Dk%_^4X>fiBBxzSMRHl z%m2F0p@>qs-op9*(51zDl-KpLi`vSrSYg6p#n@QGgF*1u#h%Cizk2aGP2(c001K7wG8sp02M}L`nfe< zD0jakXhOGPx-!b&1))~vsInN1-KW#S`Syk^j)MG)Ul8G1%yB6jkZ@UN(h zG>OeYJ4h5e*3- zVK>j^3T5G%=|(360gb5{+N-hD8K4`Pw5#}vnuvs?=O16Ds4vTYj3CH7z{2wcLEFR- z7Nk9A68)Q(x!0u^&D9XA@~jSPAnYT1LNKV@=|o)jU@`KRZP@fnkyYaE}GZg%nFT;eSf*jm^&T7F! zJ8r5JoAbw)=`fwp_rdkT9eIKkBr~3X@MZkFie46hh%$yh7gSD>BYYXn!L+LUOlup> z6H@Spa_moq>iDmjc(n>O>k4&7ir+Svsw;hVwteT-qs&h>R))CPM)59xRbj6#@ng!j zq$|{CqkB=ia9QqZ*kkZSfF!1 z_FHui+u=rRY^m4X7!D$9)#jk6`ISM!!zRwvf|NgpDy6nCda*J3x^d0)Sld0oC{O*m zp-4QTA=!}mmwi3_qaRiD7r{BAI?S^c^3lIfHw!U!@t)6A#eOqrz>YNSjD%IORlRxJ zr{pG0Z;6=L+Q&RGZo+HLc^RW|W}+Rg%WJh&oieM6Ns5y*oZaZetBNG^2~%U#vxkJF zIGjqN=5}mEwVD+QXR}U_CJIYpt)-WGvZH|dMcTmu;meGyvDZ0xbPn?636IzS=r~6j z0heiJSv%G?cldcit3~1?k(xDk)0NoKnPzHs^m?|GglZ8bY*l-DQ5Np)*!7jWy!(B( zj&uDlzqGoKU})^ek~X}puPxxR&le$M?qLp-RS6nsu}oc9Goq@IE2Gj2x?kFP+0Z;Y za`feCxa#OADmtydhS|mB@=gA1`8ihdNq8!Lk)1-@wTYQGO|kr{P-CYB@dx&yF}(W~ zvrdwir=h798ycr2xPsJSN;q>Hw3(kP>^AWX<z%XvRH~KZgu(hlJzK^ z7Bc|NwNiTPN$kgyXGJLI=Q0}$Pi4fA)8AZIDN&y$J=OiiL4)D)8Y3A;8}-Q&w;-3L zh3soD)C!)pBDwFe{K-+0U8T|*iaGR$9JZ6KRL@mhX@v-%{c1f3e)Ui(8*pL{a`i#N zeU~!ba$1DzJ(c_FVXuT0V=cFPy+F<@Rk`;{2_0>h;SJ%EKKx-R&|9j0HM01r>94&C ziWvef=jT4~dY7HC?~n5xW=OiB7}QoE31jcAAD;IvK0s28j&0EIKJwhxY^DSt)JFV+ zS^RMUa1*mLQNP&ob5DvSA3a{*9w*uC%@6m;eymA;os};Xc)eLB-8B=OdQrR+agl!o zc(Nz?i-}N)^Sq62@RueHaNh=U&H6+{`>sJhJwgLgE>QifoQE_iR9OQwtr<`Im?PG{ zaPQcCBO#~K2{djbFW3HLnB{rLsA-ZE6oKy})F5GtnAqO9MbHX=B}Abdce;E|JHtbf zJR|jnl%m6*J{>Q(;KVn;74l*x5Q3Q4COL@AL83`RVi6PDLW`(E`&T+4DM?zPNk-|7 zh>0!y&&KxeJOpB6%l{>W%^FhdD#B}mmDy-hlO$Ys6WW**Rs;)e{@2FVL!OCISeQMF z(L_M4n^oe6ypV>og2riJr%1&8gwYU$#U|06KmcUd#ob4$=H4CljxK`u4A`I)u>%Bo zKf$C=iaffBM3aw9=0Un~0kKueK8^=wnt&zfBIQkS*)~H@M4}ge0qUW0Gkj`BZ$ZA+ zIOxjK>E|GO5fJqgEMzj#Gl(0>eAw|cNL?7rhaRbn26huB`8^GE_(-))3Z6K(t`&4n zQ4d$Fi6P~S$)!a){}h|B79~&Afxh+ycM;gE3HZ7QL z01JhLV#h=rf>;MK+E`F>_B?ArfK)jv14J35qWd}aB$*xrh}tDv0j7?Tdh_9>o&lc6 zj&n(frnHN`RH+onqWzXQ{*JaTItdrjJ%F<@7t`yX79kV=U72`NG`(IIqeK)W%l3K_ zmcXVVQZx_huEIFaj%!N>tNWx1paDvf(<^-AXUH;5K4!>w!U5CCVAWmD@uJs+jG3sr zv|6J0a_bp>>*>Wc5nl+CBG)WPkTV}|p|Z7Uwd2l$JS6%blcQ*}s&P{&WHQx0W_E67 z;THRY7dRUlapUN-Yu2E3jw;6%1|5KGZznbey_|IO9FdfqreN#-cvT_@JUMh5Cr^9l^^zwMJ-rk+~CQS#g0VECOC2tDxU%TVBt8>pn z@R`UNeLKX>Y(MhZ=B-ysYTmJaxJ!&1&u{Z7(2K=>>PX~xSKwnSf%q6BQW5ZVFH8t3 zG=h-6HZ2U*3vtXVkP`zt+vbvXX8pV-b+utsj-`N{!V96~#V&8CBiM_w-HQwL95!S` zYT}B^?~1X`2_nEHwaps&&@2@zaOvKQ0-d6|;vhU5)lYl{-}Op6gGzc+N(bF_nNaPA z5dUkM7X!{>SY@#$o9%f(WeX{O%yX(;&1Gxg7kV~Q-Q?w4?&Uiv<$LbX{bKX>h4M~Y zhF_t=tKf<&+mGz-6?e@Q4+|BKV*JPM!nb!73+`perj_!snRc%$+T|*-?<;XBs%Ane z@%5{SJ*qSbDoOQSWADiNo2zIks_Dh689j_`^r~6+d9MBF(d`sc!Q%5N)qF2fMd!+J zg=<7oYs6Y=QbZ~x?rX%hYUE_AFqmt}LAB8$@QS=11*OH>mmbj@S=^gJLMnbia(%`HQZ93kT08wbM9kMUwZXlm z!E>>}TOa4WhX9Lya_e0~kVhjVwK24%F?_Lc2NLeYY96^5@z?rNI~_VrD}jOa|z>}60wFPa2;{WH>W zPccH0TH3~6H1D*uA1t;X-M3qsww|QIL-%zrBM?{qInh#w*BQ*}RKdW>SNXb%+Otzl zwDEapXO_Dn-KKevfH{76N7%_5M*C0e$swEu?3fao=+?~7IB^JDl}E{}#KX&-zkJQ) z>1t883ddCf&}yu{X@73e^W;~z++g?ZjcFL}=L2+{DD>Qv@vgV3kla`z9Zp&aMPY5y zayf(Ey0~=jmzzEr|kdg;+V?@vLvOJxF z@j1X*?CZT=8e?D_#jf$_3((ffk=x<~T^)=ivvk_(4eJaIgCpLcCyX-Y)_M(pp3xT3-`gLnq>BxtVW(>9eK`BhEuohHe3v5lElEo0`a#^icmd8KOIhu z9{X-Qa5)EIPycZkY*bPQ&n%mmEOh@-!4WpbH>DRty{Z81-uxjy(xA!()oz>KnH@<0 zSa@Je8&Kis8fv^E!PdW_RFRx(6f-l?+nLKF_`skuKKm8R!Ek-Xd_4u8G8^Lc#*S=0{=H)f+I+c>vz_65LGye{JcrYJ#*7G4 z$jE#T&qC%QIQ;!W>F>}us+xQ4g)%RP5<SR{s`rIQ44dk$Qy&rWt*zbBt<~PFKhs@R!y7R+Sz=z< zu$BZ-!A9|4taDR;LCshu6Dv~d*r5BiCdjS0$dAlx{TcXsQw(EVD1qaCXTq-tL&l~FA4a!ZeSWBM~ln3|Xm z+x1<+hQ0T;neTE~%vOB;ma9}ijO>QSgi{Fg7j$U*YrELmwnri{D6G#jZhbmLYL}%G z?JMJMg!&NWINT+chk}adYYcCYRfH?#$*q4jm&^P#+3!L=0 z*LdXoybxH#4SHrqNp&J>giW!TP~qnwF+~Y3&)B~satt)%Qi>0br5%gK!}par%wF3X zZa)ObqODdQ{DdCXS`PNZ4x3xlS}ONUk+v`j`k7zvZDGHSZ|%1yIVMhRWxs5TAD>Nk z+@Cuo+;BKXJ|=IGIDpe_e%{wYsrX#ba~$YV!-Bt$0WW!^(5piTJO1l};-_J*2bA#B zy0ehABk*3k<5!V0+7G5otIH?l->Km|9PcQ*GtPz<&h9VHxP8wB#w^6XpMPINKB5Mt z(j9`2;pdhn=P54uhbBAW<`=oHTP}iz9lmE!rOTIJFBLXi)T1s9-pNZ;Axq6(KIy-B z8-5|abZ&AC)Hb~w^d6;A%V$L9(GtrD$4v{xO*`hiQtmrKx&zi|e3%;iDb~J`>EkZ2 zUFuHrr7?ktB$ml>I_m7=ginOdlLq5wyMf!Yybv0DUtX3;tE=)XKl1axvEY|a6QkmS z(lBo(cQO8NEcgcP=PdzehT5vv!iq^Rbu=x|U=1%>o);SooV^)*v73-;s>JHi6M0b?KL#tSy_ohd7FpJ{|{KzS^tw0S{J!b?l4K)3u~@hE6= z)NS!R`6Ic1-EEx>f0S!GqtBv!>8S*uBX?2#2MZ1sJl*WGf1(}P+Eo9hH~kL_ekZs! zQ}gZ@7P#f=9~S(fwROu%;ni5XB-3%oObdbq_dfoRJ@3@;iuHS$y}XPDo@Wc%Bi#f{U(r>&37!3yUPXZKa$J_iv^C z9~M0DBV^meFE@YdZyLdbTzMy}s0cXt4I;ExnDq51#9VspVlAI-Uj7bI_5A|=l}op` zyIbhO#RksF%`avT--%${E3Rq<|8=+BFT=DAwUaP9La^XZe8pnQVS{hFxe+$_X5Qc* z7QEzuk@F7={=PWKNdHas9~Qh}ZQ)HoZ|$B`ijx61ISW((ur#^bkbG(vHEE@;k~<~{}_+{X)lKD@M&M^Ek^ZQ zf~fz>g2VI6S(y6lYoPSOtt3Iz@7^4bAW9CO{dX=TE+(?3!VxUEw%zBySnx#Vm+uAX z+KkEs6Q6w;(UsQnz}om>ieSO@ntyp-Eg)F%dNyA`G{dGf8*PfTs!t0jS~F<6;X1i zXYiHP$V_WTmVUxK;zt?~hsysq3ts4Byvz>l#P4MIx~5~yjm^r$AL2;FDL^Nx$=XF; z9qy;&@dWh#4-5V?u(8+|s~t(6<_`;=8^{y76Urj;Ay_%wl!sHM>lG9mkZodGR_@v( z6CZ$4Clf%dK_9}davH82V9GXC7|MGD3>K>N!?XPnC>q)o;bX=?ew~z0YHJswbJ2mj z3&fN-JB@}AK6z3O&+6lx4#JS~@xuWo_p1q1$0mIaq~kYHw6ZVesH^fLGU6F{1enDH zOPer*CI_^(u%f&r6gDjt`Vd|_D35Sc%(Plr8^MA@)`HPG@rL-P@xuWpG8`}HPyn?) zPhbcZoaN&{kp_NTS+=}j!NAD%9J08aG%B8Lm8zHpN^~%-3U6C11e<3}6X0Vdyls=f z@c_f8-?vCq*9sUfJI6ix8Gt*tTTgF}ngKlQ7TO&cef@w<1ckn1Z6?H5Mr(6ov%jXNPeg zDv0{C3&OojP188|{fOMvQDQ88o=7H599G{VN*Db z(h$xFREL0QlnUyNOq~c0^ahoYJkVq=J(r>iR9U-5;mK!!h?Vh^l91ZL%gT%$4y;8n zK5jzaQb}55-8V?j8tJd9sWnrvrLM5@LjAxN=95>LVe^yBe&~Q5b^x+F5U=yI+2J{x z4$8MK8CDChxDKP4+K@h*-ZWuh+hT5jj9#d&8N*N|GM=6O+=`emQGRjxOgL}%vB z*XAh)0*#6+scZa|-`tZ9P)L04Pvo|ia@X1WB};W@+^)2|p+e4%H_vdvzq^!fAVR{OM4KQ5vOizp$hzE5HOry&&pg`9@m_DI}OrF~W zRJHiq;imh`qF+$MtS@K3Ll0}dm2&&3aU^bbMf|=>#0$F(Qi3sZ!+F0b1dWhSH)m17 zRUI2MXZCyDbwFLn1TCpyo)tkO(B5+)?zWB09}fEs5Htb?i~a~1U6Wa4)whNjV@E*3 zCwN<5%8%A6p&!X+AKO3SH0%!y9O{huV1G`tRw9!@u;3ru`A@ba^yNP_jR)xXBlNHEFqY%e$|KBBxyR%^x2nY!p-PEI^Kn`R~;B)xSkf!$Vv@ zl)1bY8id}tB+dtvyQv+RQryq=x69*wO+T;{7nh6K^DC(f+PBhgF^0C+*Ee9%b2Yq2 z0q6)ei1QwPOugp@1e`V@?zVZ>$L(pVFIu+Mjt5VLuRJYe4(ckXKY zQar3}hNL&+jh+P2Y<|RWY3ycs`O!1JWrH&HWPm>MH1d-@1F&2uLy*@lD)r$fDx2t_ zHg-Xn-HX*`*06M4#NBq=Z&PT@t;M|jJmY?eWaY7GJlKIG=0zEWC=e;#@Z|*$o??G= zf5Cb9%0;mpMEI&_8?sB>P-?YT>knw0?i*#mi2HqDT@gIB+S|>>BKylG3hrShc0VIC zoJKrJL_yfchTL>7`J(%^fP6u3bLnjQ-q%;H8zf^lbReW*{U-{->SXHOcKaPmbl|0& zfs5Xn5dC~S@hLxtP)3i(3#vUkVR=l@7u`pr$I*4g023)C2=!&7)kEder2Cb3RIS$z z0c&);4`o?=R~6T7XG{Wt=zSTkBJbKSF!+no;LsQaAq6I%0gJ|Aj`-mGxI8rM{#W`L(T9si5#yNpa>fKyOY) zt})PvmGCUk57@ zNR@F&nocMu5(W7a?(j3r13m_hSSn(I0Z8GoClN$)%B;Xp_w*%wrHeh^!%FzF4^8|sM&fN^3O ziSs+%Zy{?5Uy{GMi^7>~n!b78e)AzqLb%|B^g3QM0&w%NEN5L;<)p~lzgTe5=Hno54MsT`!xcIh$=Tn<_M$8Jt6Vmn|fgBfO9;z@8(PlEb@~Ekd3v$)5YHIY(M7 zS4l5dN-sx#FjsjmS7jkrf;{h)Sf09j-rJPC=PG#yp?Ugyd5YxuFN*U_+4J711i`OaR_xlqzDSkj?V+N4+7Zd*FsTsm4jSK1I7 z)F)Op0xlbHFN5io&8kE|#NsFK%Dlnldo1M)isf76FAm-uoKnbUthFJ7%upTG@%OIFlovO;5hd(2;$lZgpem%o4%rqZPX@U`72FW{aK!# zzt?&*LS(DZOoXuh9L6kp#QLu^;p9~&JaqJ7E|x&~uP<7?8sopeXbr&eFo0nY0{dIy zu~CXP&o8n}p)cS4k1yJgO;Bl-PIO!qneld}kC+Yv^P5~NODKeSLDx2zebQRUotqDZ zF2?(bDRQV~agn{y$?jM}!VbvR&Dc+KFTXIqm?FO2!nL@#viB|poF|c@?%Y2g8dhF? zwa4+Q)#-;n1IFaZ{(pq7I3?on@!zxm*n(`;%vp-35WK`>H>?a;D?)^>9w)b~g&1ES z(sz@+E@YZb+*fKno3X2q%i%lgZhN@eKi1_W#{iV?^Q;*}T|AbYgn>3Ui=G=m(E%kG ze?nJ2Yl_cLn2$$ePkRudD<`&lzSwStTRr-denjZ1T4G-e|NIkHgQ?@wij|G+A&F~) z(S(HZ*y=HPlJ~Vq;xzvex?%{l`QL@EA`XU~{&VO`cy9ZV>;HwW{{IVIX=u@cf6}2Q zC&`dkM?>Ou=s_|{3SzM_!Ja>9$w31OFZp5<;&W+P-IQNA;KSq6rx*bux5}>~@#FId znb=<03~DvwCzNV3alV@$)Lp1fY>c3k<9t_&tB z)g^i{*Ryq5k%CtY%ulJ?;TN$UNaLN3r&{a*)rMd=AFoU zBd_WUddl8^8d_YwORO$LD|ZN7)Zcg%s_9TTa!k-S*rNVcGZ1*>l(%TGCpB9;8^Qf0 zV#sj&%WU)Na=A+%hS6DQL+g%Yg?ru5%5M2=+hN&}$1jT2gU;*ri=GOv^P$!4(W`%p z{W-#wUvvCh?61*@Q0m`ef1GiI=l>4-qq*Syci7(pEnD2b!~W8E`2P*|*H^Hu@IOLV ze_?+^1rr(Ab%oE>_FkvnO%=YZE7l&_d)tB-A_<`tnt6rkB80!8ejO~pIJd$5-7M^- z@`#_>fu&E1Y0u00>Thr=Jahj0`4Pu@MxigZ`f~dCzMoKuP-EUdSGQlB#TI4<*P(q( z6(^pNYG~HRt1|hNZMGjNOi#~z>^{4p(Nf>gZb$cC9n)_0>gbyGk*fApSB9fBEsUQkz^`Mi>#gI@*g(H%0POB41QiJG74XIx;(QXUh+| zZd#=pe|Oxn_T<$Kypw`@NbA`{mO?FGPmQEup%+?f+wFABeXUNcEQ9KrFI%lqiHSC#g~D%|Vp6}sdR&R4Gf30APeY~%)?fvOl|b@SLRe`AuTB z!-BxteD;jpa2idtW>K`pQEr7eXIQWaU44OX^`ne^gQe+c`Z3X2{mO|vahx&OAZp>2 zew>AR*gF1sig16C8;gZ&97DjT5BdJt%mLxJ{^E`1UtRuSe{WF(Ub|q{eDPQ9*Bkms z?#u#`*TGa4353)K8X&O0MoA;!i(uNo(QyV#C2L)vm0~}R9qB*VUuj%`nNqNXyvc_f z5FQXD-x%Bx5KM^*@l$eRP6EHzfjs#fY~BIkR)pBiFmG%_ZUG^ou2MFQAgzTvIxQTPX!RwIo&431Dw60E+0O^pt=#W|-qX&s~K&!UoWBcBW66YoZM`gTgY%a4AZxWoy$!g)#^esR)Dab9!I3}SBngp?d3;L7cMa?Hgk|f9e z`J&}@pT|fZP>8pYj|z$BnN0qsOUo*fVkpF!ZIgm*=__fBlBa|ju1iuCf>~6Q@)J)) z3x+bo3KVkWG7$adOomqj!sxO|W%$7`%&O9>Yd)u_`PhV5DfB^D{ z?~^9%iy6CAQTb&zxoJ_tO%Ud`O}h1)j6K8`ZIb{+52o3zpSW+-AZ|vldKkbM1)i93 zoJ{#xlokcccyE$9Ck=&*ni=q9g51q1&r-0&xI=Z*?q#wB2%#pBtT<>E9y=ZJLKZD~ zwox|~rTZItJ#(OY_Ioqv+FBYxb~X=rPK$45$4S;53=XAZ$zX`f=3Af-z9AP_$caSB zdg#cO9h4Mu|InhIJ#!NFTu)GyoJ!*^M&d5Fo*?gsWgd-Yo?l0vo|rMtH=gz2ylJ`o zVY7S+-+cP4{E$k=H4^U+?9g{9M2gMWB4Q-+DcJUUAmO!?w>$xq*?{eZ zzDDjvbSAzEv_-D#g+Bqs5J!|7K;b$|iIh4DC235#3SoOvI^ZNHC@vSjprm*QnM^&R zT@S5{yp*(qj8G}tavm#w{ToRv`9di6jBTLg8XTEa8ii5^wRYiIJ-fK76XaAF`UA#j zz>}V?LB8JSD+NPavqEI5GDGpoM#oDe5Uk)Dvfx_oq`Mb6654k$$Aw*BXjS1`WndK; zw^t1Jg&#Ivj#o?yj=@O@f-U48FMINW;LxceyfS@l9A#b?C6}GFD>g06hXe7?HYVoF zkAYLHgF*|-<O0`ug)Adw5_g`gmLKHwICV^XVo) zU`Wf*+C%NCZWt1D$bs1%cdglu!oP9dkvtKv+EKT$LAvFRzc%Fzg$lv*;X0SVT52jo zevPM;C5NR_;5lP}3Mgoac`&$}@%o!FZuHRb_#68cajo|W)j8<4JBw!ZiA7J+Le|`6 zX@Ns6WXFJ3l!?|P+_n_smH|LjD{kg$i6C2J8&_6)d^8=p{&%#P06z5~+3fEFP_$*h z_s195DHK=&V5h!n6!bKhYZVeEQX?NLAut@{s08zD$O1Ku^S1}iohUaAX9uc=GZH7T zWu~JyCV-3r%w*p=){#Te3MVJ5hrxZi_`(S}DZw(a9R=zIRw9Jbtz8=a-}N-QwI*s5 zDT&`ak5kO%?JLKMt|G6=cB2{J)rrp|nKkm>-}#~wN4luH$$AYgDcx;I$a=bKELdlu=%RZm7L)4CN< z*0cW>M%DQOsKqjn2t~_p6{~4YMW~mp_Cup5{g%i{pZN)ThG{w^fL)Y|8B2UcCTQI$ zVY_~VYNtKXoJ@kza3t=Np*miz5r2 zCkxPoi-`4b`q}A}=rYrd!GJAf#uan612A>(L7+{ACC4>8@@7WSX~x~FEO>KlkNlk#(RA4Mcrg+4xzPCz zb(H+yB!o-7xxWbw4RI*F2zou}f|nP*a1jty5{4rRuZNy>%kGBm` zI0^UEND)MIo=f@09dcK#y>Sa7_~WU`oJQTIa^O2sIy2 z2dD@R+ekP_dG*s*2s;+&CKe+BL)Td?U23afJlN(T?W7^e+Iz}WtL5&XwMQ&z>C)A_ zt`Ma5HJYq7Wad%x+m((J8k|F7!qJ{)PT)!e_(lzf)JU4jh@RWQ;J~dPP$5B7^ zjX`z9V^2C*04>iqF5Iz*K>nCbE^bD<_YC4En;#~e1&nZIu;&1@oATZQm6RJ%(LJOG zxT=o?H6t5p)L1PMAblfzr9~iC7t+BZu2jaaP}v?isSlJU>y}5Ns;{?#a2Nf2s;TkT zx#_lZ+%`mzf2p(s-1nSpOW zyNAgM6o>5vs5eAmZ{3ea(|N5l9Wi$z72@*d6C!UD4;`fW?8lt!4YcD6#-$}Ex&G>h zqty%p88R>#$&0dXaGUke+M0e=;680#!C5aSpLy9CjM8kbAMkcOwOwbIehKYV4`uE7 zVYg5G#SF@d5gPf)5jWoPtOM4%6-r{k@x?frA`fTj{b80@XB)fk)A7_*YLb?bZH%vk ziZHYZHXscQ1@|is(RbXl2PDf>q?MIZIylE?DbT5V1d8y&<%uH&D_)NH;#MCS_#Jkf z1J2>&y4dlmqVdR#>lx~^zTdQC_#M7vm3+Ko??3Tg@IS+Bxf-Ff+y5$Fl;^xk2UIo&ill1moqMLf;x0&oM~*^NctW=rqftKWJ(C4b>l@|~hN>#1wA$K5XA zHVSsP!n2wN-63$ z{1`YM5d^pzIL6CW;dqb$VgY~vfPr6N5MqM#ucxCSim?e0!+^w;)U@=BbcM|9oWCYW zG4YU+qVkH$s_L5By84Fy_H?wbf1onCP7ppg79%tsD3yT!1Hv=6xYRWoJDF-2IJ>;H zy;G~bdvJJkeDcrR(Y&`c@i^=^*IL+UpL-5g3*M$PGrIe-$IFaWV_i=vearBr_XLtbv$Hji_lnyCT8?awCB4OJgW68W_E2m2e#l=cTxvF}jiupqQ% z$tlFQ$SaZ;>4d01W?^|j8DgP>MMT;!wW>m?Uey1cXOXnJn3__3t4E-sbA2id8kq%d3{unebTM-vqx?AGv_dE0sGGlmN=v+_T>G%85 zc;SNSmsbb>!v3;bgUwhHq|CCN`{FZes;M)dDQb-Ful|*10nlGbt2z_;cd9KHDI_tZ zD4#7WYIDsg`y(MPwt;`JKQ}b$vk{dDq2c0Nk^55>pZp0GS%jMFCGVS0qU3yI_cuZnBZ6+Fg+5Pp+ zn0ZDizFsG5Ohl_VkV!0=R0ECKuywpk#4d;}B)(|AXgkBRH{LSS2fh9!iK321fYjX@ zTolJ)jyH!@>g@&0pH^~e%|FyP|I7-pLE76bfCe=K)01vs(fn$O-NSD-CGK!Zq^1B2 zfKR6Edu5GV#rx&0TMKAWG$*hwE$%$)K&(_JO?fODQZ2jcHbsuZKO3Y&`x9pwPMqo) zQA=lN)(#3GyX?I>k>q%^FGd`4bao<@o5x`*;#=Uj?S^l1usY6ES`Mc>-|Prc*wU9L zk{@3~A=#9;9j|`0q~!o8Vm?56eww5m_fonXoc3*5YuYs9Q|RJ{)-0$8^up)VQ5qzb zy7>A9X6?^MM79rrBn-3a{w46nTNyez?X)*IL2uXniLmz%{(3qpSZ6>9#}tqXfQ2e$ ziz#&PP5sHUeB_UMU(ai?jc-mQX9ke2VQ#p%oTm|1yIywPPB&RNg$;7HEE9LSh->e2 zm9+-3l;3QGKkfU3h0m~j^D|!C;r7==r^`J5D>Tintfb&a)%EOe4tKjHZfICv$}k;< zU_GDGekXA@ zV|5I=T5vi3eZ3a^w7rfw^26ipPQhQ;-|^$U&PN>h!^P}}ui?32{IOWimfn@Z0hmxg zNnQjJ`3a)V0!1c4OpwG*eET5O?1T*8({%dWaEGDjF>gAsR^Y5(=BtPRs_3#fDJKD} zswNR{FU!x0)X8o=vM{Zb1QO*W=9MJ%InPGv66gsycuZkK@iMwQ#ksinV*b&T^A>1j`_276=T(BbE#ECp5>^7@Z~DE_Mma~s(A!-DMfzgUM5GX34mH)#7lX!TxxD>o#W(1^((DR}K^J*E zzhiO8{y+BK@+%7dZ`U5uff--`!4VKCkuE7I2?+ral$P#p0RidmknZkA7<%YV=@O6* z32BhogI?GDi#wkE?6qI+S&M&QUd-Zqe$Mkah`%Nwr=y$KV-E^f-lklg@%tIa$GA%{h+o*zM#hJQ>7lHokj0uQ4(xr z0PwV4lYO$pCXA6BFDc{&Go#%ex*~iH3H#$C;As%Roc2u|j9Z(e9^@_2esKMyhU3g5 z9)`eWCS%0jlP6BkIHm+Y9+(}jT`R?`XW|jrogGh_da75tYkH?=sS>Lc8q-kfey-G! zGxY^FWXVA8Fkf0CS2fE1#`*(N&!QXw$zt-~K-~qEDxwi~-|1QS)pP=<@MT=EHT$M` z$2Tls6F3Kc@;*#28;T({pSs>@aDtVeC^q^3WN|aJUA&yj2C3MrM!YPj73)36&!!i} z6CU*ud%Ya=I8_3r&HNjt;hvKs^@F4)*b+MEN5t#*= z#L5D4tEx~wOMHvzTG66RTord2oaF@$d;hG~&!k=l?ZHLK+szMoesxGa3oB~>xPuqt zM}q2v*o1hMwesZiLF02s{aXUYO_sndkdf4(ze=IC?Nn$S@8$CAPwshH)L~(wACw56 zkBb_7i7^s`*^O7K#eG39(G&4b8ZY2x&PJ&~13)NW2Iy?(`k+1>3dfP?!!Rsz8ZtL@ zfXis8a+Oh`4r(DQNC8siObj+al8bnJ5}*CT^eCT3_H0dR<%d;uL;G^`dYJhMwSs!* zyK=rC)Zd6a11uQrN*RbQEQZ&a1^@t$pn90(Z0PppDAta=*M#k53MI}I2$Uf!0AP~% zW${B4gOB_v^8%yoxn%eom4<4}_s{@D0+hZgFK)gUV1nvyWY*Lbc0tfJF?i0xHA_WlyEgopGwb~$4EGNPU@K3{cjU^*mh)k4saJe#N$+ld zqAe;4C=i(Tf>8G|-ZTpj()&DARR5ehwO5O$Eq)6#r9K=K#zF6;z0mDb`7K6%2|=b zc=d>TN5tN@0Hz0TUTX7+N@)vxw{E>P&e=+{jMa0YB?*9_HyDFtYuT&oJg_h1&jLX6 zJwTys7Udp2<1vQJub#dc79g0{u`)Uf1SxlnQ6TQVk z&PesWIc9LM2za@W(@_&a;tJroif+KDPcX#iSlIV#l{^36b`~ysS4w@L%%-oRs-N*Co9z22ZKUak;cW!orhWuD-oUQ0%2=i1g2l zMyP2AG_*V6^=IeMepqM&K?sgw$RIRq9L77$8#c8?kEO#r8Av(r9JX{3w!9^`2o3)Z z4c~AM-?{*9#fR_Bglkke|A0mu^G2MgMw~fETtI`p4;|VS!Y?i&01qQkpGTsrMRu-4 zU?xUl*GK+vwgX>ALLNpDyix+HiQVubqM(UUNZ6lz&Ihu~D2j*CRL`SL*+aPAMbVf_ z(|vTSsQK6=>}e7eVw4?0uNKoG@kqBSJSK+R%p^u=R)J%dzU~X_3$@S9(Okm076rzi zWwB^Qwxc7&V_rXx)fIL6uIm--89QAEoT_8A>jf!F#_ByJUz}!Sd>&_V`3@J0!Zgb* z%Rb6fjncT!cYzwUlPms_PrU6b<+zj2`uJj{@>b6waoq1-_rc-=6N%YY<4#vC@&Z_E zV-uqLR06PYVjr@aesPOjj*pp5{3(_2Hjyx8J2B@Yr9FO<3ze@gJ+`J=QduIUMIhNF zCg43>KF=qqJTX~D!Rl}Zt1^h}A`d~&_dW8=D7vAZr>CA0X)kk0OgRlqE~`XJT2dz- z(p9Ua&U_RdPfT5SrBrH)FNR7mtp;pOdGV`$)e)R zqEXMHC9!@JmC4pcm-I1<#SAMjJ1Yu57)8k~pjv@22aDq>>on-Y{&~9mbk-x0w*os^ zd7GK4KH2x}fyFjr4c&|=E7|qHtTg2u%AKIN$OqKy6ghy@XU60-Z*#TGat|FMMgvuY zE3gZA5P5vk4yIl?s%^Q+RoOiDo(4Ov>T}dT4^it>V=P?qAHK{@vB@K1ckQNU)@1<6 z+u+z>7fig$&-TpC1vnE|FB@}(>dAg{&K>84yjqJv3_9`5P?Hh8JbMRGwezN{z~Hx z1jfE}<$inxw6Su2!i5Y({J7B=Z$6Qlw2IcX3Ta|tD2{p}lXTQz&fHj4_p_YieRV`G zUXNKd-*s?u1G0mp`|Gk=^t~86e~rYhZh*_*9i;bOZwBbaNxvwDxUs(fqB`IpnEXX! z{)-lAJSPVaVyIGjDC+wGd|`EWA+|=^}~XM_x$kG0f`|lIxQi>r>|I)2{2^XTe+*VfPst zGF%%9k{gN|8%pLI`t>nD{8Fv@4Q1~eYh4>*$&C$-jZO27Vj_sf7E(uIjHb5tO}gV4 z4-A|7&4s$D+&dea4z8Luy=aNWSx|t@GrJVIV$GVP5=>LDS<)8n7%CYtuT|HUXGrEq zNXuR_Fvpw~vhfo7#bbQFg$u3aK^Bob1pCyy_4c|IK&GX!2973$WA4%OtZ^{BgWuC= zyqL$I3=|WrU}>u&_%#n-aA~Wil#Gh0hTgQj?Z8+#M&Xo~0fXD=m@lm42}wnUAAHv0h> zxIw9Dpk;xi`DUP9gSky$u#2m^J7uuHX^=mpfAD5-wB*H@g=Osw@36oS>HEQ%rlJ1P z{%E%H1+rn>oPkxQnrV&UtwDU@q~Sd`;zBdZ<%Qw+rY~>Bh7Sxzj%A4tQbukTMs6+m zHg85yQ*q}6MlqS0uiZwmn@7Qde6Nz94EAH=>?68-&tMk-~?VZcLV;o^%!^^Q&&+g~HzNTh$3omwY zY7ztpOh`Rax_k&0FP(Um+WyS5^*FU z3n1%xjvk6ShTs(E#Kg9Jy4L3e2+uwv`h2!efG2!-Ep_Dh7&hRR_II`cp5nQ z+1_%dc{EV80xCK*(=d>hSAk*Ajw_T(EMSS9%slJaI3s&+CN1pK4E3C$VNv$JFb=^i zKy>yC#kjCTWnq}`z{EJj5=&;!LZfWD!cm$5`?yn{I zXvd-8#CZ^~9f#C%(f4a}{DaJo+&3(sVg;p8-BhrJs#aQsZ}VjS_N1o#T_Dc2a~6*{z$0Ho(9t0;)8yy zQu4bWBYA=>J%eM*xudK6sO4-ELAAtxLozhT^t6kb}VR+!&Ue`55eiN82c5 zD`fZemZ%(|-CFlu*f5E83uR;4E}&*Z ze{X@ae*9<=+PVF4EOc<9br7_@eWsPOnReg|+|T46x*k42eQ}7c zeTZod?{hzV5B-k)?GP7n2ziV+vVL$#z)E_gb+i|906iEe$9<>WazycF;Qr%d8V^bm z?PI#fT9z5x4Eb87$O_V~$LUU%DeOqudi2=P<+@rme*$u+s3&qm56 z4>(`FIFbE!BA31+(E4x&a#~k?^2Xy-m6d#ng-bmBR10xB7=qg*a$3z8to)+uf%d6R zxsf;>cux4t{PDS6t5?d{sXc3*qgJm|Yv0G#^Ov#Uh* zjZ^H}uq)iN%doF#*Vl~xdWh?q^w-JZk`;_k$93pG4PLV)4+mLe0c|geD`~3V%E-)J zryAaz#Za}sy&o(3YaCBxu>3@G^uDFo>ye7nAqU!dR#Qzjdh;jjFTAmRJZ=*jS-IiN z1mD4Rr)Zz?5adKtV!YCxaHR<`RmDktvA?YA$nNErB} z)y-UjlZqPp=XS2JNg4TN-kZCIBo{Xh%}lm zS^jXUfa}#wJt666=F1Qg!C=n9@m$$tzE9X(MH2?|x38Onxr(PsH5y%hVRJK$Q0WaM z35IZ&&V8|Xq-F`4esurw;1cbc7n;sOv)lF6FA#6Va+|NE=IC4A%GIt=QhxW6K(Sh! zNXGXqq0bfD2UGZ6Z^3*uTVpvg$wFa#Uv`RTe9V8}8ZOv)w!hHmiog|Wx;V{D;B*8VaeaMreT~4=@kGUy((%G157hC-W^o>H2MYmpeZ$!(bp4360(JdK zta^0=$lZZdV)y-}^nz&90`-C!%AmTv# zK~(LeRCbg!OP@iEoDi1b=eKgN3}eSrbPVIvtrFFqXt-k;CFq$2tR<||=olrLl?8o{ z4_@vzN}<4}H%@h23NlV}`O#-AVI8!ZN9}d?$|TdDJSpxOFIB%ucDNA9>!&apn1ewsT2BsU{m+N>}yE!eE6s4Vz#ap%~!S&4YqG7eGIQm}bhs+IC1Kt(V; z17q8cv_)k%f;_~cs=u9guga4TWLYyVSHD#=rL~)RZ{{}GvTjL8Qkk9QlZ;jUhE@U| z&Su#zVclMfx%`(hPLOr;*;3tF{84e{qHD)7KRdvI@xt#=akL_{Si4f(lW74ccC&J(PysN1kVxwz{S7)W2jU;<8gj-J$g@$Gyd6uj=RVNp1D~ z_pAMegJIW$76h)_VLRR%x1+XS=5ELR^PubF;TL$HPR8H7`E)v^?SX$h)0ldFmfT-z zpEl=8*mAy+{_WevR=IY4$oln_)Pw87gNU-@IL%k*dj~HVeg%Zj1m1)B;op9hWTowC zMdy>j$fToaTFQq5rER?Lmt48l$-qzG%5=yPz^!vi2S zM|W13zO=sJ=L;<1Roh58Z;IwAUTmhk_Hd|K+G7<;9?Y|1%u5}bC%~XSuAxySJI)?F zQr*60KaQB5x2W`Qg8CJU>|&?p*J310u_W4~V{4eA7-c>TsP7yrS1;tUdSDIeVB05j zGUc%gMh{S(RwWDw{HppNkxFnJf!sw6VV?^gHBn z8b(Q)2Y*f3amW|gFMQ*HJ&}R^q2MKRkwQf9L=MA;LRrhAcj?%Z1=1gi6ibVg%7Z6M z%sv!r>=&uDVoy~Be<(3vE>;@}o~kMOP-~el zOLPo$006**`~ytg3q=RqLwEwbeSH7rUihC;v;Pya0N&Pqhb%ze3;PEKhlWQ+$Hu=- zOioSD%+Ad(EG~V!Ll&&9BhQ8ZhAgxXd{VQqq zZ)Cwgp9`gH3dXXfVi;DWq$X_?qY=8X+YWB~-qnf(*_rRm> z;2-D0-WW#hzXu*jWWn!&hxxbR|DAzH>u=I5RNDv@Iq*=BAS?KdEXd%43DT|j-v9et z=udWsESTa#Sq-H5i!{3${6oGCi7e=*(|5!g{xk6Si&%gp&C=K?gH6|>q-YD*5Ye*U ziaBC(ob>CT71eV@?*<-*v2TQ_R^xR1>1ki!eLkiU6{J!5o?ub?XW;QvTzlAbGu0WJ zTP)4(Y};7o^~B{SQVzzai0@BZw3QWlhngLnq!`1BymN!maCmO#rHuQ%M4k&7b~uz_ z(5(XGz+gcX0LWDdj6aXulHg9Ko;C%y(7(9-yHScoeKwf4({AwtiMhs zRIGoU&KQ^fMJzy`3vUq@Yw^f?;cGh-&#S%i1NZC0R#uOjlM!o=Ul-rXJ#KFf4m=Qm zn{)u06dZ-5!V@TvflAm5$Kb2*g1BX%Q%kjBsaJSIn=&ww$O0Uf3LlD_44{})JAP7y zFP%Up_PgG8qJ|1THn&W$zEsD-i}9C6#>jI(;*Kgg+%Y$LL~3MBv?0o zdCsNq=?zmSLH^cD8fAqb6@x6IOqe*mQB<%-ryleRodjz*eyEYG{{870aqhUWFoRHP zk`>+_?zy8dr_bLXoI6Vh6|qNr=**@#o#_$1wT<+mS)(L+CHaDTJTgMVfa>YCl&~^E zRJ=jX6UzEmuZ*G*(J7qH<-{l@?3cJGaZ0aaCa{BzH@`UE)adt|NC4B z2`hN{RC+8}{Ui(en>0HX?sAe%fm0|YDLo#YbdqyNnpNo^k841l3&RR!jirB|3wehM zcB8%j-K|$DtbHte!LClrJ#k8O?#ayD$-x3&BT=&h zGX@{FWy8WsShHwm`-#85iyN|_^UV#iHa)A(z}e?C@eHB~JgcdiK{Zn`4`MO&uJK+* zF*i;Qqzj9xg$aq+O_~Qn$P%nX$| z)*;V&_gD-O&RSHxy+VW@%!%CBnz5MPX9dc zps~kCzF(Fx`Js7W_X>pXQ`x@<9&n2c-4+R0$A^8^KuOtEg5--%I=TOP;9(mI%+W8W zt?MydXNpYh|4ym@rB_0(Dms2}jh6qiPu{=ZBfI1sjZ^!*0C*K;jRuf~uzf(0e2b`E zL+MPdp50(++tzX!jZtxfz}t?M(qvhUkFzPCK6BpO%%2gg%V__+eA(uY) zH8?G_xRrfZd<@%kkMCSI^g*X@q%K1|c*@43Ptm(eT=uRv!y( z;WL8ish73+Vf>vbSlGRXTy;lR-eQWbcc|IY;UO&J_f**B%d54MrTk7`ua_={>sp97 z4?bOAe*@sb;PINI87NOR>7o)NcE6)Q5SEgYK16XND6b~7@bPkxv_7Cq6K(E5yV-6?do zuhanHTILv?A0DZG;0;uN?B|Zb{-Gh=dRw&|1*pClf~db?nv35~yFc1DwF`?Z`A-_|aLjT>}<&jg9d|k@lX)9T$~qgty;YDNdC#@7YbE?eutv z8elwJM)jsJdpwGEE$KO?@3e6b;2Q6U3zXA1bSG0r$C-Jwz=QRu07RQpdYI20vH&RurTaNkxH2NI7rE#dE}3Q-b9 ze?RK1Hii2!;enqj$Xm+nN(Ty>4hjo|C@&j=d+~x`6q!&+@)UCN5j3lVrt%cX1^0!n z2JFBCe=MU_76h;K1S2wpf-&tk;@vkKaU(N*f2rU_uNcWA#p@ZtO$m5cl0aq^D<1%A z_6)9Og=zH6!{8(L#z0(u6r*Biga^nNgBx!2jo0C(CxFN{oYm9OJHsp2(IM;%uZkC< z`P7pz9ybLBz03%H&}*c65{iJ^85^5PaeK|f?I_sHeB!*)bkSkTXrMs%JstF|gy8Qc z;D%m1^m;rkZll`=URyR2ay&pTc^VCeKoec423$?cC}foF!%npgs}9DSEu&+IPgOU@ z_C?g~s2ddoS6s(K;4sGL$k-QRB2N=T`Vc#11|ydCJq3l=DTUS5q+fu1kZ>QEBN51c zh_eysIo=CKDuIar0N!OnR4E|84(>YCjzjh(B<_)OzF+Q9Lo_*BDwqA_)u)Z$T19Cl{_PL zY>^#YWj@wLSO(0Nx%Q5N7hsqx_?1a(_u4#Y0&YV2lgUe}{8m zJvvqbkqD9Un&JcX_&Mq-7M5m|twNIZDgktDb^t!$PxUejKA@1gRrYLrjWcdX5q^ys z`J!2QLq$oJZpE%w1-d!bw_xs9@j)Qc$|13^U+}U)k#vIO%Ba)w19{qO{0b7%DjBYV z<{2ObW7S+1J>9$_LowCU#;O)wKwx$Sn>m{bTLo9+bK>M`fop}aOD;~3CBG{;zNgZX zutbobN+h|)=4X{`BZ16yjf+n;c~s6T?E54PU$W4O)r+6&1m8dYh%Yh!#Q>xu_r4a$ zT^o0qY7+9?5-Zmd#BH9)hTHJLwix%BG_itfomE!ihY%X$fjaBTIygPd{8Ay`Kk*)yU${sdKWUD?Wq7iACjpQ4>b{~(%WS228VnK`6~?Lq z{n1|!stdECY}w<-AJ{SyG6inDZ(ipOMhV4fn8A>0Y$dU41?_~!%m;A`+k!KL4>r-J zis2I?w!o4$Wg4upWN^`R(9cF23;~?OuNV&!qNScc^`|VpdDX_9VT-~S08>U_JQOYj zX4?8p84=yII36`X-CR;l!q=x9uw>JOmcu2T+S-H@Q~N?wFIvgpp~-6KfK)zrJxr*r z2R;_aG1OXyJ?zI@d~2gWN-Y`f#wqH2^d80mNfS& z(bVFB8??!6!91HSm0;9C3D8+nQKBrF8anF`!O)$kNO9^mzP-|Ok}<}I{5jbzQHzSAS)G!3*YG92XKEI>B#loT@9+h3+Z)uQ^@SOtAo z1}_rB6E^6SJ=)&@$5`X>s$LjaSD@}W9rR5RA5CGIxB+`>R80>)b_zta`^;bj^#&x# z;#ktsW9hX8M^Y46;H4M?*B6GSY%P;G1`#&4;gLfWGi}FikL#Q8uR_Tp&PD=+!|t1d zQ5Hu;?Sij7O|c(=(FL(ec~AU)g&M|(?G@$rS5?K3726Mu5ccV|U{HT@dTVZd(@S8!9YwBFl9Im*YgB5Y`kZO1- z^W2N*;I+-j&@iB>Ns;CuYUXQPxNKBfQZKH>yjWInT=&2-udTrJRN`n~ZVJi>&Ty}# zFF6(AG3VhQ-o`)$Ilw!FsFCnvK?`qx3eG>~F5Ug$|&%N95^ zCW(9p)6Sk)V27MCDlmHXO~p?B68T`@P8d8!=y^MO8or#yfY0l~exvW=qBAeDHhofN zM;$x(JFw=$`jMbbkPgXy2I#^ z*;IRoSGzi9kEKLS0L6Ba=RPOf4-di6?c=p6b?RB5$;7O~i;#wDT!5=-8bKKlqxHun z%1W{9K{Q~e4Y^-WJOm#+^_WWNR~vs=>Ez&k#Na)h=;+9`jG8U8(KxZ9e*(k z54zW$db>V#c=Sv6r=^^C7aN>l@A#+pPi(}Zd}OdtItyg}WqXE&&~|>K708$>WN+rU zRK7$UkL-(Mn-6CH%Ds~=m3b}g)0uX|FAFCMl&3n6$zqMVk&Le&AI}~PjEu>Fl z20Kl0@jvaK72X0(Ti1vYAjkowS2~fAhn{8R;z3TgLTguc17sPbAkH;L~(O^aX*&P0wt=5kq|DVEXrSC}O+SB$2WFTlz zU$HPnXbWZ2*;R2wd5INhqc|i@j;fpd=0FpJTW5)Y zgDKEFBa_5J{tj&Myp`)2i<#n&g`!J=KM-q`WPJ6?I4rDqhCaOS#(RDvdF~Qhx6cEq zBO}A34vqD-J$?nyA{{9p_25)T$m2IHO_x7a%4a;ee5LW#YKE{SA0L(Dv;p|YR#E7s zGIvfe=$1WyBY6zH9;EU=!q3vNU8bZ1J?LsO4#c36Dp>iG*itA*uTaz*5^DQU=Joal zRe!8X3q~fkcLNWY0vMp`iR&r24HORIj;mf~kVpS3v5ih$p2mrgm8kEFe5?GMG5b*O zU86{}55w6>q*T1$o+z!4QeTE4_tBmWR%{r&ej~+U3K`gH&&CBMRS74Ogg9d|Y#{?% zv#ktITEwxQnjSfyf^WD4!*dCIUL|hnEsg6yaCqth4PJ z#CHdo^=B-U98z8B0QI!IWT39|ZM4s7EQ@AUBH>oYh7l}6C5r;!7X zvzd~aWl=>9kC(q8vuE=LM`96zA?=oT1CLUkmuiXEr%UK!ICqI{+3OFaU{Q225<-sj zl}NNn2V`O!{-nnQ)A({D#p%c8A{kHD=vw+eC$@aWniGe0;-f8AcZn@-)pEn1fybZ3 zR)D8zAo=F#ze#MHb#pvC`cPNz0^5HKJP!Y2%p#h=FxlH*H|GaPI~{W1aqrFz_Adhu zNN5K7Q>iv=^+Rtca^S&p$CyPN`fMaV0!m7?6Z{@{WMZrIwi7oTzDxK$@aQ0!JM`xr z%*1uNgUsFyJoG4E(sfeZL1zC;B#-4+!qE0jb{4&(5S;}~e81jwwxlEEz$2Ta5LTwz zX+xy%phY${{&7Z@LqbOYy5+vJQ`4K`}bbOhU3_Z&|Id+?2nE@!Q|D0 zxh%%$InX{GgT|LqPkdet>XH0R=>5wL#`iOE6v>#)e>G&L{xbeRzlc({nY1dk;ab*W8+*s+&Q<1Is;G%)t8lQ-^1+}s&5v1L|Wrh314byf$*DYM}jn_3|`hxNWLvqQSUHu%o#NB=#s)nv@8{YPRO zPxTFnB2b(fHKKOPeuvLrUuTm!GAq#XQVZoevjE$lyuHXU8pAOAZ|;XpN}l8 z1zYEqFKkulYWy5tlh^#f;Gww7*9^zG{5R9v@)3>`d2%0`u1a>4?^!xTQ{)yKzur~1 zJ`qveS?7_r+|?Q>HXx}$Ek+u9wV$a>5gxZ`Zitxb^OG8=g8HOgU$;Sj-!!~S-LwU z&+u_v z^W{E7L^bZHBH2;X#HXdMzjk%-8fWI6PA3-J_Dm31Vhb-R4DuhXag3hMZwf){zyA8+ zJknUwlzrZE{p*0dBg!Zo_oAKj_Au~{F{|BN{p|K=wHIqmX8r>VnH(p)5O05`eK2Hy z`%`D&8J0Nc%2Z3s=M9_FcDl;hWTO_T;0HIog(WPirrR@^_K)piiR%T#Uy1FDOrN8} zPZyZ+g2(aN6iXb46?C4m_MSg<-yO7rqC|KJvVNcLNV+KUHL4 z3-i;UW92IlMw{`|=Odq zW&+$V0z9FC-n@aN1pY`lSWjiZog8c?Fx=$L>x;lUIhbltoO4h@!rj0lWhN-?0x1Xk z?FN(5Z1W_@RV86c2riikF1rY>fQGOT234ts)H;VC-Czy9*ix{N7844ai;#BS(9W$O z|6XW~>fOKtebRsMB6O5au@4$HVL~;TU^|@JA{dx&~aYmdz``|ZVFy2Px<`1uo$#49Ign?w~0VedjYIx+HB{% zUmb~6FY@(*qaJ`JWP`vEAdKpc14-zhamzpCiykU-6O2G+t&3rD7!>&p$p;IKlg4LSSM-aD753lEw3%7_)rS@kz6ZX_tu^ z50kQb08?SW`AEHQcOds4$+j9ElVyPBUPPfE2>LN^jJi^W-2 zDAH7)a*Po*`aG4`Ikbo(bpi>Q-KI6OfpYC!&LkmKlxy32#5vYykuj;iRAtEx`I+Y98) z%~5N3S26Cc&6j7Oo;P)dp4frKT>;Pa$;eKo<})J6x8uuqP|x@Lp68g9@6wR(Hka>? zl!K8Jc=Hwbsu%dX6d)1E!3_nWa|Pj71(76$(R_uU)eGZX3KNnFlNt(B<_goU3XyKG zEWV-~^`bna8!V})sG+E2?#>NXK~h}BS6riBT?e`|fMEV{`^^F6uO}jq z_D`v2*#{!=r_@8KjjHt@PelKMw?tI`QR-o;RmBNn`Tazcj@P}Tw*I5kgQT{OJL)4# zJ+spYkaU`z!JUW1kV<*x9R3+u>d7_2w77!+G)x&XVEH2b(Ncw;8%Y+m&)2|K-SnG( z-iXc{cMyQHZ6vkz?>Ay*;D3~QA|)8;S>DJZOFaqEVq$j;0MisDTs^TwG&i%I!vDV1 zgWD-w4##A?EA{Xj7j*x5A|gE`|5oZ*`0XM2f2E%PYo(t5;*I$0V)M6$dcHu@A`rIF5>R(9WfL)u+Xq8J*DCmB-QdO5-LU z5t9MVrIUQs|2Bz$mW?l$LFJD>`tFTr{Axgb?l=yHd?Pyb4QL@fByeyZTfqPHMnpal zhgk}TtXzI3|EE%q+@sf-|61zVjG)Q>KPdIklZR3Kd#R_=l|a^O27|iSA&*;87Efvi zOyWk6zsV?y1AzOGBfCO3_q%Dm8d@@OvoKkq40=}m6FA45_$r8B!jxu_6Gc^{_hfQW z@BqR}<+W^Ra+5`P{bo}*R3Z3ETVC%_MnK~>2@an*=MhCfflT3()^z26J~c!Vu>!*Mw z?!z`69NQ&%Xm^3+{=snx#bSPR0USH-8zL<9y$=}Dj=Av*!;^~jKd7zAWqnpHOOf9fnwn9U3r_u>rG`9E5j`ZrcUiLk0Xx*p zpYm*QAv!sMA;mMWa2i!7~uQfEitueI2#Os4CpEfq{E!HwDf^g!Ykc?!SyzN2@rH-2%9Uw3b^#U*ldB0IS@q%j zOCUW9Gi%Eee&)57qWV^L8yAhn0(|wCDM#^^5oLLFmE7_g09! zyt`(F`{p#*&IvcqQQzMQcu(qqfFZ`WSf>M>cQ%rW0sz#NX*@M!v=2``G3f3;<9X;{ zh(2um03nWXgakdEyU#s=BpYL}E~BZRd&R%?o*l&y?Lwe&d7_BLdy!mtbHi2IBz?e{ zu5_XvVv=YkhCb^V?=>SmglsHtC4HZ>`yQcqiK(CwMmi+%;C*@GsVwE!FOL$f2emfF z2;qUqLH+d#o;*TgVx)-Q00EF`e;)h*2QM^Vd9Q;=cd83#0K2Z^7W=LdzQv3>2LNDW z$K}i$7=955wGBk!!14wLp?uYNmw+eaWE|(r=ca@aH5HUhs3LHP!bPE%Rlpj(WgRV# z#zLWD*A-AT<@v7KBcLLk03 zRz<4;n#cBXq6Y%|3c%L!eid})Fy3cRmEAQ15g&b)(I!rfm1zw;RP_v~DMVmygVQ)h zKnogZgch~yYC&k3d?55JjLzN-j)A7m6I!3)%$BEjd*N(1sZ(~wm3;mwtQ+lPY-GDc zq&GY?C6J5f$wvf62y;P1fer>SCP2x_MXTC{JV5!eJjPdGbhNNX3s6f@JnDg%Ib58o zyTE6q%a0`pYpvE)0FFlN=)5x;4Y5O|s|*pD4GHjf3EBwUG4ZLD{3P~7NspT1ex5c9 zMTlS@medz04KJRVD64|A{!jdfnK%@rm~>z$*?hcX z03bai^fE#Plyc(!)0Z5Lv%ftgiJT$4X&Xoni5jWLI_X2y_z#(A+q1Z&+sr}G^fP(^ z$J10r5j&}SDMnu2=d-vdChizVDsV##u8j2dim1z(2iPPTg*qB&W)WsU4F#!80E)r- zJuf+|%xe@4vY8BY1$PwxOaz6eygXX$X67$St*iVGcnukJjv4*NS+^93kDrXu;P(L2 z1rKifvU(4_HN-Qh&EBDQTeByD-UPTjX9$+9n!Hg{cG=WZndgML5^f8IMLK z)J_R)4kP=9KL3{jhVxDy>X;)}Ms`6#P*7zg|Al)o(H2 z*;zjnB`=|$WdDn`^<0q`T_!`14ViPCuTx>_QxyS|U|KBwH%UbcE6}Gp80jYAMoD17OFyt~#rz6y1HcUBoEzzQ$8Qna~^}IbJQD z{D=Wwo<3fqKne=3tPaWe(p+IBIS-L<#O8GU0&o9fa7|1*0PG}Ui1uRAEe6%)LamE& z>|JXCt57Ao_k~^@42TDz<~M8a%DU@DbKJFSZ9>G zCd3ym{<#i@6SIqj+3=C(ZQW;c3RZ@!ca*vL{!FR-4ZSG7d5lE*4Q?goRJ`h0ZLwbj z`s%@T4dOh&7Ug_)ULQfeMv}MgkLVm@0`;zX8bjgAOZn*4=arrBDb0H^SlI$RT|vpl zX5%3^eX)*>pol^K<{kz2N2ZFi??K5q8unB>Yg zL8f)C5zD*Cm$gFkRHpF_7GNenS}eY$Lf#!Uu71A}XonF7J#@czg#$&4)Oc}uUgZ+X zsybn!_CQ0>^V(?NwvEAxm*g=5BwSZV(RvDsaYGU9+X`V4M4Bw4&Rk6qVs#z-SNUsF z&Jq1#Q9XW?79DVWm8M=hWWjT=zkPXBg`=R8MX&sOWXI)olrkB|C`OpcsjDUvM;FwA zR-hXeUE6zTFaJf`q=`LT7wQ{qY%Rd?@_mnNZGB)s4`p_D&vK6&S+BQ1FCeJ6UFz`$?>wmHL z7GO~hDQyo1I){3R8liI)v~-qKm=Uh`vOXFRQ3n;TIZFPhjQ)R$JEGQXqE zR*B2Wq9@qV7nkT)pJzwZZg<({JimEAJF!JB>N%}UQjJBEJpRSgR1d^s2G%yxjot2N zEDtEux$l2^G)3;KdArwu{ZgE%7n?~w$HX9#xbNNC%hyE#9Pz<&cZdA0429--r!>1r zz=mH>u$=J(bk7(zjy4Q>WM9a5ADdypNW}i(7I}L8!EomlT@NxZ{p=B8y;Cj&L-AVd zKD9;n4m+|T0oRm$sW(PEvP$Qc6uJ}V^|9a!*ajnf>f zp{A9bsV1=@P%CzV?v*gz9Bs*l$7z(k8mhYUSzjwYt-OMvKx-lxzpcIl&z*=Z9Jg-H zym}&LERk(8O{e0U+kJO)TvenF1d_URNSCQnV@*a$44>K^AC-%s-xX)@yNlB!l$Oi? zHiw;|dah15LJymug;MdJ>q{TH0G(codpF%Or6XcC&GDbGP%ta|U`~$Rob$4)#J@J~ zEl~2RnH@OS=mxJ-!zRsXR)!35>v-K@$G>S=Tjn*uDip*@fV-5{qledJqlw2i_d3rQ z`qH_X0Z%+6hq8jO*M;(oYJqTLA*hPe zQe`nBb}{O~nKBrRqLEOoYVl@oH65GF^#_dWmp)G;78scvIRiQ~9Ctij{faH`kvzC!@ki5(QXMApe1)-{qADB_r?XqiGl1_14bW(cg8bt4FK zUe{=&5hIQ*?t;_g1{dwuE7!k%X8^=~1?AB~Q$HC1-^8@PNjQ9yiu;z?yDkkf0Dy1u zw3~|8H}7k2VnOqi<2Kc+H*flfXaZm_&z9cxE!yXwKM}7P2l)9xi+-%BD?r%>BVi`&bn-piWW%K`S<>bLT)?-y$CgS^%Y z313R8_baCMtAPC)+Jn052ld(qjSdH|lJ}dRoU5!l=mZWFUwrJoe%Mba>!5u&qOd+Z zMfUOH{un2f<><4iuGUQQiH}p%2Vt7Z_D93(0UaGjrrHDh_yG6ggjG49-{KG>ziPk( z_#&r5w+tK+@=UG*u?ks7tH95HOmDxhn@h}r8x{Kwz^}Jm`oXWVZxfCPXsF(m;jC6uw^GSH)YN{ynCb`?lle=hXctKl=y9vCWE(Q~9t{kGWURuj~4 z6=jm;L>>=8u4L@Kp4fj^re;JSovD|Kgt<7w7R$llzZ% z0oSV!S-`KHJgqCg?-=)F@8meuqTuuXdCcuZ^g2BF^Up1RToL$j367?;Xs1ZOAK?$X z|M9`#`mf{u=?DMAZ~f!Jm*jyBUfBfTD3=s`0l9(n_pAJlu2W-v0){b`l2M08Pe@;@ zbQ}><@6IJsreK4wKb?LQC_f4h_;qY@`_TzhX zRDE+2yaU>Z^piWB8~MlEa{eRwTvQ||@ax^5ckjm?%SlGxp)J%Qww}?E9QF722<@$< zPUf$lfv$OARCi0QdIfxp_Q%7O>BA#hs)sZG`As$b&ma0fdL$k({O_6S55Ex1|9+_S(lbPy=6exW9ugzf@N{I4d7qK$l-w?mPOH z7=bg@0!(T@%P+?WW_k@aGjOJw&Yk5CGu2l)v(Os&?+E5&Y2I(;7c!HitI%`DGu10@ zI$-&Qax{2%hfXU<5v_qgW-vcjz_@L#69$%FXoQjI^2;x29(tx4U49W{Yett}yb_|E z!4|!r<(D)yJfY(bJ#_iyL30C%kijv6neB60QrMr%FZf{vgQiQ_V>_NdI`mG;FW^kI zkeVmDL+@Al<<4!=LG(=Z-{qJ8!!yBr!VCr`%Q#BIhniI_c0W0O(xzlF;QB zWB!DYG?`>JUxnK;(Ta#{&19BTh$DORuks7WTdXQ{`DGVL6YVTr|9gvGx>TD9*rFFy zPj=j)_m}0DyvhQw{PGEs+wG&;dNr`D>=W^qQfvdgx;Su1R0Mi5Q%yX3;ighr2lJ(G z2?+CP5{8qRYLZhd5`3*a%TE))nQB%z58Kc3%kHLQ=wHrMf5R{QIaAHHn3}--bEbNE zm-S?(dO-CXP+>}voH4-gvQ}6;?+QyJNxOk>BdS>4n}@4r-a}{84b7nu z@Woa^OWQ?55gc@fo|&3f`*nn^`lS6JnV)&~afhD3h4-^o=I5mzjSaF&T~7RR>Wt0) z%?W4y0#}wxPs7_ZH)YS@sIE|A&zV{Lp7(kodJ9Sab)XF zE87bD#}^Ups9BMny6Ueaa4Y$dBFq{ruZIny+5t{rZ|Z3})FT!VyqQi?j8feOx62qc z!!5lfjb+eBq#~kl3=)2FcoC+9lT5`0HQgp}%MEs`wlUhPl&@IlpAufu#J$eG+uG#f zL}%lu$E>Ah zg=Zo!Ho2G2@CSd0^HDBL0yXg81j>4GH93!^dA56faM-1^{0j>Tpfu0Bj636tWU^Q; zD9!VGpM~zw`-?J-qCom0>xsk-GcDKmto0NQY{F-aw#(!p7Y7+U(mtEg1`xSl zLdu%IOoSaF8a@)xv&0EP1^7;lXVOywy(<%(em4w9cSWdQkvN~0P_^Ss${}yL;Igq; zBlNL45Tm{116NqCdmd5Hlo;OYuS-stfz#$LMY$hQnn*ix8yYHeKkCh8*29RFah*oj z*JM6Vh5YRyu!%=0t*wb1(NCuEKYpC#(A25Ac5wgHSt|_$Pe8G8iMh-02bHfi4o5m$ z?W@nYlo7<;O9s&i&|CHK%(Spdq6amq^Q$Ptxo#{2SI*ZM>mtF zja%1V@2x4AA_;vLkh=`_(G>V!nV@m}UP);zK_#4TBA&(a^OuRg_~-^rcQo1w^K#%- z7Etwi90aYPR|Z@4N?&^QkT_pRajryqTQfYfMtL3otm=?*YQ(G@FS+6QDla*lRqXKhOP40E|gd_vGDG~ zHT-qG_f<_80?x9eo&V6_mkzNJ-1e`z!8~4a9vt*YCy-O zn)8XrC*M(<$(PI;j=S(c9APVi<>L%_t&E8&#H`9`VO8N2_?gJT%+Q@tf`jo){GAyofaKl7Nqg`MRZFY3Eh>qzqNCCQwm@Qky^nh67k{1?uyv zQY>H+kKkF(Lm8Rj+_$4Rp1bhztJ$%>u_v*I6GxVeylK`CHqp1*5DiOx52><_zK0S0 z)F}E&ZFF;sKs~5|kF@r;i0reD@ePIygBtin4Gi5FX;|zC$(so^bonKPE_MObz^f6s z4*$}?cNjd`D&^;0i`}(&vunaOKyjsYH?D&#ihDZllmJ^EMLaee|L2i-sjKmb5Ag`~ zAkwm1HdYDzvoypR34=lR#Vs6hYU60w_#_baN_kK`wZ!#}_y$oqc-kz>ppWHNVr;B($|@{&~=6M-Cz_vc?SHD z#?!P9>#&EpVRR2ZI!jzhC6x)R=jqz3@vMh~dF40go#YdeN-V*U*Iz?(-VV2bmPL+P^-h;?i za=%t~PK&f?bzH~y>FPH!lK1d4QZlCH)1pxs^?6RVL>ZZ7cxme45CmOO8LnLs+-NAX zxQwc96!(q=G-EAYr1yCwC>oCDT@Mw;PWI~6`gaVYKl>EMawodI%*yYB+v^^Iu$wbSP-y@n5Zl!;H z5tAq07h^x4@ut5%*<0njs2xW-N>##LMqP|8wEK<+VO`pWQ9Q1k%YusuUrOHZ@xLF5K}_$%@P_t=ApS&D?s(o?=TQ62k~-;V8Z$SYVM)Wm zu(~W0Z+W_gAx8=c$0&vJ0;=c+QoB-!BEp*ibqZu$Z#8MnJ=x4YBvofJ_k;4 zDYHuXtJ=ZgVNqTq)pkM*Fn$$_7F8i1oC|xwqo47W0>DpPk#{sxk4h4!j`>76juF;F z9(lc{&EVuqaGi>l>oeM3#?Y*Ce3__l$XXOiKJuz9Jg~hL&)M_2WN6vv2Unt+yhkD` z?3kM~@Sl4$VZ8KjI>(O8Z*A>vafoQ1%d_-4X!o1BU@-q~zXiaT%j#%z_7oO{iUo9p z5Vy`;B0k?v9Z=Tk@6x$efhZU1O7HF5I>)|wi8J<1mtTCRO%Z-NQ_c;=W>wQ}5tpu` zif%k}9ry(9ungx$`>R`z$||_BX$HHWml4rt^*AfqpPTTmC-0=ezu=ghogmN?)$P6h zIh$Rz_oW^MbgQ;5ugfn$PB%12J^isZjEPVy8=&&NErZDSh~k6i-NNsCn)pFFte;#9 zFTDI+O})yato~QM-b&pzj4`+zHm)4Z@5`g|38pC^zQhmB2Xec;{Z2p8s3hbI3m0jF z24C~2_8zpvv_YE4IKM~Y1r98@M;Y=G8JQ2oTvj&OeD%x(xbsdO?{H8r#EyvU?r^@s z!zGn`WOVE4o>IrT0ai7lI+l_8TEjK0a4l&<+&)$1H})18$?WU$ABDy;PHBSnwrF)Pe}UJR!Ch zW>y{O9((hcj*)crb1YrPFTvx z^bvWwOoA(GZWC~;BdP+a_4I@_DxjK>$YE!YDt>I8QQPF(gN>@*H5Nj=tg4Oj`gM-g zP@y0tVw$g{3B#AKt{?4BIdd)dJ>Pgow#LhOaX&MkSK;lgxNrBwR=EfnMRURO3+Go^ zVgcGsWjPJ{*PH53w3Ik$u+w>Jr*q;P_KjVW{GEVY(ugTCkLJ}#u>7JeA2h}BHh1d{ zEm(fhvX9#v)8EYk_WEWpobzB;;QReO8@Db)3!d!v(JNsi*>W5xA%xG0Z-^x0H9R|II?^S0E9X7 zsH0~JU%`ETTb^uzr%}Tk12oG-^(UVPH#yvb?gFC3Z9UzafHp&)Enc;06u7-S zAx7c}xbDpvFb7;ezv2(~>zoJV&UbpQHqrG8nI8di=ip=BsxDYgOh0#0j}AQk6pL`!5_p}$hzA^1^T8`O5(xBnxA@&%0vzZOPY53D z12hH6$eJ(W06?Yq1$e?%0-mZ`dftH^a|;0csd=V|(U+$B7Pv3Ctd%A*1||W77YB}j z5b(Y^kb#%jO%eT$+t#CKIY2)qo45_Qepr2oUI&*}m!0;?+9V6~I(LX1c(ktRL>>ST z179rwn9c6FgYVpGniX0K@Dw|A37yvX;I%kevZf~u_W|BpB|sN-pdRtcR5!T$74&%p zcxds!Q)_~amxOG*;G3pZ=cr)%XdL_qfs35DSM5K13c&4g*e6dBkRt;xO8m{Glhc4- zMPL40{fiZpF#50su2tX-Ik^y*{VCR}AE7VJ@p1&dGf$Sd!SmZmk?WiynexLU+jvu;vO(% z0YrnJc?ax)*R)&^z&#I|w{rmAX~01YywDAbz&=pz%C#}(TXWzW0Bb$onPt`A58Nl0 zUK6tTNb@UjomJeg$2l(%kYhzG_=w~LSJNc}a?ka}{jO@jaKar*v~j^B@;DEHTOd`q z_v@f$>hFQ-`Xe~Rq6La1z$35m06(0e^v$oMZ!3D?f-ipL^2)OVAgOm$C=Y6FiVNNl z#7wIO8(uE}NIQFqTR4C#fVMR4`(*IH$w|!D9QTi(8UW;q%{$x!f9C=IcRIlf;BaS@ zk`??>@flWU1bU@{drJ}gy(ovi$&Nv=lf6h1nJEDv;Td>LW^g<3MB?WS*qNt2hyEsx zm2Q;@eO3Ud?ca>50WULaJpjCT<^%4)wc!^D{uTuQ^I7mSLl3^q!e`KT<0fOWOZTSb z@f$K!?`Uiqz0t4kKt>OJmsVzuC>Rb=d*JHvG9?Ax&(yjUV3iF#@?S3gAzmw-$G;{W zSVDAo&6kDq}@6FYe`0)XwWjsI8IXfOYH9PDq#^S@v`|3HScm*jtJ3OIi!R;ILI zt}Wu~zhgXq87ukkFrI_7+|{miRaNe9@AmQq5mr~(Crhj>U3jQp4e}bWjESIV#>D||>eW;}!AU}$0px*lnmv6y0_)C?+NMUX~+QIA~8Dn!>K zPn597#E_r$$nV6EU-igGUrrd$f7c`bu1Ed{<6x6Ba_(qi$cXR7%iuVekHMALcx*{b z$J0TsNhFXOHyN9alX0-N8)*s~fk7!UOzau)(!vG3XJX8L9|ybLcy|LF2jey%cK)a1 zU^KF~2SH-USCv*h8QnK_moWM5kEz5)7v8=PZ-ba zWU}}eJ@JhJ^2^*AvgI}RlLzzQS+kh;-h94K@hkz(11x|wvToQ#i(0HhN->2@oH~YY zj;A9k7$IizP}+b2H{pdF_`NueG^z=>`u3UdQaTm95(rc!qwfA@YaLa;BbIuD0nv)I zDuS6b<5@>dVo6Qkjr)U?;pSOui4aHfGl{`UT$%hl8g+Tyz5I~~kPGKj-xXMiYWbO7smH;(v%zfP_N?Cg$CH5m<^ zw)L7*)`nxY2$u!&&FPu@-KSGkI!u*ex=cLW z5UG5BL87U1uX2K)-rdkjHU+2J9I+(lYZFhE&)OlHTO_YO@+?+|(ej6rEv7pe+`)6E zIg`+)Qx#)td1k0opchNNW}W$g4Dzg*QqD8>n-@0EeHz^yfI&)#Rm#U_Ww@yz6pd>P zG+M?ZJ*Yfd3fK7QbGR5PQLlvaZg}1qho%z?Fr>V%H@=>Ib&tRJ`cguc&wDB@NW1kJ zb_v&1HEKaBaZmY>$@)ladIO8usP`3(qdCEVZ{7XtjKl5jl=j`_%d+RjXq$w2cr&QK zC}WHjcyt#r(Tp2EeYFoVp2JJ~vWp+3>Q5~D6<2(^yJ|DGKWXQ}TeaQs0NEw%pym8`fzJ$crmu1~n-ab;N zYd`BnFOEdXlFs?U{Tb~GyGFiCt{3s>y9H@Q1W#|M+pl3ZjlJC+;v1gultmUf(^62x zebevEJ+tKjP`O*q_DwAx85%p#P7+F8dK3q*wfz9BHjzs*t7(v0E{p0$lR0vJHML|? zQCC*M<|lwl*|#~`aAG*(EYJuVL0`h`mhx1ixs{Y1ja=m&^zt7wv*6T+J6ZJH4tZ!l z;i&WsW{|b%&7wHbJ`H4RfNH4-PQFM2w)O!qj}CxoTLIb zRWx|*1L$=%MNh3Gbgi~*b>SX`35Fc;51oqa{E6;tr(!$7aTYH-w{E*QM^MX)nhMFA z2KU?+6eVO}apUFn9DukyeJY#zUP(+I>P$w7-GH%{M{@?t6AAYkero2+Pff&YpU2|u z8+e}-fyX^WnU#i}tcou};l`Tc9i-r0K;*hDsw)B3T~W{ak`Z?teWa%4SKORN=)8Im zui9%oHrL#vX8}wzQqw_W0pS1))i9+GR(``4%vVuY?ZlBnpZpTux`M-U&&5@?;O7j} ze2K643+MTX#rqr@6Hf9IV`0;D8$pA3Fw))!jL`)yhSIpqzZ8G2^tcFln)UMfaG*tx zU-nD*I6Mfy2T5zqxo8x`L#$OUIdWMBZLo?DD~khCW*osn|Sj^~|wYJBN9{YtJ9l-^le!Oe5ft7N8H zb0Ha*g9p~N7EsE{2v42eSJJAldAWQQgN;;82)Y(LtGV{ZxfveHJn_2XXEr&m_{%Tuz1(R-a~_j-(nBnizaY?BXpWcdLDNDTcIrySYBKt352=JCa z>a9T8TOxfGAyaO_9euoeiPtl5=I$riUUesPOnL!*D-*>dMn%}J%E+;sghC}LXNcBD zB(oHnYT|Iz&OzT8BW_UPURg^Ha88ENI|~JbKmuR}$Q0j=VEiZo7qUnx7PtmmY8U;f z*~>~-_~5K9sar(JQ;rEfT*}mW7>`DkgaeGCq|yjSm8{%7*5{IgsMw995&jg>E)UZp zsVJ}2_`hooPikS0$B|>WO;jmG94PfLz9z6mF|~p(B|;|?D=;I0jk#=;;MyYgo3hNX zn*4Kb5F}^M=setJRTII1pd$FMr1(8+ z$YlzpefeIs#fCskSK;JjhqjG1zbG->bw9(E_b0Ty`38b zR!-@wb*K2#Q#I^}0;8x-*H zHl8*#1jyAK-Fil0ERj87*&YSeHJ7Bs7i2l{vtDa;d2tqoF6SsU0Q% zy1l9OX>Ar)b8nvZjpz>qci^&@;1A7k++~^z6ELqG)a@hclWUr5MAZ`9nrk3+Ar;>F z7R&-O%5N>32HnHD#&Vy|#a$i7%NA-KRxpIwyp*f8)Mo>+=s5L4HJ=K0*QHaS~6MOFe?!H8uc0_W4}P!nVtym{A* z4(ZxqO4ig$=^>aJ|J1u`{?SY3RIu7i$0219Fh>v{s`Rmq0MjFZs>reiOsh!ptnzix<4UYbNm2b@B+LGufs*>=@s_=qiGva z>W=9xe52+5`vvL>U*HIPJdL}FpUc~neHo1?pM69b%|N0%LkD!(X+&76Wk@wneZj9b zG?hRN#=Rd@B(Aj@iR_E-)5#i=b{|r^q7-YB(HB4HjsT*@n)=8u@UFt-LsLV)JM@Q$BDL=10g;UtFaay!^&4w=|`P@EF03sa;JE<7A9{?(+G&I4!61EpP{0 zo}mQN-|y|>ab@GExIJ{EDDo7sOKx2U?-DukgYf^y&B#1w@!} zD{?rb!ZeTteR(yyG#465@eIz!87EKG1x!E6>AF{0T#wMlI$M0723wrN(((cLW;Uu; z#~U$I9T~wDz(mfTWqd)i5bcJSe?NSl5|2c6#_0i*j7VRG?_%T%qY>6v-kSOiO1wb0 z^4rR?(>LVb94)G>n=|f3_^{Up55iO+zSV~#Ig=M;<^~f*aP4#8iPo@tTT6(FrKW_T zZ$qCmEMR(i)T<_Jxb#<3iMnF=3U#o)wvlJWN)p}vz*sKld@*)z<6a|Wj?Lj zwRaGX<#f=&nf<7EH62Gsao zcNUT>E!1M)cMo%>Q993mzchY7!BJV+76;Dn9LT}In*s|*oPy#Wq}j^~V1`2oaWqDu z$m@^wct-Rch#Lq=S1eUti9@*&S&gfaMFZmz6L1Dm_)IG8OG})$w)mckK{@dmjXysdcAv1%S7hmfFCt=fU{?2$dd-V`OuEQAu!wog>Z@fvJtJP+8 zNwvW<*dSiB)XyXSoQD7dgRv)b+Z+BrSotcyt*eUINNCoIDLqT;OYIYRDUI_!-kn#x!Z+`6dF)4|?TV4bl|HbyG|Lx|=)U*VY zR<@#K{Ud1Q3s)A~*>Dku$lL$0@;PjV8I6na#;A~1Z&U4lK~Io$RSADi>cNQaGEsHi z|2aVdA$_VVMk-v9avHyo(0<;{5?PaOvuhsNf%e zuuW#>MXG){Ews~(3J3pSiyj~;)rPrLuow{=GF!?jDcP6C_xnYAFdnCP>a(;`Dyb_>+~dM0|lP7qGh-TyIu5&Hx7Kz%4c@y`_szzIB}+4fgocp2yNx_7KVz(M*oAA&!!;a7IC?A z?hwd$e%FuOU#XB2vQ^R4-n3o)qm?htf@fnFb?~h}vlYYUim3JbDGdHN^>ZPZ-ZD zkLXW3Nr}Dwl1CzWE((vj7Rf}m?zy}X&S)`P@6JTzr8-V|>ZPKK+d~lGWp--eKp`w9 zozBPjQW!2mL1NDOvadyjvM&Yctx!)R->2;#7cz`9&n&F_`$su4%A(%tsB#hAd=X?t zjNL4;mFAo4I6IoN&@BBK88jAXaH9g*LR?uB6kj-oJ4pfZyPny22z}>w6+DWv`}GG~ z8JhDA`E63`m;XJ#>zMI;p|{N(oFH))#rwf{_FQBX7-FrtU+`bB@)djxKVdxoD=Xij zHs8J0-fuUIli820eD|KEzf1X}m2YDHuFJo)^8KZhkJStFKaujOmJFo+kn%MOY@INk zH(`A(>R~D|qqPtD_PNq^_0pp8vq6BDy6XL+!nDdz!Fz3^rq*FB!8@{#(2VDxuY&RK zkF9)`twqH(hfR-M?u^e+4Hcz+p`!Nx&UhZ^fAaRugy!v4nt_fL(9k!rGLw6C5gtNIUQQl!b^`IbRE^(H1HMD6zA0sTg{h{lbWL!>Fte537 z^Vvxc$(6ech>A1~DfF#N@*xr+vUy%WA4ahk|1M_xAS93RR+k+Cx4fgS3y-&2H!_9( zPPbXgtqXfS9>xTB2Jsf9_Z#W?_1-04z?-}aPLRYCyibdq(jP48lR=+LlL(%iU$YsaL~|vRiBx*~^B4`)_WSuDqMR{KZsb ze-!ex_Ch|$@A||LHc3!i(sXy_*_-`wxjqd6kvcQN#Qlji=3?DZ>eX|7XUVg2_cv=t|e=LaSfR&J;>T_uf7GR*@zb|2~A@-%nZ zuLiz}RwE2=Xp)mPw0Ji@>i2s0)SU;*A#Df8jOSdQ$QU%^nXs(eL-t$Z*~0}Xx$lhU z!^ISfYaru!GebjbQL)-4`CZOt&N1V8zo0>OtKjO3IYS2#m)iad0s ztg=HB9)xREvsq4ZO`0}w|FqQH_LXgj1m&Qg5h zd03QDY-0pau^{O%XTJ94Tbf*@ig?c6ASmU_^RHYslG`600~ya#luEL3w%I^l)rpl) z?qEjSXS-3ZY9qYsU|vw0ix*@(f4A}_2l46#_@f!mQ3*iRPE)n)N-%H`EK&WjJLhPt z{JPJwL-oNYIbd%LI1=&{Iog(^viu5|T5LIB@;jbVbwrRjU`06MfQ)CWm-zew@Eu3u zVf@(VtRz-W6cJ8Tstm5DaYl==uje`OkvL7(N%io-1W^VIs#>wd&U)g`9Q>-Gy00%& zsGYhDg&-Vxj5RBZT)H+X1-ST1<6T6ol*qI~7EDYOhU&&pb99rCV&O<|Zl^m}eZgJD63-_UaBr~0Q?G&YqulFZc;-?bHI{}C zhE1%{jA!9md430eq$^y+P!)-cK;qN8d4Y`Q9pvt5&tt~3Ag;>qjOR3(a8+(q z0mRn=&!`2GSp$I-k%3gDf#*g7X?6qYD1#VU>`LAI&sztv+&)`JPnYxYBJ1tDC8{{Q zh}WEv%uuyp{>b3<=fMFrK>{s|Z+C)kUJDUZ3z6`=YV;z6=3$WZHP7VX5N$oETnpX# zd)jUop(6~ks*y_SrJ)aYL#gURbgqRNsD&9?hZ!#l3q^*Rjf6ek4YQyOe|7@!vJSV3 z47Vu_w;Kt6y&LXG8R2{k@N)l`jOVD*$moB(!zgt)rVk#&cZge+gOfLxV^0fK8Yvh+_#<(xzUr(|BU+x+?o?<`l z8u@*Sop#XW2!i#)GxJ;5h_2r0f6+CPXv20g#cm}{a@;lYM~Lu9EYVGL*T{D>IM_83 zERUr`4}ppui)O&C5hz0~2oXN+8bMF7e-9zQO|gGfb^6y3;XihbfDmCYgMeo6zq>}7 z{#Tm8|0;z1e+?r10zYsA4G|6`65e_Hn`h=bL>Qc6zi_)nT74rZqW$|6`}eL9$x>>n zfQ{oR_CG^}g9PuF{DcU{&S0V;!bG3b|A}bkhiB$5r`UJCP7&rYWQSIpol!dri325%HlPCjS<-7~XQ5YYibgxf|sZO~?LbOr&Z*tZJP?q-{+ zw2cme5aB%ElPUIN&&+o-_=#r*G=tAPxSZ5D@rCTvjqcgU*`=Lm&&=4{EX89p_?AWd zcQZKWeO|hg408Aw4?^eit!%q;%{Lb`gM(co+f`W8Y+wdaJlp^?NSL<+ROUE?_@3o* zCUSS$w1MK_zRUzH&ue-S$Ws*ImT=u>&eGMtL4FozC9h!g;&(In(~B~#0YKVLL;oDt zaR?!4hw%Oo&FnOZ5)=e@$ozx||1g7phY05eLtTbzz3p`7H~`tk2L$gTntq1}Z_6e^ z=yKnDlKCVsMj3Ri*pA`E(M&}MKDB5bN5IB=<|sHhkX5#Ap|{R$zV8N6($ zW94Nz7(&opBkVM~eP{Kys*1s`5io?H&EWh7qU=AqM(W5re{_w2o|&f)4@+k#2+w0( zIq}S#�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

    v<2Zn)xr1+m?S=_era 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 O|Mw*p2{6(p`TqeXTX`@5 diff --git a/go.mod b/go.mod index 2e9ac7a43..fd8fb0b2a 100644 --- a/go.mod +++ b/go.mod @@ -78,12 +78,14 @@ require ( github.com/prometheus/common v0.29.0 github.com/prometheus/node_exporter v1.2.2 github.com/prometheus/procfs v0.7.2 + github.com/prometheus/prometheus v1.8.2-0.20200609102542-5d7e3e970602 github.com/shirou/gopsutil v3.21.3+incompatible github.com/sirupsen/logrus v1.7.0 github.com/smartystreets/goconvey v1.6.4 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.7.0 github.com/testcontainers/testcontainers-go v0.8.0 + github.com/thanos-io/thanos v0.11.0 github.com/thejerf/suture v3.0.3+incompatible github.com/tidwall/gjson v1.6.8 github.com/twinj/uuid v1.0.0 diff --git a/go.sum b/go.sum index 607ed2c0d..c8f4c2e71 100644 --- a/go.sum +++ b/go.sum @@ -126,6 +126,7 @@ github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cq github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OneOfOne/xxhash v1.2.6 h1:U68crOE3y3MPttCMQGywZOLrTeF5HHJ3/vDBCJn9/bA= github.com/OneOfOne/xxhash v1.2.6/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= @@ -259,6 +260,7 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2 h1:iHsfF/t4aW4heW2YKfeHrVPGdtYTL4C4KocpM8KTSnI= github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= @@ -273,6 +275,7 @@ github.com/cockroachdb/apd/v2 v2.0.1/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOG github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292 h1:dzj1/xcivGjNPwwifh/dWTczkwcuqsXXFHY1X/TZMtw= github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292/go.mod h1:qRiX68mZX1lGBkTWyp3CLcenw9I94W2dLeRvMzcn9N4= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codegangsta/cli v1.19.1/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= @@ -387,6 +390,7 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= +github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/elastic/go-sysinfo v1.0.1/go.mod h1:O/D5m1VpYLwGjCYzEt63g3Z1uO3jXfwyzzjiW90t8cY= github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= @@ -397,8 +401,6 @@ github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3C github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043 h1:I3hLsM87FSASssIrIOGwJCio31dvLkvpYDKn2+r31ec= -github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE= github.com/ema/qdisc v0.0.0-20200603082823-62d0308e3e00 h1:0GHzegkDz/zSrt+Zph1OueNImPdUxoToypnkhhRYTjI= github.com/ema/qdisc v0.0.0-20200603082823-62d0308e3e00/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -440,6 +442,7 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= @@ -687,6 +690,7 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= @@ -709,7 +713,6 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= @@ -841,8 +844,6 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hashicorp/serf v0.8.5/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k= github.com/hashicorp/serf v0.9.0/go.mod h1:YL0HO+FifKOW2u1ke99DGVu1zhcpZzNwrLIqBC7vbYU= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= -github.com/hodgesds/perf-utils v0.0.8 h1:6BT6cddpouM0G7eHhLFS+XcqtPvhrzWbPreyIvgFEcg= -github.com/hodgesds/perf-utils v0.0.8/go.mod h1:F6TfvsbtrF88i++hou29dTXlI2sfsJv+gRZDtmTJkAs= github.com/hodgesds/perf-utils v0.2.5 h1:X992/V3OaNJRM8Ivcram8Hhxz4JhWiKI0T8iGCJwk2k= github.com/hodgesds/perf-utils v0.2.5/go.mod h1:X3dAE1IoPfsSKR2MDhorGY1mORNDOJTZ+0XTrtmoHFI= github.com/howeyc/fsnotify v0.9.0 h1:0gtV5JmOKH4A8SsFxG2BczSeXWWPvcMT0euZt5gDAxY= @@ -906,7 +907,6 @@ github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2E github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= -github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4 h1:nwOc1YaOrYJ37sEBrtWZrdqzK22hiJs3GpDmP3sR2Yw= github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ= github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok= github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod h1:cR77jAZG3Y3bsb8hF6fHJbFoyFukLFOkQ98S0pQz3xw= @@ -922,7 +922,6 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -1080,13 +1079,13 @@ github.com/mattn/go-xmlrpc v0.0.3/go.mod h1:mqc2dz7tP5x5BKlCahN/n+hs7OSZKJkS9JsH github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43 h1:WgyLFv10Ov49JAQI/ZLUkCZ7VJS3r74hwFIGXJsgZlY= github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo= github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0= github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc= github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= -github.com/mdlayher/netlink v1.1.0 h1:mpdLgm+brq10nI9zM1BpX1kpDbh3NLl3RSnVq6ZSkfg= github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY= github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o= github.com/mdlayher/netlink v1.2.0/go.mod h1:kwVW1io0AZy9A1E2YYgaD4Cj+C+GPkU6klXCMzIJ9p8= @@ -1098,8 +1097,6 @@ github.com/mdlayher/netlink v1.4.1 h1:I154BCU+mKlIf7BgcAJB2r7QjveNPty6uNY1g9ChVf github.com/mdlayher/netlink v1.4.1/go.mod h1:e4/KuJ+s8UhfUpO9z00/fDZZmhSrs+oxyqAS9cNgn6Q= github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00 h1:qEtkL8n1DAHpi5/AOgAckwGQUlMe4+jhL/GMt+GKIks= github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00/go.mod h1:GAFlyu4/XV68LkQKYzKhIo/WW7j3Zi0YRAz/BOoanUc= -github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee h1:hZDujBrW3ye2xxdKNFYT59D4yCH5Q0zLuNBNtysKtok= -github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8= github.com/mdlayher/wifi v0.0.0-20200527114002-84f0b9457fdd h1:50p1vPNK43pzCVX10+5MmiOerbBzC1vR6+sLB3FZewE= github.com/mdlayher/wifi v0.0.0-20200527114002-84f0b9457fdd/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8= github.com/melbahja/got v0.5.0 h1:tFp5WasOUeZ/SiW82G4SS8clb5Q/Pw6IFYvOcLgt/ZY= @@ -1195,6 +1192,7 @@ github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtb github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/oklog/ulid v0.0.0-20170117200651-66bb6560562f/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= @@ -1246,6 +1244,7 @@ github.com/opentracing-contrib/go-stdlib v0.0.0-20190519235532-cf7a6c988dc9/go.m github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= @@ -1313,8 +1312,6 @@ github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3O github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.9.0 h1:Rrch9mh17XcxvEu9D9DEpb4isxjGBtcevQjKvxPRQIU= -github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1336,15 +1333,10 @@ github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= -github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0 h1:3jqPBvKT4OHAbje2Ql7KeaaSicDBCxMYwEJU1zRJceE= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.30.0 h1:JEkYlQnpzrzQFxi6gnukFPdQ+ac82oRhzMcIduJu/Ug= github.com/prometheus/exporter-toolkit v0.6.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= -github.com/prometheus/node_exporter v1.0.1 h1:xTBtauxuNCMhuF4FKiNo2wDCuCAWgS3PoTlVbXLzNO0= -github.com/prometheus/node_exporter v1.0.1/go.mod h1:IC23eAmBHxDOtCRUgP9uqJewluDPwjStnbvWJEYtisQ= github.com/prometheus/node_exporter v1.2.2 h1:ryGA5q75gD2IFnR7rOEXA8sB5Wd1FV+v+J//Jou6bck= github.com/prometheus/node_exporter v1.2.2/go.mod h1:S/l8/X/V4kdhdG4fPMTgIrUwyYohUWZVHETm+X4yxsI= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1361,7 +1353,6 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.0.12-0.20200513160535-c6ff04bafc38/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.2 h1:zE6zJjRS9S916ptrZ326OU0++1XRwHgxkvCFflxx6Fo= @@ -1369,6 +1360,7 @@ github.com/prometheus/procfs v0.7.2/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/prometheus v0.0.0-20180315085919-58e2a31db8de/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s= github.com/prometheus/prometheus v1.8.2-0.20200110114423-1e64d757f711/go.mod h1:7U90zPoLkWjEIQcy/rweQla82OCTUzxVHE51G3OhJbI= github.com/prometheus/prometheus v1.8.2-0.20200507164740-ecee9c8abfd1/go.mod h1:S5n0C6tSgdnwWshBUceRx5G1OsjLv/EeZ9t3wIfEtsY= +github.com/prometheus/prometheus v1.8.2-0.20200609102542-5d7e3e970602 h1:EENvGjccYWwm2SKi4N9EqCKJTgkATMZffKuT33QCBeU= github.com/prometheus/prometheus v1.8.2-0.20200609102542-5d7e3e970602/go.mod h1:CwaXafRa0mm72de2GQWtfQxjGytbSKIGivWxQvjpRZs= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1418,8 +1410,7 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5I github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20180825020608-02ddb050ef6b/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= -github.com/siebenmann/go-kstat v0.0.0-20200303194639-4e8294f9e9d5 h1:rRF7gJ7t0E1bfqNLwMqgb59eb273kgi+GgLE/yEiDzs= -github.com/siebenmann/go-kstat v0.0.0-20200303194639-4e8294f9e9d5/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8= +github.com/siebenmann/go-kstat v0.0.0-20210513183136-173c9b0a9973 h1:GfSdC6wKfTGcgCS7BtzF5694Amne1pGCSTY252WhlEY= github.com/siebenmann/go-kstat v0.0.0-20210513183136-173c9b0a9973/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -1440,6 +1431,7 @@ github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJ github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a h1:os5OBNhwOwybXZMNLqT96XqtjdTtwRFw2w08uluvNeI= github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a/go.mod h1:LeFCbQYJ3KJlPs/FvPz2dy1tkpxyeNESVyCNNzRXFR0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -1491,6 +1483,7 @@ github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/testcontainers/testcontainers-go v0.8.0 h1:RF0179BF/6hZeIaa9/T7fJMr7QjzWMLIVL/5jl2JAKU= github.com/testcontainers/testcontainers-go v0.8.0/go.mod h1:m9jHAu+OOFfbE6wQf98maI/6e/LKasi+uX3MVyVox4A= +github.com/thanos-io/thanos v0.11.0 h1:UkWLa93sihcxCofelRH/NBGQxFyFU73eXIr2a+dwOFM= github.com/thanos-io/thanos v0.11.0/go.mod h1:N/Yes7J68KqvmY+xM6J5CJqEvWIvKSR5sqGtmuD6wDc= github.com/thejerf/suture v3.0.3+incompatible h1:rliKxLrY4prqHrZl79a8IJgYD0K+0GnpgwwudE12QGM= github.com/thejerf/suture v3.0.3+incompatible/go.mod h1:ibKwrVj+Uzf3XZdAiNWUouPaAbSoemxOHLmJmwheEMc= @@ -1509,7 +1502,9 @@ github.com/twinj/uuid v1.0.0 h1:fzz7COZnDrXGTAOHGuUGYd6sG+JMq+AoE7+Jlu0przk= github.com/twinj/uuid v1.0.0/go.mod h1:mMgcE1RHFUFqe5AfiwlINXisXfDGro23fWdPUfOMjRY= github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.23.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.23.1+incompatible h1:uArBYHQR0HqLFFAypI7RsWTzPSj/bDpmZZuQjMLSg1A= github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0= @@ -1653,11 +1648,9 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200128174031-69ecbb4d6d5d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200422194213-44a606286825/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -1757,7 +1750,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -1768,8 +1760,6 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 h1:Lm4OryKCca1vehdsWogr9N4t7NfZxLbJoc/H0w4K4S4= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1876,11 +1866,9 @@ golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1901,7 +1889,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -1981,7 +1968,6 @@ golang.org/x/tools v0.0.0-20200422205258-72e4a01eba43/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200603131246-cc40288be839/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200612220849-54c614fe050c/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -2086,7 +2072,6 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/monitor/api/controller/rules.go b/monitor/api/controller/rules.go deleted file mode 100644 index a113add5c..000000000 --- a/monitor/api/controller/rules.go +++ /dev/null @@ -1,125 +0,0 @@ -package controller - -import ( - "io/ioutil" - "net/http" - - httputil "github.com/goodrain/rainbond/util/http" - - "encoding/json" - - "github.com/go-chi/chi" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/sirupsen/logrus" -) - -//RuleControllerManager controller manager -type RuleControllerManager struct { - Rules *prometheus.AlertingRulesManager - Manager *prometheus.Manager -} - -//NewControllerManager new controller manager -func NewControllerManager(a *prometheus.AlertingRulesManager, p *prometheus.Manager) *RuleControllerManager { - c := &RuleControllerManager{ - Rules: a, - Manager: p, - } - return c -} - -//AddRules add rule -func (c *RuleControllerManager) AddRules(w http.ResponseWriter, r *http.Request) { - in, err := ioutil.ReadAll(r.Body) - if err != nil { - httputil.ReturnError(r, w, 400, err.Error()) - return - } - var RulesConfig prometheus.AlertingNameConfig - unmarshalErr := json.Unmarshal(in, &RulesConfig) - if unmarshalErr != nil { - logrus.Info(unmarshalErr) - httputil.ReturnError(r, w, 400, err.Error()) - return - } - c.Rules.LoadAlertingRulesConfig() - group := c.Rules.RulesConfig.Groups - for _, v := range group { - if v.Name == RulesConfig.Name { - httputil.ReturnError(r, w, 400, "Rule already exists") - return - } - } - group = append(group, &RulesConfig) - c.Rules.RulesConfig.Groups = group - c.Rules.SaveAlertingRulesConfig() - c.Manager.ReloadConfig() - httputil.ReturnSuccess(r, w, "Add rule successfully") -} - -//GetRules get rules -func (c *RuleControllerManager) GetRules(w http.ResponseWriter, r *http.Request) { - rulesName := chi.URLParam(r, "rules_name") - c.Rules.LoadAlertingRulesConfig() - for _, v := range c.Rules.RulesConfig.Groups { - if v.Name == rulesName { - httputil.ReturnSuccess(r, w, v) - return - } - } - httputil.ReturnError(r, w, 404, "Rule does not exist") -} - -//DelRules del rules -func (c *RuleControllerManager) DelRules(w http.ResponseWriter, r *http.Request) { - rulesName := chi.URLParam(r, "rules_name") - c.Rules.LoadAlertingRulesConfig() - groupsList := c.Rules.RulesConfig.Groups - for i, v := range groupsList { - if v.Name == rulesName { - groupsList = append(groupsList[:i], groupsList[i+1:]...) - c.Rules.RulesConfig.Groups = groupsList - c.Rules.SaveAlertingRulesConfig() - c.Manager.ReloadConfig() - httputil.ReturnSuccess(r, w, "successfully deleted") - return - } - } - httputil.ReturnSuccess(r, w, "") -} - -//RegRules reg rules -func (c *RuleControllerManager) RegRules(w http.ResponseWriter, r *http.Request) { - rulesName := chi.URLParam(r, "rules_name") - in, err := ioutil.ReadAll(r.Body) - if err != nil { - httputil.ReturnError(r, w, 400, err.Error()) - return - } - var RulesConfig prometheus.AlertingNameConfig - unmarshalErr := json.Unmarshal(in, &RulesConfig) - if unmarshalErr != nil { - logrus.Info(unmarshalErr) - httputil.ReturnError(r, w, 400, err.Error()) - return - } - c.Rules.LoadAlertingRulesConfig() - group := c.Rules.RulesConfig.Groups - for i, v := range group { - if v.Name == rulesName { - group[i] = &RulesConfig - c.Rules.SaveAlertingRulesConfig() - c.Manager.ReloadConfig() - httputil.ReturnSuccess(r, w, "Update rule succeeded") - return - } - } - httputil.ReturnError(r, w, 404, "The rule to be updated does not exist") -} - -//GetAllRules get all rules -func (c *RuleControllerManager) GetAllRules(w http.ResponseWriter, r *http.Request) { - c.Rules.LoadAlertingRulesConfig() - val := c.Rules.RulesConfig - httputil.ReturnSuccess(r, w, val) -} diff --git a/monitor/api/router.go b/monitor/api/router.go deleted file mode 100644 index 1029f7cdc..000000000 --- a/monitor/api/router.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package api - -import ( - "net/http" - - "github.com/goodrain/rainbond/util" - - "github.com/go-chi/chi" - "github.com/goodrain/rainbond/monitor/api/controller" - httputil "github.com/goodrain/rainbond/util/http" -) - -//Server api server -func Server(c *controller.RuleControllerManager) *chi.Mux { - r := chi.NewRouter() - r.Route("/monitor", func(r chi.Router) { - r.Get("/health", func(w http.ResponseWriter, r *http.Request) { - bean := map[string]string{"status": "health", "info": "monitor service health"} - httputil.ReturnSuccess(r, w, bean) - }) - }) - r.Route("/v2/rules", func(r chi.Router) { - r.Post("/", c.AddRules) - r.Put("/{rules_name}", c.RegRules) - r.Delete("/{rules_name}", c.DelRules) - r.Get("/{rules_name}", c.GetRules) - r.Get("/all", c.GetAllRules) - }) - util.ProfilerSetup(r) - return r -} diff --git a/monitor/callback/api.go b/monitor/callback/api.go deleted file mode 100644 index 6c37d47bb..000000000 --- a/monitor/callback/api.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "os" - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" -) - -//RbdAPI rbd api metrics -type RbdAPI struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoint -func (b *RbdAPI) UpdateEndpoints(endpoints ...*config.Endpoint) { - scrape := b.toScrape() - b.Prometheus.UpdateScrape(scrape) -} - -//Error handle error -func (b *RbdAPI) Error(err error) { - logrus.Error(err) -} - -//Name name -func (b *RbdAPI) Name() string { - return "rbdapi" -} - -func (b *RbdAPI) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(b.sortedEndpoints)) - for _, end := range b.sortedEndpoints { - ts = append(ts, end) - } - namespace := os.Getenv("NAMESPACE") - - return &prometheus.ScrapeConfig{ - JobName: b.Name(), - ScrapeInterval: model.Duration(time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - HonorLabels: true, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - KubernetesSDConfigs: []*prometheus.SDConfig{ - &prometheus.SDConfig{ - Role: prometheus.RoleEndpoint, - NamespaceDiscovery: prometheus.NamespaceDiscovery{ - Names: []string{namespace}, - }, - Selectors: []prometheus.SelectorConfig{ - prometheus.SelectorConfig{ - Role: prometheus.RoleEndpoint, - Field: "metadata.name=rbd-api-api-inner", - }, - }, - }, - }, - }, - } -} diff --git a/monitor/callback/app.go b/monitor/callback/app.go deleted file mode 100644 index ffb452d0c..000000000 --- a/monitor/callback/app.go +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/goodrain/rainbond/util/watch" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" -) - -// App 指app运行时信息,来源于所有子节点上的node -// 127.0.0.1:6100/app/metrics -type App struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string - - endpoints []*config.Endpoint -} - -//UpdateEndpoints update endpoint -func (e *App) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrape := e.toScrape() - e.Prometheus.UpdateScrape(scrape) -} - -func (e *App) Error(err error) { - logrus.Error(err) -} - -//Name name -func (e *App) Name() string { - return "app" -} - -func (e *App) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: e.Name(), - ScrapeInterval: model.Duration(5 * time.Second), - ScrapeTimeout: model.Duration(4 * time.Second), - MetricsPath: "/app/metrics", - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "component": model.LabelValue(e.Name()), - }, - }, - }, - }, - } -} - -//AddEndpoint add endpoint -func (e *App) AddEndpoint(end *config.Endpoint) { - e.endpoints = append(e.endpoints, end) - e.UpdateEndpoints(e.endpoints...) -} - -//Add add -func (e *App) Add(event *watch.Event) { - url := gjson.Get(event.GetValueString(), "internal_ip").String() + ":6100" - end := &config.Endpoint{ - URL: url, - Name: event.GetKey(), - } - e.AddEndpoint(end) -} - -//Modify Modify -func (e *App) Modify(event *watch.Event) { - var update bool - url := gjson.Get(event.GetValueString(), "internal_ip").String() + ":6100" - for i, end := range e.endpoints { - if end.Name == event.GetKey() { - e.endpoints[i].URL = url - e.UpdateEndpoints(e.endpoints...) - update = true - break - } - } - if !update { - e.endpoints = append(e.endpoints, &config.Endpoint{ - Name: event.GetKey(), - URL: url, - }) - e.UpdateEndpoints(e.endpoints...) - } -} - -//Delete Delete -func (e *App) Delete(event *watch.Event) { - for i, end := range e.endpoints { - if end.Name == event.GetKey() { - e.endpoints = append(e.endpoints[:i], e.endpoints[i+1:]...) - e.UpdateEndpoints(e.endpoints...) - break - } - } -} diff --git a/monitor/callback/appstatus.go b/monitor/callback/appstatus.go deleted file mode 100644 index 5317287a2..000000000 --- a/monitor/callback/appstatus.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "strings" - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" -) - -// Worker worker monitor -// 127.0.0.1:6369/metrics -type Worker struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoint -func (e *Worker) UpdateEndpoints(endpoints ...*config.Endpoint) { - // 用v3 API注册,返回json格试,所以要提前处理一下 - newEndpoints := make([]*config.Endpoint, 0, len(endpoints)) - for _, end := range endpoints { - newEnd := *end - newEndpoints = append(newEndpoints, &newEnd) - } - - for i, end := range endpoints { - newEndpoints[i].URL = gjson.Get(end.URL, "Addr").String() - } - - newArr := utils.TrimAndSort(newEndpoints) - - // change port - for i, end := range newArr { - newArr[i] = strings.Split(end, ":")[0] + ":6369" - } - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrape := e.toScrape() - e.Prometheus.UpdateScrape(scrape) -} - -func (e *Worker) Error(err error) { - logrus.Error(err) -} - -//Name return name -func (e *Worker) Name() string { - return "worker" -} - -func (e *Worker) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: e.Name(), - ScrapeInterval: model.Duration(3 * time.Minute), - ScrapeTimeout: model.Duration(60 * time.Second), - MetricsPath: "/metrics", - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "component": model.LabelValue(e.Name()), - "service_name": model.LabelValue(e.Name()), - }, - }, - }, - }, - MetricRelabelConfigs: []*prometheus.RelabelConfig{ - { - SourceLabels: model.LabelNames{model.LabelName("tenant_id")}, - TargetLabel: "namespace", - }, - }, - } -} diff --git a/monitor/callback/builder.go b/monitor/callback/builder.go deleted file mode 100644 index 0666a39b4..000000000 --- a/monitor/callback/builder.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" -) - -//Builder builder -type Builder struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoints -func (b *Builder) UpdateEndpoints(endpoints ...*config.Endpoint) { - // 用v3 API注册,返回json格试,所以要提前处理一下 - newEndpoints := make([]*config.Endpoint, 0, len(endpoints)) - for _, end := range endpoints { - newEnd := *end - newEndpoints = append(newEndpoints, &newEnd) - } - - for i, end := range endpoints { - newEndpoints[i].URL = gjson.Get(end.URL, "Addr").String() - } - - newArr := utils.TrimAndSort(newEndpoints) - - if utils.ArrCompare(b.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", b.Name()) - return - } - - b.sortedEndpoints = newArr - - scrape := b.toScrape() - b.Prometheus.UpdateScrape(scrape) -} - -//Error handle error -func (b *Builder) Error(err error) { - logrus.Error(err) -} - -//Name name -func (b *Builder) Name() string { - return "builder" -} - -func (b *Builder) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(b.sortedEndpoints)) - for _, end := range b.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: b.Name(), - ScrapeInterval: model.Duration(time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - HonorLabels: true, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "service_name": model.LabelValue(b.Name()), - "component": model.LabelValue(b.Name()), - }, - }, - }, - }, - } -} diff --git a/monitor/callback/cadvisor.go b/monitor/callback/cadvisor.go deleted file mode 100644 index 6db560fbe..000000000 --- a/monitor/callback/cadvisor.go +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "fmt" - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/goodrain/rainbond/util" - "github.com/goodrain/rainbond/util/watch" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" -) - -// Cadvisor 指容器监控数据,来源于所有子节点上的kubelet -// 127.0.0.1:4194/metrics -type Cadvisor struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string - ListenPort int - - endpoints []*config.Endpoint -} - -//UpdateEndpoints update endpoint -func (c *Cadvisor) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(c.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", c.Name()) - return - } - - c.sortedEndpoints = newArr - - scrape := c.toScrape() - c.Prometheus.UpdateScrape(scrape) -} - -func (c *Cadvisor) Error(err error) { - logrus.Error(err) -} - -//Name name -func (c *Cadvisor) Name() string { - return "cadvisor" -} - -func (c *Cadvisor) toScrape() *prometheus.ScrapeConfig { - apiServerHost := util.Getenv("KUBERNETES_SERVICE_HOST", "kubernetes.default.svc") - apiServerPort := util.Getenv("KUBERNETES_SERVICE_PORT", "443") - - return &prometheus.ScrapeConfig{ - JobName: c.Name(), - ScrapeInterval: model.Duration(15 * time.Second), - ScrapeTimeout: model.Duration(10 * time.Second), - Scheme: "https", - HTTPClientConfig: prometheus.HTTPClientConfig{ - TLSConfig: prometheus.TLSConfig{ - CAFile: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt", - InsecureSkipVerify: true, - }, - BearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token", - }, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - KubernetesSDConfigs: []*prometheus.SDConfig{ - { - Role: "node", - }, - }, - }, - RelabelConfigs: []*prometheus.RelabelConfig{ - { - TargetLabel: "__address__", - Replacement: apiServerHost + ":" + apiServerPort, - }, - { - SourceLabels: []model.LabelName{ - "__meta_kubernetes_node_name", - }, - Regex: prometheus.MustNewRegexp("(.+)"), - TargetLabel: "__metrics_path__", - Replacement: "/api/v1/nodes/${1}/proxy/metrics/cadvisor", - }, - { - Action: prometheus.RelabelAction("labelmap"), - Regex: prometheus.MustNewRegexp("__meta_kubernetes_node_label_(.+)"), - }, - }, - MetricRelabelConfigs: []*prometheus.RelabelConfig{ - { - SourceLabels: []model.LabelName{"name"}, - Regex: prometheus.MustNewRegexp("k8s_(.*)_(.*)_(.*)_(.*)_(.*)"), - TargetLabel: "service_id", - Replacement: "${1}", - }, - { - SourceLabels: []model.LabelName{"name"}, - //k8s_POD_709dfaa8d9b9498a827fd5c503e0d1a1-deployment-8679ff667-j8fj8_5201d8a00fa743c18eb6553778f77c84_d6670db0-00a7-4d2c-a92e-18a19541268d_0 - Regex: prometheus.MustNewRegexp("k8s_POD_(.*)-deployment-(.*)"), - TargetLabel: "service_id", - Replacement: "${1}", - }, - }, - } -} - -//AddEndpoint add endpoint -func (c *Cadvisor) AddEndpoint(end *config.Endpoint) { - c.endpoints = append(c.endpoints, end) - c.UpdateEndpoints(c.endpoints...) -} - -//Add add -func (c *Cadvisor) Add(event *watch.Event) { - url := fmt.Sprintf("%s:%d", gjson.Get(event.GetValueString(), "internal_ip").String(), c.ListenPort) - end := &config.Endpoint{ - Name: event.GetKey(), - URL: url, - } - c.AddEndpoint(end) -} - -//Modify update -func (c *Cadvisor) Modify(event *watch.Event) { - var update bool - url := fmt.Sprintf("%s:%d", gjson.Get(event.GetValueString(), "internal_ip").String(), c.ListenPort) - for i, end := range c.endpoints { - if end.Name == event.GetKey() { - c.endpoints[i].URL = url - c.UpdateEndpoints(c.endpoints...) - update = true - break - } - } - if !update { - c.endpoints = append(c.endpoints, &config.Endpoint{ - Name: event.GetKey(), - URL: url, - }) - } -} - -//Delete delete -func (c *Cadvisor) Delete(event *watch.Event) { - for i, end := range c.endpoints { - if end.Name == event.GetKey() { - c.endpoints = append(c.endpoints[:i], c.endpoints[i+1:]...) - c.UpdateEndpoints(c.endpoints...) - break - } - } -} diff --git a/monitor/callback/cadvisor_test.go b/monitor/callback/cadvisor_test.go deleted file mode 100644 index 1403c9ebd..000000000 --- a/monitor/callback/cadvisor_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package callback - -import ( - "regexp" - "testing" - - yaml "gopkg.in/yaml.v2" -) - -func TestCadvisorYaml(t *testing.T) { - c := &Cadvisor{} - cfg := c.toScrape() - _, err := yaml.Marshal(cfg) - if err != nil { - t.Error(err) - t.FailNow() - } -} - -func TestRegex(t *testing.T) { - match, err := regexp.Compile("k8s_(.*)_(.*)_(.*)_(.*)_(.*)") - if err != nil { - t.Fatal(err) - } - result := match.FindStringSubmatch("k8s_827d488f787c4c109013e8119d42078d_827d488f787c4c109013e8119d42078d-deployment-85f9fd5db6-gmg66_991fe537972e45378acb7920bde7599b_f9eed2bb-311a-48a5-8ea9-4e2df77fc12e_0") - t.Log(result) - result = match.FindStringSubmatch("k8s_d89ffc075ca74476b6040c8e8bae9756_grae9756-0_3be96e95700a480c9b37c6ef5daf3566_dfe3018b-d0ef-45de-85d6-62f01360eabf_0") - t.Log(result) -} diff --git a/monitor/callback/etcd.go b/monitor/callback/etcd.go deleted file mode 100644 index 10dd5128d..000000000 --- a/monitor/callback/etcd.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" -) - -//Etcd etcd discover -type Etcd struct { - discover.Callback - Prometheus *prometheus.Manager - Scheme string - TLSConfig prometheus.TLSConfig - sortedEndpoints []string -} - -//UpdateEndpoints update endpoints -func (e *Etcd) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrape := e.toScrape() - e.Prometheus.UpdateScrape(scrape) -} - -func (e *Etcd) Error(err error) { - logrus.Error(err) -} - -//Name name -func (e *Etcd) Name() string { - return "etcd" -} - -func (e *Etcd) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - sc := &prometheus.ScrapeConfig{ - JobName: e.Name(), - Scheme: e.Scheme, - ScrapeInterval: model.Duration(1 * time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "component": model.LabelValue(e.Name()), - }, - }, - }, - }, - } - if e.Scheme == "https" { - sc.HTTPClientConfig = prometheus.HTTPClientConfig{ - TLSConfig: e.TLSConfig, - } - } - return sc -} diff --git a/monitor/callback/eventlog.go b/monitor/callback/eventlog.go deleted file mode 100644 index 3d11cfe14..000000000 --- a/monitor/callback/eventlog.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" -) - -//EventLog event log -type EventLog struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoint -func (e *EventLog) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrape := e.toScrape() - e.Prometheus.UpdateScrape(scrape) -} - -func (e *EventLog) Error(err error) { - logrus.Error(err) -} - -//Name name -func (e *EventLog) Name() string { - return "eventlog" -} - -func (e *EventLog) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: e.Name(), - ScrapeInterval: model.Duration(1 * time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - HonorLabels: true, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "service_name": model.LabelValue(e.Name()), - "component": model.LabelValue(e.Name()), - }, - }, - }, - }, - } -} diff --git a/monitor/callback/gateway.go b/monitor/callback/gateway.go deleted file mode 100644 index 6a7608a6d..000000000 --- a/monitor/callback/gateway.go +++ /dev/null @@ -1,91 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2019 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" -) - -//GatewayNode node discover -type GatewayNode struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string - - endpoints []*config.Endpoint -} - -//UpdateEndpoints update endpoints -func (e *GatewayNode) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrape := e.toScrape() - e.Prometheus.UpdateScrape(scrape) -} - -func (e *GatewayNode) Error(err error) { - logrus.Error(err) -} - -//Name name -func (e *GatewayNode) Name() string { - return "gateway" -} - -func (e *GatewayNode) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: e.Name(), - ScrapeInterval: model.Duration(30 * time.Second), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{}, - }, - }, - }, - } -} - -//AddEndpoint add endpoint -func (e *GatewayNode) AddEndpoint(end *config.Endpoint) { - e.endpoints = append(e.endpoints, end) - e.UpdateEndpoints(e.endpoints...) -} diff --git a/monitor/callback/mq.go b/monitor/callback/mq.go deleted file mode 100644 index a95262e66..000000000 --- a/monitor/callback/mq.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" -) - -//Mq discover -type Mq struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoint -func (m *Mq) UpdateEndpoints(endpoints ...*config.Endpoint) { - newEndpoints := make([]*config.Endpoint, 0, len(endpoints)) - for _, end := range endpoints { - newEnd := *end - newEndpoints = append(newEndpoints, &newEnd) - } - - for i, end := range endpoints { - newEndpoints[i].URL = gjson.Get(end.URL, "Addr").String() - } - - newArr := utils.TrimAndSort(newEndpoints) - - if utils.ArrCompare(m.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", m.Name()) - return - } - - m.sortedEndpoints = newArr - - scrape := m.toScrape() - m.Prometheus.UpdateScrape(scrape) -} - -func (m *Mq) Error(err error) { - logrus.Error(err) -} - -//Name name -func (m *Mq) Name() string { - return "mq" -} - -func (m *Mq) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(m.sortedEndpoints)) - for _, end := range m.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: m.Name(), - ScrapeInterval: model.Duration(time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - HonorLabels: true, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "service_name": model.LabelValue(m.Name()), - "component": model.LabelValue(m.Name()), - }, - }, - }, - }, - } -} diff --git a/monitor/callback/node.go b/monitor/callback/node.go deleted file mode 100644 index 7966c6989..000000000 --- a/monitor/callback/node.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/goodrain/rainbond/util/watch" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" -) - -//Node node discover -type Node struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string - - endpoints []*config.Endpoint -} - -//UpdateEndpoints update endpoints -func (e *Node) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrapes := e.toScrape() - for _, scrape := range scrapes { - e.Prometheus.UpdateScrape(scrape) - } -} - -func (e *Node) Error(err error) { - logrus.Error(err) -} - -//Name name -func (e *Node) Name() string { - return "rbd_node" -} - -func (e *Node) toScrape() []*prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - return []*prometheus.ScrapeConfig{&prometheus.ScrapeConfig{ - JobName: e.Name(), - ScrapeInterval: model.Duration(30 * time.Second), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/node/metrics", - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "component": model.LabelValue(e.Name()), - }, - }, - }, - }, - }, - &prometheus.ScrapeConfig{ - JobName: "rbd_cluster", - ScrapeInterval: model.Duration(30 * time.Second), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/cluster/metrics", - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{}, - }, - }, - }, - }, - } -} - -//AddEndpoint add endpoint -func (e *Node) AddEndpoint(end *config.Endpoint) { - e.endpoints = append(e.endpoints, end) - e.UpdateEndpoints(e.endpoints...) -} - -//Add add -func (e *Node) Add(event *watch.Event) { - url := gjson.Get(event.GetValueString(), "internal_ip").String() + ":6100" - end := &config.Endpoint{ - Name: event.GetKey(), - URL: url, - } - e.AddEndpoint(end) -} - -//Modify modify -func (e *Node) Modify(event *watch.Event) { - var update bool - url := gjson.Get(event.GetValueString(), "internal_ip").String() + ":6100" - for i, end := range e.endpoints { - if end.Name == event.GetKey() { - e.endpoints[i].URL = url - e.UpdateEndpoints(e.endpoints...) - update = true - break - } - } - if !update { - e.endpoints = append(e.endpoints, &config.Endpoint{ - Name: event.GetKey(), - URL: url, - }) - e.UpdateEndpoints(e.endpoints...) - } -} - -//Delete delete -func (e *Node) Delete(event *watch.Event) { - for i, end := range e.endpoints { - if end.Name == event.GetKey() { - e.endpoints = append(e.endpoints[:i], e.endpoints[i+1:]...) - e.UpdateEndpoints(e.endpoints...) - break - } - } -} diff --git a/monitor/callback/promethes.go b/monitor/callback/promethes.go deleted file mode 100644 index 6ae8fe5d5..000000000 --- a/monitor/callback/promethes.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package callback - -import ( - "time" - - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/goodrain/rainbond/monitor/utils" - "github.com/prometheus/common/model" - "github.com/sirupsen/logrus" -) - -// Prometheus 指prometheus的运行指标,数据来源于prometheus自身API -type Prometheus struct { - discover.Callback - Prometheus *prometheus.Manager - sortedEndpoints []string -} - -//UpdateEndpoints update endpoint -func (e *Prometheus) UpdateEndpoints(endpoints ...*config.Endpoint) { - newArr := utils.TrimAndSort(endpoints) - - if utils.ArrCompare(e.sortedEndpoints, newArr) { - logrus.Debugf("The endpoints is not modify: %s", e.Name()) - return - } - - e.sortedEndpoints = newArr - - scrape := e.toScrape() - e.Prometheus.UpdateScrape(scrape) -} - -//Error handle error -func (e *Prometheus) Error(err error) { - logrus.Error(err) -} - -//Name name -func (e *Prometheus) Name() string { - return "prometheus" -} - -func (e *Prometheus) toScrape() *prometheus.ScrapeConfig { - ts := make([]string, 0, len(e.sortedEndpoints)) - for _, end := range e.sortedEndpoints { - ts = append(ts, end) - } - - return &prometheus.ScrapeConfig{ - JobName: e.Name(), - ScrapeInterval: model.Duration(time.Minute), - ScrapeTimeout: model.Duration(30 * time.Second), - MetricsPath: "/metrics", - HonorLabels: true, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: ts, - Labels: map[model.LabelName]model.LabelValue{ - "component": model.LabelValue(e.Name()), - }, - }, - }, - }, - } -} diff --git a/monitor/custom/custom.go b/monitor/custom/custom.go deleted file mode 100644 index 2858be4de..000000000 --- a/monitor/custom/custom.go +++ /dev/null @@ -1,40 +0,0 @@ -package custom - -import ( - "time" - - "github.com/goodrain/rainbond/monitor/prometheus" - "github.com/prometheus/common/model" -) - -// Metrics metrics struct -type Metrics struct { - Name string - Metrics []string - Interval time.Duration - Timeout time.Duration - Scheme string - Path string -} - -// AddMetrics add mysql metrics into prometheus -func AddMetrics(p *prometheus.Manager, metrics Metrics) { - p.UpdateScrape(&prometheus.ScrapeConfig{ - JobName: metrics.Name, - ScrapeInterval: model.Duration(metrics.Interval), - ScrapeTimeout: model.Duration(metrics.Timeout), - MetricsPath: metrics.Path, - Scheme: metrics.Scheme, - ServiceDiscoveryConfig: prometheus.ServiceDiscoveryConfig{ - StaticConfigs: []*prometheus.Group{ - { - Targets: metrics.Metrics, - Labels: map[model.LabelName]model.LabelValue{ - "component": model.LabelValue(metrics.Name), - "service_name": model.LabelValue(metrics.Name), - }, - }, - }, - }, - }) -} diff --git a/monitor/monitor.go b/monitor/monitor.go index d698eec16..043b1ef6c 100644 --- a/monitor/monitor.go +++ b/monitor/monitor.go @@ -20,262 +20,68 @@ package monitor import ( "context" + "fmt" "time" - v3 "github.com/coreos/etcd/clientv3" "github.com/goodrain/rainbond/cmd/monitor/option" - discoverv1 "github.com/goodrain/rainbond/discover" - discoverv2 "github.com/goodrain/rainbond/discover.v2" - "github.com/goodrain/rainbond/discover/config" - "github.com/goodrain/rainbond/monitor/callback" "github.com/goodrain/rainbond/monitor/prometheus" - etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" - "github.com/goodrain/rainbond/util/watch" + externalversions "github.com/prometheus-operator/prometheus-operator/pkg/client/informers/externalversions" + "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned" "github.com/sirupsen/logrus" - "github.com/tidwall/gjson" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) //Monitor monitor type Monitor struct { - config *option.Config - ctx context.Context - cancel context.CancelFunc - client *v3.Client - timeout time.Duration - manager *prometheus.Manager - discoverv1 discoverv1.Discover - discoverv2 discoverv2.Discover - serviceMonitor *prometheus.ServiceMonitorController - stopCh chan struct{} + config *option.Config + ctx context.Context + cancel context.CancelFunc + manager *prometheus.Manager + prometheusOperator *prometheus.PrometheusOperator + stopCh chan struct{} } //Start start func (d *Monitor) Start() { - d.discoverv1.AddProject("prometheus", &callback.Prometheus{Prometheus: d.manager}) - d.discoverv1.AddProject("event_log_event_http", &callback.EventLog{Prometheus: d.manager}) - d.discoverv1.AddProject("gateway", &callback.GatewayNode{Prometheus: d.manager}) - d.discoverv2.AddProject("builder", &callback.Builder{Prometheus: d.manager}) - d.discoverv2.AddProject("mq", &callback.Mq{Prometheus: d.manager}) - d.discoverv2.AddProject("app_sync_runtime_server", &callback.Worker{Prometheus: d.manager}) - - // node and app runtime metrics needs to be monitored separately - go d.discoverNodes(&callback.Node{Prometheus: d.manager}, &callback.App{Prometheus: d.manager}, d.ctx.Done()) - - // monitor etcd members - go d.discoverEtcd(&callback.Etcd{ - Prometheus: d.manager, - Scheme: func() string { - if d.config.EtcdCertFile != "" { - return "https" - } - return "http" - }(), - TLSConfig: prometheus.TLSConfig{ - CAFile: d.config.EtcdCaFile, - CertFile: d.config.EtcdCertFile, - KeyFile: d.config.EtcdKeyFile, - }, - }, d.ctx.Done()) - - // monitor Cadvisor - go d.discoverCadvisor(&callback.Cadvisor{ - Prometheus: d.manager, - ListenPort: d.config.CadvisorListenPort, - }, d.ctx.Done()) - - // kubernetes service discovery - rbdapi := callback.RbdAPI{Prometheus: d.manager} - rbdapi.UpdateEndpoints(nil) - - // service monitor - d.serviceMonitor.Run(d.stopCh) -} - -func (d *Monitor) discoverNodes(node *callback.Node, app *callback.App, done <-chan struct{}) { - // start listen node modified - watcher := watch.New(d.client, "") - w, err := watcher.WatchList(d.ctx, "/rainbond/nodes", "") - if err != nil { - logrus.Error("failed to watch list for discover all nodes: ", err) - return - } - defer w.Stop() - - for { - select { - case event, ok := <-w.ResultChan(): - if !ok { - logrus.Warn("the events channel is closed.") - return - } - - switch event.Type { - case watch.Added: - node.Add(&event) - - isSlave := gjson.Get(event.GetValueString(), "labels.rainbond_node_rule_compute").String() - if isSlave == "true" { - app.Add(&event) - } - case watch.Modified: - node.Modify(&event) - - isSlave := gjson.Get(event.GetValueString(), "labels.rainbond_node_rule_compute").String() - if isSlave == "true" { - app.Modify(&event) - } - case watch.Deleted: - node.Delete(&event) - - isSlave := gjson.Get(event.GetPreValueString(), "labels.rainbond_node_rule_compute").String() - if isSlave == "true" { - app.Delete(&event) - } - case watch.Error: - logrus.Error("error when read a event from result chan for discover all nodes: ", event.Error) - } - case <-done: - logrus.Info("stop discover nodes because received stop signal.") - return - } - - } - -} - -func (d *Monitor) discoverCadvisor(c *callback.Cadvisor, done <-chan struct{}) { - // start listen node modified - watcher := watch.New(d.client, "") - w, err := watcher.WatchList(d.ctx, "/rainbond/nodes", "") - if err != nil { - logrus.Error("failed to watch list for discover all nodes: ", err) - return - } - defer w.Stop() - - for { - select { - case event, ok := <-w.ResultChan(): - if !ok { - logrus.Warn("the events channel is closed.") - return - } - switch event.Type { - case watch.Added: - isSlave := gjson.Get(event.GetValueString(), "labels.rainbond_node_rule_compute").String() - if isSlave == "true" { - c.Add(&event) - } - case watch.Modified: - isSlave := gjson.Get(event.GetValueString(), "labels.rainbond_node_rule_compute").String() - if isSlave == "true" { - c.Modify(&event) - } - case watch.Deleted: - isSlave := gjson.Get(event.GetPreValueString(), "labels.rainbond_node_rule_compute").String() - if isSlave == "true" { - c.Delete(&event) - } - case watch.Error: - logrus.Error("error when read a event from result chan for discover all nodes: ", event.Error) - } - case <-done: - logrus.Info("stop discover nodes because received stop signal.") - return - } - - } - -} - -func (d *Monitor) discoverEtcd(e *callback.Etcd, done <-chan struct{}) { - t := time.Tick(time.Minute) - for { - select { - case <-done: - logrus.Info("stop discover etcd because received stop signal.") - return - case <-t: - resp, err := d.client.MemberList(d.ctx) - if err != nil { - logrus.Error("Failed to list etcd members for discover etcd.") - continue - } - - endpoints := make([]*config.Endpoint, 0, 5) - for _, member := range resp.Members { - if len(member.ClientURLs) >= 1 { - url := member.ClientURLs[0] - end := &config.Endpoint{ - URL: url, - } - endpoints = append(endpoints, end) - } - } - logrus.Debugf("etcd endpoints: %+v", endpoints) - e.UpdateEndpoints(endpoints...) - } - } + logrus.Info("start init prometheus operator") + d.prometheusOperator.Run(d.stopCh) + logrus.Info("init prometheus operator success") } // Stop stop monitor func (d *Monitor) Stop() { - logrus.Info("Stopping all child process for monitor") + d.prometheusOperator.Stop() d.cancel() - d.discoverv1.Stop() - d.discoverv2.Stop() - d.client.Close() close(d.stopCh) + logrus.Info("prometheus operator stoped") } // NewMonitor new monitor -func NewMonitor(opt *option.Config, p *prometheus.Manager) *Monitor { - ctx, cancel := context.WithCancel(context.Background()) - defaultTimeout := time.Second * 3 - - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: opt.EtcdEndpoints, - DialTimeout: defaultTimeout, - CaFile: opt.EtcdCaFile, - CertFile: opt.EtcdCertFile, - KeyFile: opt.EtcdKeyFile, - } - - cli, err := etcdutil.NewClient(ctx, etcdClientArgs) - v3.New(v3.Config{}) - if err != nil { - logrus.Fatal(err) - } - - dc1, err := discoverv1.GetDiscover(config.DiscoverConfig{EtcdClientArgs: etcdClientArgs}) - if err != nil { - logrus.Fatal(err) - } - - dc3, err := discoverv2.GetDiscover(config.DiscoverConfig{EtcdClientArgs: etcdClientArgs}) - if err != nil { - logrus.Fatal(err) - } +func NewMonitor(opt *option.Config, p *prometheus.Manager) (*Monitor, error) { restConfig, err := k8sutil.NewRestConfig(opt.KubeConfig) if err != nil { - logrus.Fatal(err) + return nil, fmt.Errorf("new kube api rest config failure %s", err.Error()) } - + ctx, cancel := context.WithCancel(context.Background()) d := &Monitor{ - config: opt, - ctx: ctx, - cancel: cancel, - manager: p, - client: cli, - discoverv1: dc1, - discoverv2: dc3, - timeout: defaultTimeout, - stopCh: make(chan struct{}), + config: opt, + ctx: ctx, + cancel: cancel, + manager: p, + stopCh: make(chan struct{}), } - d.serviceMonitor, err = prometheus.NewServiceMonitorController(ctx, restConfig, p) + c, err := versioned.NewForConfig(restConfig) if err != nil { - logrus.Fatal(err) + return nil, err } - return d + smFactory := externalversions.NewSharedInformerFactoryWithOptions(c, 5*time.Minute, + externalversions.WithTweakListOptions(func(options *metav1.ListOptions) { + options.LabelSelector = "creator=Rainbond" + })) + d.prometheusOperator, err = prometheus.NewPrometheusOperator(ctx, smFactory, p) + if err != nil { + return nil, err + } + return d, nil } diff --git a/monitor/prometheus/etcd_alert.yaml b/monitor/prometheus/etcd_alert.yaml deleted file mode 100644 index e54a02506..000000000 --- a/monitor/prometheus/etcd_alert.yaml +++ /dev/null @@ -1,144 +0,0 @@ -groups: - - name: etcd3_alert.rules - rules: - - alert: InsufficientMembers - expr: count(up{job="etcd"} == 0) > (count(up{job="etcd"}) / 2 - 1) - for: 3m - labels: - severity: critical - annotations: - description: If one more etcd member goes down the cluster will be unavailable - summary: etcd cluster insufficient members - - alert: NoLeader - expr: etcd_server_has_leader{job="etcd"} == 0 - for: 1m - labels: - severity: critical - annotations: - description: etcd member {{ $labels.instance }} has no leader - summary: etcd member has no leader - - alert: HighNumberOfLeaderChanges - expr: increase(etcd_server_leader_changes_seen_total{job="etcd"}[1h]) > 3 - labels: - severity: warning - annotations: - description: etcd instance {{ $labels.instance }} has seen {{ $value }} leader - changes within the last hour - summary: a high number of leader changes within the etcd cluster are happening - - alert: HighNumberOfFailedGRPCRequests - expr: sum(rate(etcd_grpc_requests_failed_total{job="etcd"}[5m])) BY (grpc_method) - / sum(rate(etcd_grpc_total{job="etcd"}[5m])) BY (grpc_method) > 0.01 - for: 10m - labels: - severity: warning - annotations: - description: '{{ $value }}% of requests for {{ $labels.grpc_method }} failed - on etcd instance {{ $labels.instance }}' - summary: a high number of gRPC requests are failing - - alert: HighNumberOfFailedGRPCRequests - expr: sum(rate(etcd_grpc_requests_failed_total{job="etcd"}[5m])) BY (grpc_method) - / sum(rate(etcd_grpc_total{job="etcd"}[5m])) BY (grpc_method) > 0.05 - for: 5m - labels: - severity: critical - annotations: - description: '{{ $value }}% of requests for {{ $labels.grpc_method }} failed - on etcd instance {{ $labels.instance }}' - summary: a high number of gRPC requests are failing - - alert: GRPCRequestsSlow - expr: histogram_quantile(0.99, rate(etcd_grpc_unary_requests_duration_seconds_bucket[5m])) > 0.15 - for: 10m - labels: - severity: critical - annotations: - description: on etcd instance {{ $labels.instance }} gRPC requests to {{ $labels.grpc_method - }} are slow - summary: slow gRPC requests - - alert: HighNumberOfFailedHTTPRequests - expr: sum(rate(etcd_http_failed_total{job="etcd"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job="etcd"}[5m])) - BY (method) > 0.01 - for: 10m - labels: - severity: warning - annotations: - description: '{{ $value }}% of requests for {{ $labels.method }} failed on etcd - instance {{ $labels.instance }}' - summary: a high number of HTTP requests are failing - - alert: HighNumberOfFailedHTTPRequests - expr: sum(rate(etcd_http_failed_total{job="etcd"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job="etcd"}[5m])) - BY (method) > 0.05 - for: 5m - labels: - severity: critical - annotations: - description: '{{ $value }}% of requests for {{ $labels.method }} failed on etcd - instance {{ $labels.instance }}' - summary: a high number of HTTP requests are failing - - alert: HTTPRequestsSlow - expr: histogram_quantile(0.99, rate(etcd_http_successful_duration_seconds_bucket[5m])) > 0.15 - for: 10m - labels: - severity: warning - annotations: - description: on etcd instance {{ $labels.instance }} HTTP requests to {{ $labels.method - }} are slow - summary: slow HTTP requests - - alert: FdExhaustionClose - expr: predict_linear(instance:fd_utilization[1h], 3600 * 4) > 1 - for: 10m - labels: - severity: warning - annotations: - description: '{{ $labels.job }} instance {{ $labels.instance }} will exhaust - its file descriptors soon' - summary: file descriptors soon exhausted - - alert: FdExhaustionClose - expr: predict_linear(instance:fd_utilization[10m], 3600) > 1 - for: 10m - labels: - severity: critical - annotations: - description: '{{ $labels.job }} instance {{ $labels.instance }} will exhaust - its file descriptors soon' - summary: file descriptors soon exhausted - - alert: EtcdMemberCommunicationSlow - expr: histogram_quantile(0.99, rate(etcd_network_member_round_trip_time_seconds_bucket[5m])) > 0.15 - for: 10m - labels: - severity: warning - annotations: - description: etcd instance {{ $labels.instance }} member communication with - {{ $labels.To }} is slow - summary: etcd member communication is slow - - alert: HighNumberOfFailedProposals - expr: increase(etcd_server_proposals_failed_total{job="etcd"}[1h]) > 5 - labels: - severity: warning - annotations: - description: etcd instance {{ $labels.instance }} has seen {{ $value }} proposal - failures within the last hour - summary: a high number of proposals within the etcd cluster are failing - - alert: HighFsyncDurations - expr: histogram_quantile(0.99, rate(etcd_disk_wal_fsync_duration_seconds_bucket[5m])) > 0.5 - for: 10m - labels: - severity: warning - annotations: - description: etcd instance {{ $labels.instance }} fync durations are high - summary: high fsync durations - - alert: HighCommitDurations - expr: histogram_quantile(0.99, rate(etcd_disk_backend_commit_duration_seconds_bucket[5m])) > 0.25 - for: 10m - labels: - severity: warning - annotations: - description: etcd instance {{ $labels.instance }} commit durations are high - summary: high commit durations - - alert: DatabaseSpaceExceeded - expr: etcd_mvcc_db_total_size_in_bytes/etcd_server_quota_backend_bytes > 0.80 - for: 1m - labels: - severity: critical - annotations: - summary: "{{ $labels.instance }}, {{ $labels.job }} of etcd DB space uses more than 80%" - runbook: "Please consider manual compaction and defrag. https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/maintenance.md" \ No newline at end of file diff --git a/monitor/prometheus/manager.go b/monitor/prometheus/manager.go index 866e1a674..6084aba34 100644 --- a/monitor/prometheus/manager.go +++ b/monitor/prometheus/manager.go @@ -20,23 +20,26 @@ package prometheus import ( "bytes" - "context" "errors" "fmt" "io/ioutil" "net" "net/http" "os" + "path" + "strings" "sync" "syscall" "time" + "github.com/ghodss/yaml" "github.com/goodrain/rainbond/cmd/monitor/option" - "github.com/goodrain/rainbond/discover" - etcdutil "github.com/goodrain/rainbond/util/etcd" + mv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" "github.com/prometheus/common/model" + "github.com/prometheus/prometheus/pkg/rulefmt" "github.com/sirupsen/logrus" - yaml "gopkg.in/yaml.v2" + thanostypes "github.com/thanos-io/thanos/pkg/store/storepb" + cyaml "gopkg.in/yaml.v2" ) const ( @@ -50,36 +53,23 @@ const ( // Manager manage struct type Manager struct { - cancel context.CancelFunc - ctx context.Context Opt *option.Config generatedConf []byte Config *Config Process *os.Process Status int - Registry *discover.KeepAlive httpClient *http.Client l *sync.Mutex - a *AlertingRulesManager + Rules []*mv1.PrometheusRule + ruleContent map[string][]byte } // NewManager new manager -func NewManager(config *option.Config, a *AlertingRulesManager) *Manager { +func NewManager(config *option.Config) *Manager { client := &http.Client{ Timeout: time.Second * 3, } - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: config.EtcdEndpoints, - CaFile: config.EtcdCaFile, - CertFile: config.EtcdCertFile, - KeyFile: config.EtcdKeyFile, - } - reg, err := discover.CreateKeepAlive(etcdClientArgs, "prometheus", config.BindIP, config.BindIP, config.Port) - if err != nil { - panic(err) - } - ioutil.WriteFile(config.ConfigFile, []byte(""), 0644) m := &Manager{ @@ -89,18 +79,15 @@ func NewManager(config *option.Config, a *AlertingRulesManager) *Manager { ScrapeInterval: model.Duration(time.Second * 5), EvaluationInterval: model.Duration(time.Second * 30), }, - RuleFiles: []string{config.AlertingRulesFile}, + RuleFiles: []string{}, AlertingConfig: AlertingConfig{ AlertmanagerConfigs: []*AlertmanagerConfig{}, }, }, - Registry: reg, - httpClient: client, - l: &sync.Mutex{}, - a: a, + httpClient: client, + l: &sync.Mutex{}, + ruleContent: make(map[string][]byte), } - - m.LoadConfig() if len(config.AlertManagerURL) > 0 { al := &AlertmanagerConfig{ ServiceDiscoveryConfig: ServiceDiscoveryConfig{ @@ -114,7 +101,6 @@ func NewManager(config *option.Config, a *AlertingRulesManager) *Manager { m.Config.AlertingConfig.AlertmanagerConfigs = append(m.Config.AlertingConfig.AlertmanagerConfigs, al) } m.SaveConfig() - m.a.InitRulesConfig() return m } @@ -135,21 +121,6 @@ func (p *Manager) StartDaemon(errchan chan error) { } p.Process = process - // waiting started - for { - conn, err := net.DialTimeout("tcp", fmt.Sprintf("127.0.0.1:%d", p.Opt.Port), time.Second) - if err == nil { - logrus.Info("The prometheus daemon is started.") - conn.Close() - break - } else { - logrus.Info("Wait prometheus to start: ", err) - } - time.Sleep(time.Second) - } - - p.Status = STARTED - // listen prometheus is exit go func() { _, err := p.Process.Wait() @@ -161,6 +132,21 @@ func (p *Manager) StartDaemon(errchan chan error) { p.Status = STOPPED errchan <- err }() + // waiting started + go func() { + for { + conn, err := net.DialTimeout("tcp", fmt.Sprintf("127.0.0.1:%d", p.Opt.Port), time.Second) + if err == nil { + logrus.Info("The prometheus daemon is started.") + conn.Close() + break + } else { + logrus.Info("Wait prometheus to start: ", err) + } + time.Sleep(time.Second) + } + p.Status = STARTED + }() } // StopDaemon stop daemon @@ -184,41 +170,86 @@ func (p *Manager) ReloadConfig() error { } return nil } +func (p *Manager) saveRuleFile() (list []string, change bool, err error) { + os.MkdirAll(path.Join(p.Opt.AlertingRulesFileDir+".cache"), 0755) + for _, r := range p.Rules { + content, err := yaml.Marshal(r.Spec) + if err != nil { + logrus.Errorf("marshal rule config failure %s", err.Error()) + return nil, false, err + } + errs := ValidateRule(r.Spec) + if len(errs) != 0 { + logrus.Debugf("invalid rule %s content: %s", r.Name, content) + for _, err := range errs { + logrus.Errorf("invalid rule %s: %s", r.Name, err.Error()) + } + return nil, false, err + } + os.MkdirAll(path.Join(p.Opt.AlertingRulesFileDir+".cache", r.Namespace), 0755) + ruleFile := path.Join(p.Opt.AlertingRulesFileDir+".cache", r.Namespace, r.Name+".yaml") + if err := ioutil.WriteFile(ruleFile, content, 0755); err != nil { + return nil, false, err + } + if old, ok := p.ruleContent[path.Join(r.Namespace, r.Name)]; ok && !change { + change = !bytes.Equal(old, content) + } else { + change = true + p.ruleContent[path.Join(r.Namespace, r.Name)] = content + } + list = append(list, path.Join(p.Opt.AlertingRulesFileDir, r.Namespace, r.Name+".yaml")) + } + // clear old config and taking effect the new configuration + os.RemoveAll(p.Opt.AlertingRulesFileDir) + if err := os.Rename(p.Opt.AlertingRulesFileDir+".cache", p.Opt.AlertingRulesFileDir); err != nil { + return nil, false, err + } + return +} -//LoadConfig load config -func (p *Manager) LoadConfig() error { - logrus.Info("Load prometheus config file.") - content, err := ioutil.ReadFile(p.Opt.ConfigFile) +// ValidateRule takes PrometheusRuleSpec and validates it using the upstream prometheus rule validator +func ValidateRule(promRule mv1.PrometheusRuleSpec) []error { + for i, group := range promRule.Groups { + if group.PartialResponseStrategy == "" { + continue + } + if _, ok := thanostypes.PartialResponseStrategy_value[strings.ToUpper(group.PartialResponseStrategy)]; !ok { + return []error{ + fmt.Errorf("invalid partial_response_strategy %s value", group.PartialResponseStrategy), + } + } + // reset this as the upstream prometheus rule validator + // is not aware of the partial_response_strategy field + promRule.Groups[i].PartialResponseStrategy = "" + } + content, err := yaml.Marshal(promRule) if err != nil { - logrus.Error("Failed to read prometheus config file: ", err) - logrus.Info("Init config file by default values.") - return nil + return []error{fmt.Errorf("failed to marshal content %s", err.Error())} } - - if err := yaml.Unmarshal(content, p.Config); err != nil { - logrus.Error("Unmarshal prometheus config string to object error.", err.Error()) - return err - } - logrus.Debugf("Loaded config file to memory: %+v", p.Config) - - return nil + _, errs := rulefmt.Parse(content) + return errs } // SaveConfig save config func (p *Manager) SaveConfig() error { - logrus.Debug("Save prometheus config file.") - currentConf, err := yaml.Marshal(p.Config) + filePaths, ruleChange, err := p.saveRuleFile() + if err != nil { + return fmt.Errorf("write rule file failure %s", err.Error()) + } + p.Config.RuleFiles = filePaths + logrus.Debug("save prometheus config file.") + currentConf, err := cyaml.Marshal(p.Config) if err != nil { logrus.Error("Marshal prometheus config to yaml error.", err.Error()) return err } - if bytes.Equal(currentConf, p.generatedConf) { + if !ruleChange && bytes.Equal(currentConf, p.generatedConf) { logrus.Debug("updating Prometheus configuration skipped, no configuration change") return nil } err = ioutil.WriteFile(p.Opt.ConfigFile, currentConf, 0644) if err != nil { - logrus.Error("Write prometheus config file error.", err.Error()) + logrus.Error("write prometheus config file error.", err.Error()) return err } if err := p.ReloadConfig(); err != nil { @@ -230,55 +261,9 @@ func (p *Manager) SaveConfig() error { } // UpdateScrape update scrape -func (p *Manager) UpdateScrape(scrapes ...*ScrapeConfig) { - p.l.Lock() - defer p.l.Unlock() - for _, scrape := range scrapes { - logrus.Debugf("update scrape: %+v", scrape) - exist := false - for i, s := range p.Config.ScrapeConfigs { - if s.JobName == scrape.JobName { - p.Config.ScrapeConfigs[i] = scrape - exist = true - break - } - } - if !exist { - p.Config.ScrapeConfigs = append(p.Config.ScrapeConfigs, scrape) - } - } - if err := p.SaveConfig(); err != nil { - logrus.Errorf("save prometheus config failure:%s", err.Error()) - } -} - -// UpdateAndRemoveScrape update and remove scrape -func (p *Manager) UpdateAndRemoveScrape(remove []*ScrapeConfig, scrapes ...*ScrapeConfig) { - p.l.Lock() - defer p.l.Unlock() - for _, scrape := range scrapes { - logrus.Debugf("update scrape: %+v", scrape) - exist := false - for i, s := range p.Config.ScrapeConfigs { - if s.JobName == scrape.JobName { - p.Config.ScrapeConfigs[i] = scrape - exist = true - break - } - } - if !exist { - p.Config.ScrapeConfigs = append(p.Config.ScrapeConfigs, scrape) - } - } - for _, rm := range remove { - for i, s := range p.Config.ScrapeConfigs { - if s.JobName == rm.JobName { - logrus.Infof("remove scrape %s", rm.JobName) - p.Config.ScrapeConfigs = append(p.Config.ScrapeConfigs[0:i], p.Config.ScrapeConfigs[i+1:]...) - break - } - } - } +func (p *Manager) UpdateScrapeAndRule(scrapes []*ScrapeConfig, rules []*mv1.PrometheusRule) { + p.Config.ScrapeConfigs = scrapes + p.Rules = rules if err := p.SaveConfig(); err != nil { logrus.Errorf("save prometheus config failure:%s", err.Error()) } diff --git a/monitor/prometheus/service_monitor.go b/monitor/prometheus/prometheus_operator.go similarity index 81% rename from monitor/prometheus/service_monitor.go rename to monitor/prometheus/prometheus_operator.go index cc0a69c6b..de1ae0b38 100644 --- a/monitor/prometheus/service_monitor.go +++ b/monitor/prometheus/prometheus_operator.go @@ -29,72 +29,63 @@ import ( mv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" externalversions "github.com/prometheus-operator/prometheus-operator/pkg/client/informers/externalversions" - "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned" "github.com/prometheus/common/model" "github.com/sirupsen/logrus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" ) -//ServiceMonitorController service monitor -type ServiceMonitorController struct { - ctx context.Context - Prometheus *Manager - lastScrapes []*ScrapeConfig - smClient *versioned.Clientset - smInf cache.SharedIndexInformer - queue workqueue.RateLimitingInterface +//PrometheusOperator service monitor +type PrometheusOperator struct { + ctx context.Context + Prometheus *Manager + smInf cache.SharedIndexInformer + prInf cache.SharedIndexInformer + queue workqueue.RateLimitingInterface } -//NewServiceMonitorController new sm controller -func NewServiceMonitorController(ctx context.Context, config *rest.Config, pm *Manager) (*ServiceMonitorController, error) { - var smc ServiceMonitorController - c, err := versioned.NewForConfig(config) - if err != nil { - return nil, err - } - smc.smClient = c +//NewPrometheusOperator new sm controller +func NewPrometheusOperator(ctx context.Context, smFactory externalversions.SharedInformerFactory, pm *Manager) (*PrometheusOperator, error) { + var smc PrometheusOperator smc.ctx = ctx - smFactory := externalversions.NewSharedInformerFactoryWithOptions(c, 5*time.Minute, - externalversions.WithTweakListOptions(func(options *metav1.ListOptions) { - options.LabelSelector = "creator=Rainbond" - })) - informer := smFactory.Monitoring().V1().ServiceMonitors().Informer() - informer.AddEventHandlerWithResyncPeriod(&smc, time.Second*30) - smc.smInf = informer + smc.smInf = smFactory.Monitoring().V1().ServiceMonitors().Informer() + smc.prInf = smFactory.Monitoring().V1().PrometheusRules().Informer() + smc.smInf.AddEventHandlerWithResyncPeriod(&smc, time.Second*30) + smc.prInf.AddEventHandlerWithResyncPeriod(&smc, time.Second*30) smc.Prometheus = pm smc.queue = workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "sm-monitor") return &smc, nil } //Run run controller -func (s *ServiceMonitorController) Run(stopCh <-chan struct{}) { +func (s *PrometheusOperator) Run(stopCh <-chan struct{}) { go s.worker(s.ctx) - go func() { - defer s.queue.ShutDown() - s.smInf.Run(stopCh) - }() - cache.WaitForCacheSync(stopCh, s.smInf.HasSynced) - logrus.Info("service monitor controller start success") + go s.smInf.Run(stopCh) + go s.prInf.Run(stopCh) + cache.WaitForCacheSync(stopCh, s.smInf.HasSynced, s.prInf.HasSynced) + logrus.Info("prometheus operator start success") +} + +func (s *PrometheusOperator) Stop() { + s.queue.ShutDown() } //OnAdd sm add -func (s *ServiceMonitorController) OnAdd(obj interface{}) { +func (s *PrometheusOperator) OnAdd(obj interface{}) { s.enqueue(obj) } //OnUpdate sm update -func (s *ServiceMonitorController) OnUpdate(oldObj, newObj interface{}) { +func (s *PrometheusOperator) OnUpdate(oldObj, newObj interface{}) { s.enqueue(newObj) } //OnDelete sm delete -func (s *ServiceMonitorController) OnDelete(obj interface{}) { +func (s *PrometheusOperator) OnDelete(obj interface{}) { s.enqueue(obj) } -func (s *ServiceMonitorController) enqueue(obj interface{}) { +func (s *PrometheusOperator) enqueue(obj interface{}) { if obj == nil { return } @@ -108,7 +99,7 @@ func (s *ServiceMonitorController) enqueue(obj interface{}) { s.queue.Add(key) } -func (s *ServiceMonitorController) keyFunc(obj interface{}) (string, bool) { +func (s *PrometheusOperator) keyFunc(obj interface{}) (string, bool) { //namespace and name k, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) if err != nil { @@ -118,11 +109,11 @@ func (s *ServiceMonitorController) keyFunc(obj interface{}) (string, bool) { return k, true } -func (s *ServiceMonitorController) worker(ctx context.Context) { +func (s *PrometheusOperator) worker(ctx context.Context) { for s.processNextWorkItem(ctx) { } } -func (s *ServiceMonitorController) processNextWorkItem(ctx context.Context) bool { +func (s *PrometheusOperator) processNextWorkItem(ctx context.Context) bool { key, quit := s.queue.Get() if quit { return false @@ -133,7 +124,15 @@ func (s *ServiceMonitorController) processNextWorkItem(ctx context.Context) bool return true } -func (s *ServiceMonitorController) sync() { +func (s *PrometheusOperator) sync() { + logrus.Debug("start sync prometheus rule config to prometheus config") + prList := s.prInf.GetStore().List() + var prometheusRules []*mv1.PrometheusRule + for j := range prList { + if pr, ok := prList[j].(*mv1.PrometheusRule); ok && pr != nil { + prometheusRules = append(prometheusRules, pr) + } + } logrus.Debug("start sync service monitor config to prometheus config") smList := s.smInf.GetStore().List() var scrapes []*ScrapeConfig @@ -142,45 +141,36 @@ func (s *ServiceMonitorController) sync() { i := 0 for j := range smList { if sm, ok := smList[j].(*mv1.ServiceMonitor); ok && sm != nil { - sMonIdentifiers[i] = sm.GetName() - sMons[sm.GetName()] = sm + sMonIdentifiers[i] = sm.GetNamespace() + "/" + sm.GetName() + sMons[sm.GetNamespace()+"/"+sm.GetName()] = sm i++ } } // Sorting ensures, that we always generate the config in the same order. sort.Strings(sMonIdentifiers) - var scrapeMap = make(map[string]*ScrapeConfig, len(sMonIdentifiers)) for _, name := range sMonIdentifiers { for i, end := range sMons[name].Spec.Endpoints { scrape := s.createScrapeBySM(sMons[name], end, i) - scrapeMap[scrape.JobName] = scrape scrapes = append(scrapes, scrape) } } - var remove []*ScrapeConfig - for i, ls := range s.lastScrapes { - if _, ok := scrapeMap[ls.JobName]; !ok { - remove = append(remove, s.lastScrapes[i]) - } - } - s.Prometheus.UpdateAndRemoveScrape(remove, scrapes...) - s.lastScrapes = scrapes - logrus.Debugf("success sync service monitor config and or update %d , remove %d", len(scrapes), len(remove)) + s.Prometheus.UpdateScrapeAndRule(scrapes, prometheusRules) + logrus.Debugf("success sync prometheus configs , scrapes length: %d, rule length: %d", len(scrapes), len(prometheusRules)) } -func (s *ServiceMonitorController) createScrapeBySM(sm *mv1.ServiceMonitor, ep mv1.Endpoint, i int) *ScrapeConfig { +func (s *PrometheusOperator) createScrapeBySM(sm *mv1.ServiceMonitor, ep mv1.Endpoint, i int) *ScrapeConfig { var sc = ScrapeConfig{ JobName: fmt.Sprintf("%s/%s/%d", sm.Namespace, sm.Name, i), ServiceDiscoveryConfig: ServiceDiscoveryConfig{ KubernetesSDConfigs: []*SDConfig{ - &SDConfig{ + { Role: RoleEndpoint, NamespaceDiscovery: NamespaceDiscovery{ Names: []string{sm.Namespace}, }, Selectors: []SelectorConfig{ - SelectorConfig{ + { Role: RoleEndpoint, }, }, diff --git a/monitor/prometheus/rules_manager.go b/monitor/prometheus/rules_manager.go deleted file mode 100644 index e0a3184ad..000000000 --- a/monitor/prometheus/rules_manager.go +++ /dev/null @@ -1,499 +0,0 @@ -package prometheus - -import ( - "io/ioutil" - "os" - - "github.com/goodrain/rainbond/cmd/monitor/option" - "github.com/sirupsen/logrus" - yaml "gopkg.in/yaml.v2" -) - -//AlertingRulesConfig alerting rule config -type AlertingRulesConfig struct { - Groups []*AlertingNameConfig `yaml:"groups" json:"groups"` -} - -//AlertingNameConfig alerting config -type AlertingNameConfig struct { - Name string `yaml:"name" json:"name"` - Rules []*RulesConfig `yaml:"rules" json:"rules"` -} - -//RulesConfig rule config -type RulesConfig struct { - Alert string `yaml:"alert" json:"alert"` - Expr string `yaml:"expr" json:"expr"` - For string `yaml:"for" json:"for"` - Labels map[string]string `yaml:"labels" json:"labels"` - Annotations map[string]string `yaml:"annotations" json:"annotations"` -} - -//AlertingRulesManager alerting rule manage -type AlertingRulesManager struct { - RulesConfig *AlertingRulesConfig - config *option.Config -} - -//NewRulesManager new rule manager -func NewRulesManager(config *option.Config) *AlertingRulesManager { - region := os.Getenv("REGION_NAME") - if region == "" { - region = "default" - } - commonLables := map[string]string{ - "Alert": "Rainbond", - "Region": region, - } - getseverityLables := func(severity string) map[string]string { - return map[string]string{ - "Alert": "Rainbond", - "severity": severity, - "Region": region, - } - } - a := &AlertingRulesManager{ - RulesConfig: &AlertingRulesConfig{ - Groups: []*AlertingNameConfig{ - { - Name: "GatewayHealth", - Rules: []*RulesConfig{ - { - Alert: "GatewayDown", - Expr: "absent(up{job=\"gateway\"}) or up{job=\"gateway\"}==0", - For: "20s", - Labels: commonLables, - Annotations: map[string]string{ - "description": "gateway node {{ $labels.instance }} maybe down", - "summary": "gateway is down", - }, - }, - { - Alert: "RequestSizeTooMuch", - Expr: "sum by (instance, host) (rate(gateway_request_size_sum[5m])) > 1024*1024*10", - For: "20s", - Labels: commonLables, - Annotations: map[string]string{ - "description": "http doamin {{ $labels.host }} per-second request size {{ humanize $value }}, more than 10M", - "summary": "Too much traffic", - }, - }, - { - Alert: "ResponseSizeTooMuch", - Expr: "sum by (instance, host) (rate(gateway_response_size_sum[5m])) > 1024*1024*10", - For: "20s", - Labels: commonLables, - Annotations: map[string]string{ - "description": "http doamin {{ $labels.host }} per-second response size {{ humanize $value }}, more than 10M", - "summary": "Too much traffic", - }, - }, - { - Alert: "RequestMany", - Expr: "rate(gateway_requests[5m]) > 200", - For: "10s", - Labels: commonLables, - Annotations: map[string]string{"description": "http doamin {{ $labels.host }} per-second requests {{ humanize $value }}, more than 200"}, - }, - { - Alert: "FailureRequestMany", - Expr: "rate(gateway_requests{status=~\"5..\"}[5m]) > 5", - For: "10s", - Labels: commonLables, - Annotations: map[string]string{"description": "http doamin {{ $labels.host }} per-second failure requests {{ humanize $value }}, more than 5"}, - }, - }, - }, - { - Name: "BuilderHealth", - Rules: []*RulesConfig{ - { - Alert: "BuilderDown", - Expr: "absent(up{component=\"builder\"}) or up{component=\"builder\"}==0", - For: "1m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "builder(rbd-chaos) node {{ $labels.instance }} maybe down", - "summary": "builder(rbd-chaos) is down", - }, - }, - { - Alert: "BuilderUnhealthy", - Expr: "builder_exporter_health_status == 0", - For: "3m", - Labels: commonLables, - Annotations: map[string]string{"description": "builder unhealthy"}, - }, - { - Alert: "BuilderTaskError", - Expr: "builder_exporter_builder_current_concurrent_task == builder_exporter_builder_max_concurrent_task", - For: "20s", - Labels: commonLables, - Annotations: map[string]string{"summary": "The build service is performing a maximum number of tasks"}, - }, - }, - }, - { - Name: "WorkerHealth", - Rules: []*RulesConfig{ - { - Alert: "WorkerDown", - Expr: "absent(up{component=\"worker\"}) or up{component=\"worker\"}==0", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "worker node {{ $labels.instance }} maybe down", - "summary": "worker is down", - }, - }, - { - Alert: "WorkerUnhealthy", - Expr: "app_resource_exporter_health_status == 0", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{ - "summary": "worker unhealthy", - "description": "worker node {{ $labels.instance }} is unhealthy", - }, - }, - { - Alert: "WorkerTaskError", - Expr: "app_resource_exporter_worker_task_error > 50", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "worker node {{ $labels.instance }} execution task error number is greater than 50", - }, - }, - }, - }, - { - Name: "MqHealth", - Rules: []*RulesConfig{ - { - Alert: "MqDown", - Expr: "absent(up{component=\"mq\"}) or up{component=\"mq\"}==0", - For: "2m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "mq node {{ $labels.instance }} maybe down", - "summary": "mq is down", - }, - }, - { - Alert: "MqUnhealthy", - Expr: "acp_mq_exporter_health_status == 0", - For: "3m", - Labels: commonLables, - Annotations: map[string]string{"summary": "mq unhealthy"}, - }, - { - Alert: "MqMessageQueueBlock", - Expr: "acp_mq_queue_message_number > 0", - For: "1m", - Labels: commonLables, - Annotations: map[string]string{ - "summary": "message queue blocked", - "description": "mq topic {{ $labels.topic }} message queue may be blocked, message size is {{ humanize $value }}", - }, - }, - }, - }, - { - Name: "EventlogHealth", - Rules: []*RulesConfig{ - { - Alert: "EventLogUnhealthy", - Expr: "event_log_exporter_health_status == 0", - For: "3m", - Labels: commonLables, - Annotations: map[string]string{"summary": "eventlog unhealthy"}, - }, - { - Alert: "EventLogDown", - Expr: "absent(up{component=\"eventlog\"}) or up{component=\"eventlog\"}==0", - For: "3m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "worker node {{ $labels.instance }} maybe down", - "summary": "eventlog service down", - }, - }, - }, - }, - { - Name: "NodeHealth", - Rules: []*RulesConfig{ - { - Alert: "NodeDown", - Expr: "absent(up{component=\"rbd_node\"}) or up{component=\"rbd_node\"} == 0", - For: "30s", - Labels: commonLables, - Annotations: map[string]string{ - "description": "node {{ $labels.instance }} may be down", - "summary": "rbd_node is down", - }, - }, - { - Alert: "HighCpuUsageOnNode", - Expr: "sum by(instance) (rate(process_cpu_seconds_total[5m])) * 100 > 70", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{"description": "{{ $labels.instance }} is using a LOT of CPU. CPU usage is {{ humanize $value}}%.", "summary": "HIGH CPU USAGE WARNING ON '{{ $labels.instance }}'"}, - }, - { - Alert: "HighLoadOnNode", - Expr: "count by (instance) (node_load5) > count by(instance)(count by(job, instance, cpu)(node_cpu))", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{"description": "{{ $labels.instance }} has a high load average. Load Average 5m is {{ humanize $value}}.", "summary": "HIGH LOAD AVERAGE WARNING ON '{{ $labels.instance }}'"}, - }, - { - Alert: "InodeFreerateLow", - Expr: "node_filesystem_files_free{fstype=~\"ext4|xfs\"} / node_filesystem_files{fstype=~\"ext4|xfs\"} < 0.3", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{"description": "the inode free rate is low of node {{ $labels.instance }}, current value is {{ humanize $value}}."}, - }, - { - Alert: "HighRootdiskUsageOnNode", - Expr: "(node_filesystem_size{mountpoint='/'} - node_filesystem_free{mountpoint='/'}) * 100 / node_filesystem_size{mountpoint='/'} > 85", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{"description": "More than 85% of disk used. Disk usage {{ humanize $value }} mountpoint {{ $labels.mountpoint }}%.", "summary": "LOW DISK SPACE WARING:NODE '{{ $labels.instance }}"}, - }, - { - Alert: "HighDockerdiskUsageOnNode", - Expr: "(node_filesystem_size{mountpoint='/var/lib/docker'} - node_filesystem_free{mountpoint='/var/lib/docker'}) * 100 / node_filesystem_size{mountpoint='/var/lib/docker'} > 85", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{"description": "More than 85% of disk used. Disk usage {{ humanize $value }} mountpoint {{ $labels.mountpoint }}%.", "summary": "LOW DISK SPACE WARING:NODE '{{ $labels.instance }}"}, - }, - { - Alert: "HighMemoryUsageOnNode", - Expr: "((node_memory_MemTotal - node_memory_MemAvailable) / node_memory_MemTotal) * 100 > 80", - For: "5m", - Labels: commonLables, - Annotations: map[string]string{"description": "{{ $labels.instance }} is using a LOT of MEMORY. MEMORY usage is over {{ humanize $value}}%.", "summary": "HIGH MEMORY USAGE WARNING TASK ON '{{ $labels.instance }}'"}, - }, - }, - }, - { - Name: "ClusterHealth", - Rules: []*RulesConfig{ - { - Alert: "InsufficientClusteMemoryResources", - Expr: "max(rbd_api_exporter_cluster_memory_total) - max(sum(namespace_resource_memory_request) by (instance)) < 2048", - For: "2m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "Cluster residual scheduled memory is {{ humanize $value }} MB, less than 2048 MB", - "summary": "Insufficient Cluster Memory Resources", - }, - }, - { - Alert: "InsufficientClusteCPUResources", - Expr: "max(rbd_api_exporter_cluster_cpu_total) - max(sum(namespace_resource_cpu_request) by (instance)) < 500", - For: "2m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "Cluster residual scheduled cpu is {{ humanize $value }}, less than 500", - "summary": "Insufficient Cluster CPU Resources", - }, - }, - { - Alert: "InsufficientTenantResources", - Expr: "sum(rbd_api_exporter_tenant_memory_limit) by(namespace) - sum(namespace_resource_memory_request)by (namespace) < sum(rbd_api_exporter_tenant_memory_limit) by(namespace) *0.2 and sum(rbd_api_exporter_tenant_memory_limit) by(namespace) > 0", - For: "2m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "Tenant available memory capacity {{ humanize $value }} MB, less than 20% of the limit", - "summary": "Insufficient Tenant memory Resources", - }, - }, - }, - }, - { - Name: "EtcdHealth", - Rules: []*RulesConfig{ - { - Alert: "EtcdDown", - Expr: "absent(up{component=\"etcd\"}) or up{component=\"etcd\"}==0", - For: "1m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "etcd node {{ $labels.instance }} may be down", - "summary": "etcd node is down", - }, - }, - { - Alert: "EtcdLoseLeader", - Expr: "etcd_server_has_leader == 0", - For: "1m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "etcd node {{ $labels.instance }} is lose leader", - "summary": "etcd lose leader", - }, - }, - { - Alert: "InsufficientMembers", - Expr: "count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)", - For: "1m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "If one more etcd member goes down the cluster will be unavailable", - "summary": "etcd cluster insufficient members", - }, - }, - { - Alert: "HighNumberOfLeaderChanges", - Expr: "increase(etcd_server_leader_changes_seen_total{job=\"etcd\"}[1h]) > 3", - For: "1m", - Labels: getseverityLables("warning"), - Annotations: map[string]string{ - "description": "etcd instance {{ $labels.instance }} has seen {{ $value }} leader changes within the last hour", - "summary": "a high number of leader changes within the etcd cluster are happening", - }, - }, - { - Alert: "HighNumberOfFailedGRPCRequests", - Expr: "sum(rate(etcd_grpc_requests_failed_total{job=\"etcd\"}[5m])) BY (grpc_method) / sum(rate(etcd_grpc_total{job=\"etcd\"}[5m])) BY (grpc_method) > 0.05", - For: "5m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "{{ $value }}% of requests for {{ $labels.grpc_method }} failed on etcd instance {{ $labels.instance }}", - "summary": "a high number of gRPC requests are failing", - }, - }, - { - Alert: "HighNumberOfFailedHTTPRequests", - Expr: "sum(rate(etcd_http_failed_total{job=\"etcd\"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job=\"etcd\"}[5m]))BY (method) > 0.05", - For: "1m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "{{ $value }}% of requests for {{ $labels.method }} failed on etcd instance {{ $labels.instance }}", - "summary": "a high number of HTTP requests are failing", - }, - }, - { - Alert: "GRPCRequestsSlow", - Expr: "histogram_quantile(0.99, rate(etcd_grpc_unary_requests_duration_seconds_bucket[5m])) > 0.15", - For: "1m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "on etcd instance {{ $labels.instance }} gRPC requests to {{ $labels.grpc_method}} are slow", - "summary": "slow gRPC requests", - }, - }, - { - Alert: "HighNumberOfFailedHTTPRequests", - Expr: "sum(rate(etcd_http_failed_total{job=\"etcd\"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job=\"etcd\"}[5m]))BY (method) > 0.05", - For: "1m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "{{ $value }}% of requests for {{ $labels.method }} failed on etcd instance {{ $labels.instance }}", - "summary": "a high number of HTTP requests are failing", - }, - }, - { - Alert: "HighNumberOfFailedHTTPRequests", - Expr: "sum(rate(etcd_http_failed_total{job=\"etcd\"}[5m])) BY (method) / sum(rate(etcd_http_received_total{job=\"etcd\"}[5m]))BY (method) > 0.05", - For: "1m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "{{ $value }}% of requests for {{ $labels.method }} failed on etcd instance {{ $labels.instance }}", - "summary": "a high number of HTTP requests are failing", - }, - }, - { - Alert: "DatabaseSpaceExceeded", - Expr: "etcd_mvcc_db_total_size_in_bytes/etcd_server_quota_backend_bytes > 0.80", - For: "1m", - Labels: getseverityLables("critical"), - Annotations: map[string]string{ - "description": "{{ $labels.instance }}, {{ $labels.job }} of etcd DB space uses more than 80%", - "summary": "Etcd DB space is overused", - "runbook": "Please consider manual compaction and defrag. https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/maintenance.md", - }, - }, - }, - }, - { - Name: "APIHealth", - Rules: []*RulesConfig{ - { - Alert: "APIDown", - Expr: "absent(up{job=\"rbdapi\"}) or up{job=\"rbdapi\"}==0", - For: "1m", - Labels: commonLables, - Annotations: map[string]string{ - "description": "rbd api node {{ $labels.instance }} maybe down", - "summary": "rbd api node is down", - }, - }, - }, - }, - }, - }, - config: config, - } - return a -} - -//LoadAlertingRulesConfig load alerting rule config -func (a *AlertingRulesManager) LoadAlertingRulesConfig() error { - logrus.Info("Load AlertingRules config file.") - content, err := ioutil.ReadFile(a.config.AlertingRulesFile) - if err != nil { - logrus.Error("Failed to read AlertingRules config file: ", err) - logrus.Info("Init config file by default values.") - return nil - } - if err := yaml.Unmarshal(content, a.RulesConfig); err != nil { - logrus.Error("Unmarshal AlertingRulesConfig config string to object error.", err.Error()) - return err - } - logrus.Debugf("Loaded config file to memory: %+v", a) - - return nil -} - -//SaveAlertingRulesConfig save alerting rule config -func (a *AlertingRulesManager) SaveAlertingRulesConfig() error { - logrus.Info("Save alerting rules config file.") - - data, err := yaml.Marshal(a.RulesConfig) - if err != nil { - logrus.Error("Marshal alerting rules config to yaml error.", err.Error()) - return err - } - - err = ioutil.WriteFile(a.config.AlertingRulesFile, data, 0644) - if err != nil { - logrus.Error("Write alerting rules config file error.", err.Error()) - return err - } - - return nil -} - -//AddRules add rule -func (a *AlertingRulesManager) AddRules(val AlertingNameConfig) error { - group := a.RulesConfig.Groups - group = append(group, &val) - return nil -} - -//InitRulesConfig init rule config -func (a *AlertingRulesManager) InitRulesConfig() { - _, err := os.Stat(a.config.AlertingRulesFile) //os.Stat获取文件信息 - if err != nil { - if os.IsExist(err) { - return - } - a.SaveAlertingRulesConfig() - return - } - return -} diff --git a/monitor/prometheus/service_monitor_test.go b/monitor/prometheus/service_monitor_test.go deleted file mode 100644 index f914da9e1..000000000 --- a/monitor/prometheus/service_monitor_test.go +++ /dev/null @@ -1,94 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2020-2020 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package prometheus - -import ( - "bytes" - "fmt" - "testing" - "time" - - mv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" - yaml "gopkg.in/yaml.v2" - k8syaml "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/client-go/util/workqueue" -) - -var smYaml = ` -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: region-tokenchecker - namespace: default -spec: - jobLabel: service_alias - endpoints: - - interval: 10s - path: /metrics - port: tcp-9090 - relabelings: - - sourceLabels: [__address__] - targetLabel: app_name - replacement: "region-tokenchecker" - namespaceSelector: - any: true - selector: - matchLabels: - service_port: 9090 - port_protocol: http - name: gr0a581fService -` - -func TestCreateScrapeBySM(t *testing.T) { - var smc ServiceMonitorController - var sm mv1.ServiceMonitor - k8syaml.NewYAMLOrJSONDecoder(bytes.NewBuffer([]byte(smYaml)), 1024).Decode(&sm) - var scrapes []*ScrapeConfig - t.Logf("%+v", sm) - for i, ep := range sm.Spec.Endpoints { - scrapes = append(scrapes, smc.createScrapeBySM(&sm, ep, i)) - } - out, err := yaml.Marshal(scrapes) - if err != nil { - t.Fatal(err) - } - t.Log(string(out)) -} - -func TestQueue(t *testing.T) { - queue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "sm-monitor") - defer queue.ShutDown() - - go func() { - for i := 0; i < 10; i++ { - queue.Add("abc") - time.Sleep(time.Second * 1) - } - }() - for { - item, close := queue.Get() - if close { - t.Fatal("queue closed") - } - time.Sleep(time.Second * 2) - fmt.Println(item) - queue.Forget(item) - queue.Done(item) - } -} diff --git a/node/api/manager.go b/node/api/manager.go index 607ccfda6..a487b0fa9 100644 --- a/node/api/manager.go +++ b/node/api/manager.go @@ -26,8 +26,6 @@ import ( "github.com/goodrain/rainbond/cmd/node-proxy/option" "github.com/goodrain/rainbond/node/api/controller" "github.com/goodrain/rainbond/node/api/router" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/sirupsen/logrus" "k8s.io/client-go/kubernetes" @@ -54,8 +52,6 @@ func NewManager(c option.Conf, kubecli *kubernetes.Clientset) *Manager { conf: c, router: r, } - // set node cluster monitor route - m.router.Get("/cluster/metrics", m.HandleClusterScrape) return m } @@ -88,17 +84,3 @@ func (m *Manager) Stop() error { func (m *Manager) GetRouter() *chi.Mux { return m.router } - -//HandleClusterScrape prometheus handle -func (m *Manager) HandleClusterScrape(w http.ResponseWriter, r *http.Request) { - gatherers := prometheus.Gatherers{ - prometheus.DefaultGatherer, - } - // Delegate http serving to Prometheus client library, which will call collector.Collect. - h := promhttp.HandlerFor(gatherers, - promhttp.HandlerOpts{ - ErrorLog: logrus.StandardLogger(), - ErrorHandling: promhttp.ContinueOnError, - }) - h.ServeHTTP(w, r) -} diff --git a/node/monitormessage/udpserver.go b/node/monitormessage/udpserver.go index 726e805d5..c359d5892 100644 --- a/node/monitormessage/udpserver.go +++ b/node/monitormessage/udpserver.go @@ -99,13 +99,21 @@ func (u *UDPServer) handlePacket(packet []byte) { conn, err := net.DialUDP("udp", srcAddr, dstAddr) if err != nil { logrus.Error("connect event udp server failure %s", err.Error()) + return } u.client = conn + logrus.Infof("connect event udp server %s:%d", addr.IP, port) } lines := strings.Split(string(packet), "\n") for _, line := range lines { if line != "" && u.client != nil { - u.client.Write([]byte(line)) + _, err := u.client.Write([]byte(line)) + if err != nil { + logrus.Errorf("write udp message to event server failure %s", err.Error()) + u.client.Close() + u.client = nil + return + } } } } From 6049b413f48792bf5a565d640b78945890f76212 Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Thu, 26 Aug 2021 15:03:09 +0800 Subject: [PATCH 5/8] remove the dependency of the eventlog module on etcd --- api/api_routers/cloud/cloudRouter.go | 36 -- api/api_routers/websocket/websocket.go | 6 +- api/controller/cloud.go | 241 ---------- api/controller/manager.go | 4 +- api/controller/websocket.go | 37 +- api/daemon/region_api.go | 65 --- api/db/db.go | 7 - api/discover/discover.go | 125 ------ api/handler/eventLog.go | 44 +- api/handler/handler.go | 2 +- api/handler/proxy.go | 11 - api/proxy/lb.go | 49 --- api/proxy/lb_test.go | 5 - api/proxy/proxy.go | 3 - api/proxy/websocket_proxy.go | 10 +- api/server/api.go | 32 +- builder/build/code_build_test.go | 4 +- builder/discover/discover.go | 2 +- builder/exector/exector.go | 2 +- builder/exector/exector_test.go | 3 +- builder/exector/garbage_collection.go | 2 +- cmd/api/option/option.go | 2 +- cmd/api/server/server.go | 6 - cmd/{builder => chaos}/builder.go | 4 +- cmd/{builder => chaos}/option/option.go | 2 +- cmd/{builder => chaos}/server/server.go | 3 +- cmd/eventlog/server/server.go | 92 +--- cmd/gateway/server/server.go | 12 - cmd/monitor/option/option.go | 2 + cmd/worker/option/option.go | 4 +- cmd/worker/server/server.go | 10 - discover/README.md | 2 - discover/discover.go | 315 ------------- discover/discover_test.go | 73 --- discover/register.go | 155 ------- event/manager.go | 70 +-- event/manager_test.go | 3 - eventlog/cluster/cluster.go | 360 +++++++++++---- eventlog/cluster/connect/pub.go | 25 +- eventlog/cluster/connect/sub.go | 206 ++++++--- eventlog/cluster/discover/etcdManager.go | 55 --- eventlog/cluster/discover/instance.go | 37 -- eventlog/cluster/discover/manager.go | 414 ------------------ eventlog/cluster/distribution/distribution.go | 176 -------- .../cluster/distribution/distribution_test.go | 53 --- eventlog/conf/conf.go | 36 +- eventlog/db/model.go | 8 +- eventlog/exit/monitor/monitor.go | 5 +- eventlog/exit/web/manager.go | 30 +- localbuild.sh | 2 +- monitor/monitor.go | 29 ++ node/nodem/logger/streamlog/streamlog.go | 4 +- release.sh | 6 +- util/leader/kube_leader.go | 12 +- worker/master/master.go | 18 +- 55 files changed, 612 insertions(+), 2309 deletions(-) delete mode 100644 api/api_routers/cloud/cloudRouter.go delete mode 100644 api/controller/cloud.go delete mode 100644 api/daemon/region_api.go delete mode 100644 api/discover/discover.go rename cmd/{builder => chaos}/builder.go (92%) rename cmd/{builder => chaos}/option/option.go (98%) rename cmd/{builder => chaos}/server/server.go (97%) delete mode 100644 discover/README.md delete mode 100644 discover/discover.go delete mode 100644 discover/discover_test.go delete mode 100644 discover/register.go delete mode 100644 eventlog/cluster/discover/etcdManager.go delete mode 100644 eventlog/cluster/discover/instance.go delete mode 100644 eventlog/cluster/discover/manager.go delete mode 100644 eventlog/cluster/distribution/distribution.go delete mode 100644 eventlog/cluster/distribution/distribution_test.go diff --git a/api/api_routers/cloud/cloudRouter.go b/api/api_routers/cloud/cloudRouter.go deleted file mode 100644 index 89019d741..000000000 --- a/api/api_routers/cloud/cloudRouter.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package cloud - -import ( - "github.com/go-chi/chi" - "github.com/goodrain/rainbond/api/controller" -) - -//Routes routes -func Routes() chi.Router { - r := chi.NewRouter() - r.Get("/show", controller.GetCloudRouterManager().Show) - r.Post("/auth", controller.GetCloudRouterManager().CreateToken) - r.Get("/auth/{eid}", controller.GetCloudRouterManager().GetTokenInfo) - r.Put("/auth/{eid}", controller.GetCloudRouterManager().UpdateToken) - r.Get("/api/manager", controller.GetCloudRouterManager().GetAPIManager) - r.Post("/api/manager", controller.GetCloudRouterManager().DeleteAPIManager) - return r -} diff --git a/api/api_routers/websocket/websocket.go b/api/api_routers/websocket/websocket.go index 1745ee199..88c6d087d 100644 --- a/api/api_routers/websocket/websocket.go +++ b/api/api_routers/websocket/websocket.go @@ -27,19 +27,15 @@ import ( //Routes routes func Routes() chi.Router { r := chi.NewRouter() - r.Get("/docker_log", controller.GetDockerLog().Get) - r.Get("/monitor_message", controller.GetMonitorMessage().Get) - r.Get("/new_monitor_message", controller.GetMonitorMessage().Get) r.Get("/event_log", controller.GetEventLog().Get) r.Get("/services/{serviceID}/pubsub", controller.GetPubSubControll().Get) return r } -//LogRoutes 日志下载路由 +//LogRoutes componet log download func LogRoutes() chi.Router { r := chi.NewRouter() r.Get("/{gid}/{filename}", controller.GetLogFile().Get) - r.Get("/install_log/{filename}", controller.GetLogFile().GetInstallLog) return r } diff --git a/api/controller/cloud.go b/api/controller/cloud.go deleted file mode 100644 index 6af7d76db..000000000 --- a/api/controller/cloud.go +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package controller - -import ( - "net/http" - - "github.com/go-chi/chi" - "github.com/goodrain/rainbond/api/handler" - api_model "github.com/goodrain/rainbond/api/model" - httputil "github.com/goodrain/rainbond/util/http" -) - -//CloudManager cloud manager -type CloudManager struct{} - -var defaultCloudManager *CloudManager - -//GetCloudRouterManager get cloud Manager -func GetCloudRouterManager() *CloudManager { - if defaultCloudManager != nil { - return defaultCloudManager - } - defaultCloudManager = &CloudManager{} - return defaultCloudManager -} - -//Show Show -func (c *CloudManager) Show(w http.ResponseWriter, r *http.Request) { - w.Write([]byte("cloud urls")) -} - -//CreateToken CreateToken -// swagger:operation POST /cloud/auth cloud createToken -// -// 产生token -// -// create token -// -// --- -// consumes: -// - application/json -// - application/x-protobuf -// -// produces: -// - application/json -// - application/xml -// -// responses: -// default: -// schema: -// "$ref": "#/responses/commandResponse" -// description: 统一返回格式 -func (c *CloudManager) CreateToken(w http.ResponseWriter, r *http.Request) { - var gt api_model.GetUserToken - if ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, >.Body, nil); !ok { - return - } - ti, err := handler.GetCloudManager().TokenDispatcher(>) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, ti) -} - -//GetTokenInfo GetTokenInfo -// swagger:operation GET /cloud/auth/{eid} cloud getTokenInfo -// -// 获取tokeninfo -// -// get token info -// -// --- -// consumes: -// - application/json -// - application/x-protobuf -// -// produces: -// - application/json -// - application/xml -// -// responses: -// default: -// schema: -// "$ref": "#/responses/commandResponse" -// description: 统一返回格式 -func (c *CloudManager) GetTokenInfo(w http.ResponseWriter, r *http.Request) { - eid := chi.URLParam(r, "eid") - ti, err := handler.GetCloudManager().GetTokenInfo(eid) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, ti) -} - -//UpdateToken UpdateToken -// swagger:operation PUT /cloud/auth/{eid} cloud updateToken -// -// 更新token -// -// update token info -// -// --- -// consumes: -// - application/json -// - application/x-protobuf -// -// produces: -// - application/json -// - application/xml -// -// responses: -// default: -// schema: -// "$ref": "#/responses/commandResponse" -// description: 统一返回格式 -func (c *CloudManager) UpdateToken(w http.ResponseWriter, r *http.Request) { - var ut api_model.UpdateToken - if ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &ut.Body, nil); !ok { - return - } - eid := chi.URLParam(r, "eid") - err := handler.GetCloudManager().UpdateTokenTime(eid, ut.Body.ValidityPeriod) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, nil) -} - -//GetAPIManager GetAPIManager -// swagger:operation GET /cloud/api/manager cloud GetAPIManager -// -// 获取api管理 -// -// get api manager -// -// --- -// consumes: -// - application/json -// - application/x-protobuf -// -// produces: -// - application/json -// - application/xml -// -// responses: -// default: -// schema: -// "$ref": "#/responses/commandResponse" -// description: 统一返回格式 -func (c *CloudManager) GetAPIManager(w http.ResponseWriter, r *http.Request) { - apiMap := handler.GetTokenIdenHandler().GetAPIManager() - httputil.ReturnSuccess(r, w, apiMap) -} - -//AddAPIManager AddAPIManager -// swagger:operation POST /cloud/api/manager cloud addAPIManager -// -// 添加api管理 -// -// get api manager -// -// --- -// consumes: -// - application/json -// - application/x-protobuf -// -// produces: -// - application/json -// - application/xml -// -// responses: -// default: -// schema: -// "$ref": "#/responses/commandResponse" -// description: 统一返回格式 -func (c *CloudManager) AddAPIManager(w http.ResponseWriter, r *http.Request) { - var am api_model.APIManager - if ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &am.Body, nil); !ok { - return - } - err := handler.GetTokenIdenHandler().AddAPIManager(&am) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, nil) -} - -//DeleteAPIManager DeleteAPIManager -// swagger:operation DELETE /cloud/api/manager cloud deleteAPIManager -// -// 删除api管理 -// -// delete api manager -// -// --- -// consumes: -// - application/json -// - application/x-protobuf -// -// produces: -// - application/json -// - application/xml -// -// responses: -// default: -// schema: -// "$ref": "#/responses/commandResponse" -// description: 统一返回格式 -func (c *CloudManager) DeleteAPIManager(w http.ResponseWriter, r *http.Request) { - var am api_model.APIManager - if ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &am.Body, nil); !ok { - return - } - err := handler.GetTokenIdenHandler().DeleteAPIManager(&am) - if err != nil { - err.Handle(r, w) - return - } - httputil.ReturnSuccess(r, w, nil) -} diff --git a/api/controller/manager.go b/api/controller/manager.go index 76fdc4497..54e2c3093 100644 --- a/api/controller/manager.go +++ b/api/controller/manager.go @@ -22,7 +22,6 @@ import ( "net/http" "github.com/goodrain/rainbond/api/api" - "github.com/goodrain/rainbond/api/discover" "github.com/goodrain/rainbond/api/proxy" "github.com/goodrain/rainbond/cmd/api/option" mqclient "github.com/goodrain/rainbond/mq/client" @@ -82,8 +81,7 @@ func NewManager(conf option.Config, statusCli *client.AppRuntimeSyncClient) (*V2 v2r.GatewayStruct.MQClient = mqClient v2r.GatewayStruct.cfg = &conf v2r.LabelController.optconfig = &conf - eventServerProxy := proxy.CreateProxy("eventlog", "http", []string{"local=>rbd-eventlog:6363"}) - discover.GetEndpointDiscover().AddProject("event_log_event_http", eventServerProxy) + eventServerProxy := proxy.CreateProxy("eventlog", "http", []string{"rbd-eventlog:6363"}) v2r.EventLogStruct.EventlogServerProxy = eventServerProxy return &v2r, nil } diff --git a/api/controller/websocket.go b/api/controller/websocket.go index be38f6d60..1ae349811 100644 --- a/api/controller/websocket.go +++ b/api/controller/websocket.go @@ -19,13 +19,11 @@ package controller import ( - "context" "net/http" "os" "path" "github.com/go-chi/chi" - "github.com/goodrain/rainbond/api/discover" "github.com/goodrain/rainbond/api/handler" "github.com/goodrain/rainbond/api/proxy" ctxutil "github.com/goodrain/rainbond/api/util/ctx" @@ -33,7 +31,7 @@ import ( "github.com/sirupsen/logrus" ) -var defaultEventLogEndpoints = []string{"local=>rbd-eventlog:6363"} +var defaultEventLogEndpoints = []string{"rbd-eventlog:6363"} var dockerLog *DockerLog @@ -48,7 +46,6 @@ func GetDockerLog() *DockerLog { dockerLog = &DockerLog{ socketproxy: proxy.CreateProxy("dockerlog", "websocket", defaultEventLogEndpoints), } - discover.GetEndpointDiscover().AddProject("event_log_event_http", dockerLog.socketproxy) } return dockerLog } @@ -71,7 +68,6 @@ func GetMonitorMessage() *MonitorMessage { monitorMessage = &MonitorMessage{ socketproxy: proxy.CreateProxy("monitormessage", "websocket", defaultEventLogEndpoints), } - discover.GetEndpointDiscover().AddProject("event_log_event_http", monitorMessage.socketproxy) } return monitorMessage } @@ -94,7 +90,6 @@ func GetEventLog() *EventLog { eventLog = &EventLog{ socketproxy: proxy.CreateProxy("eventlog", "websocket", defaultEventLogEndpoints), } - discover.GetEndpointDiscover().AddProject("event_log_event_http", eventLog.socketproxy) } return eventLog } @@ -142,17 +137,6 @@ func isExist(filename string) bool { return err == nil || os.IsExist(err) } -// GetInstallLog get -func (d LogFile) GetInstallLog(w http.ResponseWriter, r *http.Request) { - filename := chi.URLParam(r, "filename") - filePath := d.Root + filename - if isExist(filePath) { - http.ServeFile(w, r, filePath) - } else { - w.WriteHeader(404) - } -} - var pubSubControll *PubSubControll //PubSubControll service pub sub @@ -166,7 +150,6 @@ func GetPubSubControll() *PubSubControll { pubSubControll = &PubSubControll{ socketproxy: proxy.CreateProxy("dockerlog", "websocket", defaultEventLogEndpoints), } - discover.GetEndpointDiscover().AddProject("event_log_event_http", pubSubControll.socketproxy) } return pubSubControll } @@ -174,10 +157,11 @@ func GetPubSubControll() *PubSubControll { //Get pubsub controller func (d PubSubControll) Get(w http.ResponseWriter, r *http.Request) { serviceID := chi.URLParam(r, "serviceID") - name, _ := handler.GetEventHandler().GetLogInstance(serviceID) - if name != "" { - r.URL.Query().Add("host_id", name) - r = r.WithContext(context.WithValue(r.Context(), proxy.ContextKey("host_id"), name)) + address, _ := handler.GetEventHandler().GetLogInstance(serviceID) + if address != "" { + logrus.Infof("pubsub websocket req proxy to eventlog instance %s", address) + proxy.CreateProxy("dockerlog", "websocket", []string{address}).Proxy(w, r) + return } d.socketproxy.Proxy(w, r) } @@ -185,10 +169,11 @@ func (d PubSubControll) Get(w http.ResponseWriter, r *http.Request) { //GetHistoryLog get service docker logs func (d PubSubControll) GetHistoryLog(w http.ResponseWriter, r *http.Request) { serviceID := r.Context().Value(ctxutil.ContextKey("service_id")).(string) - name, _ := handler.GetEventHandler().GetLogInstance(serviceID) - if name != "" { - r.URL.Query().Add("host_id", name) - r = r.WithContext(context.WithValue(r.Context(), proxy.ContextKey("host_id"), name)) + address, _ := handler.GetEventHandler().GetLogInstance(serviceID) + if address != "" { + logrus.Infof("get history container log req proxy to eventlog instance %s", address) + proxy.CreateProxy("dockerlog", "websocket", []string{address}).Proxy(w, r) + return } d.socketproxy.Proxy(w, r) } diff --git a/api/daemon/region_api.go b/api/daemon/region_api.go deleted file mode 100644 index cdeb27a32..000000000 --- a/api/daemon/region_api.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package daemon - -import ( - "github.com/goodrain/rainbond/api/util" - "net/http" - "os" - "os/exec" - "time" - - "github.com/sirupsen/logrus" -) - -//StartRegionAPI 启动 -func StartRegionAPI(ch chan os.Signal) { - logrus.Info("old region api begin start..") - arg := []string{"region_api.wsgi", "-b=127.0.0.1:8887", "--max-requests=5000", "--reload", "--debug", "--workers=4", "--log-file", "-", "--access-logfile", "-", "--error-logfile", "-"} - cmd := exec.Command("gunicorn", arg...) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - go func() { - if err := cmd.Start(); err != nil { - logrus.Error("start region old api error.", err.Error()) - } - tick := time.NewTicker(time.Second * 5) - select { - case si := <-ch: - cmd.Process.Signal(si) - return - case <-tick.C: - monitor() - } - }() - return -} -func monitor() { - response, err := http.Get("http://127.0.0.1:8887/monitor") - if err != nil { - logrus.Error("monitor region old api error.", err.Error()) - return - } - defer util.CloseResponse(response) - if response != nil && response.StatusCode/100 > 2 { - logrus.Errorf("monitor region old api error. response code is %s", response.Status) - } - -} diff --git a/api/db/db.go b/api/db/db.go index 91f38a558..c56bdb041 100644 --- a/api/db/db.go +++ b/api/db/db.go @@ -65,17 +65,10 @@ func CreateDBManager(conf option.Config) error { func CreateEventManager(conf option.Config) error { var tryTime time.Duration var err error - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: conf.EtcdEndpoint, - CaFile: conf.EtcdCaFile, - CertFile: conf.EtcdCertFile, - KeyFile: conf.EtcdKeyFile, - } for tryTime < 4 { tryTime++ if err = event.NewManager(event.EventConfig{ EventLogServers: conf.EventLogServers, - DiscoverArgs: etcdClientArgs, }); err != nil { logrus.Errorf("get event manager failed, try time is %v,%s", tryTime, err.Error()) time.Sleep((5 + tryTime*10) * time.Second) diff --git a/api/discover/discover.go b/api/discover/discover.go deleted file mode 100644 index b974ca6ed..000000000 --- a/api/discover/discover.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "errors" - "sync" - - "github.com/goodrain/rainbond/api/proxy" - corediscover "github.com/goodrain/rainbond/discover" - corediscoverconfig "github.com/goodrain/rainbond/discover/config" - etcdutil "github.com/goodrain/rainbond/util/etcd" - - "github.com/sirupsen/logrus" -) - -//EndpointDiscover 后端服务自动发现 -type EndpointDiscover interface { - AddProject(name string, proxy proxy.Proxy) - Remove(name string) - Stop() -} - -var defaultEndpointDiscover EndpointDiscover - -//CreateEndpointDiscover create endpoint discover -func CreateEndpointDiscover(etcdClientArgs *etcdutil.ClientArgs) (EndpointDiscover, error) { - if defaultEndpointDiscover == nil { - if etcdClientArgs == nil { - return nil, errors.New("etcd args is nil") - } - dis, err := corediscover.GetDiscover(corediscoverconfig.DiscoverConfig{EtcdClientArgs: etcdClientArgs}) - if err != nil { - return nil, err - } - defaultEndpointDiscover = &endpointDiscover{ - dis: dis, - projects: make(map[string]*defalt), - } - } - return defaultEndpointDiscover, nil -} - -//GetEndpointDiscover get endpoints discover -func GetEndpointDiscover() EndpointDiscover { - return defaultEndpointDiscover -} - -type endpointDiscover struct { - projects map[string]*defalt - lock sync.Mutex - dis corediscover.Discover -} - -func (e *endpointDiscover) AddProject(name string, pro proxy.Proxy) { - e.lock.Lock() - defer e.lock.Unlock() - if def, ok := e.projects[name]; !ok { - e.projects[name] = &defalt{name: name, proxys: []proxy.Proxy{pro}} - e.dis.AddProject(name, e.projects[name]) - } else { - def.proxys = append(def.proxys, pro) - // add proxy after update endpoint first,must initialize endpoint by cache data - if len(def.cacheEndpointURL) > 0 { - pro.UpdateEndpoints(def.cacheEndpointURL...) - } - } - -} -func (e *endpointDiscover) Remove(name string) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; ok { - delete(e.projects, name) - } -} -func (e *endpointDiscover) Stop() { - e.dis.Stop() -} - -type defalt struct { - name string - proxys []proxy.Proxy - cacheEndpointURL []string -} - -func (e *defalt) Error(err error) { - logrus.Errorf("%s project auto discover occurred error.%s", e.name, err.Error()) - defaultEndpointDiscover.Remove(e.name) -} - -func (e *defalt) UpdateEndpoints(endpoints ...*corediscoverconfig.Endpoint) { - var endStr []string - for _, end := range endpoints { - if end.URL != "" { - endStr = append(endStr, end.Name+"=>"+end.URL) - } - } - logrus.Debugf("endstr is %v, name is %v", endStr, e.name) - for _, p := range e.proxys { - p.UpdateEndpoints(endStr...) - } - e.cacheEndpointURL = endStr -} - -//when watch occurred error,will exec this method -func (e *endpointDiscover) Error(err error) { - logrus.Errorf("discover error %s", err.Error()) -} diff --git a/api/handler/eventLog.go b/api/handler/eventLog.go index 863e4ed1a..78c1b6152 100644 --- a/api/handler/eventLog.go +++ b/api/handler/eventLog.go @@ -21,32 +21,33 @@ package handler import ( "bytes" "compress/zlib" - "context" + "encoding/json" "fmt" "io" "io/ioutil" + "net/http" "os" "path" - "github.com/coreos/etcd/clientv3" "github.com/goodrain/rainbond/api/model" api_model "github.com/goodrain/rainbond/api/model" "github.com/goodrain/rainbond/db" dbmodel "github.com/goodrain/rainbond/db/model" eventdb "github.com/goodrain/rainbond/eventlog/db" "github.com/goodrain/rainbond/util/constants" + "github.com/sirupsen/logrus" ) //LogAction log action struct type LogAction struct { - EtcdCli *clientv3.Client - eventdb *eventdb.EventFilePlugin + eventdb *eventdb.EventFilePlugin + eventLogServer string } //CreateLogManager get log manager -func CreateLogManager(cli *clientv3.Client) *LogAction { +func CreateLogManager() *LogAction { return &LogAction{ - EtcdCli: cli, + eventLogServer: "http://rbd-eventlog:6363", eventdb: &eventdb.EventFilePlugin{ HomePath: "/grdata/logs/", }, @@ -97,15 +98,30 @@ func (l *LogAction) GetLogFile(serviceAlias, fileName string) (string, string, e //GetLogInstance get log web socket instance func (l *LogAction) GetLogInstance(serviceID string) (string, error) { - value, err := l.EtcdCli.Get(context.Background(), fmt.Sprintf("/event/dockerloginstacne/%s", serviceID)) - if err != nil { - return "", err + retry := 1 + for retry < 3 { + address := fmt.Sprintf("%s/docker-instance?service_id=%s&mode=stream", l.eventLogServer, serviceID) + res, err := http.DefaultClient.Get(address) + if res != nil && res.Body != nil { + defer res.Body.Close() + } + if err != nil { + logrus.Warningf("Error get host info from %s. %s", address, err) + retry++ + continue + } + var host = make(map[string]interface{}) + err = json.NewDecoder(res.Body).Decode(&host) + if err != nil { + logrus.Errorf("Error Decode BEST instance host info: %v", err) + retry++ + continue + } + if status, ok := host["status"]; ok && status == "success" { + return fmt.Sprintf("%s:%d", host["ip"], int(host["websocket_port"].(float64))), nil + } } - if len(value.Kvs) > 0 { - return string(value.Kvs[0].Value), nil - } - - return "", nil + return "", fmt.Errorf("can not select docker log instance") } //GetLevelLog get event log diff --git a/api/handler/handler.go b/api/handler/handler.go index 1b30063c9..2a73ca7d3 100644 --- a/api/handler/handler.go +++ b/api/handler/handler.go @@ -67,7 +67,7 @@ func InitHandle(conf option.Config, defaultNetRulesHandler = CreateNetRulesManager(etcdcli) defaultCloudHandler = CreateCloudManager(conf) defaultAPPBackupHandler = group.CreateBackupHandle(mqClient, statusCli, etcdcli) - defaultEventHandler = CreateLogManager(etcdcli) + defaultEventHandler = CreateLogManager() shareHandler = &share.ServiceShareHandle{MQClient: mqClient, EtcdCli: etcdcli} pluginShareHandler = &share.PluginShareHandle{MQClient: mqClient, EtcdCli: etcdcli} if err := CreateTokenIdenHandler(conf); err != nil { diff --git a/api/handler/proxy.go b/api/handler/proxy.go index 26c22be96..b47372bce 100644 --- a/api/handler/proxy.go +++ b/api/handler/proxy.go @@ -19,14 +19,12 @@ package handler import ( - "github.com/goodrain/rainbond/api/discover" "github.com/goodrain/rainbond/api/proxy" "github.com/goodrain/rainbond/cmd/api/option" ) var builderProxy proxy.Proxy var prometheusProxy proxy.Proxy -var monitorProxy proxy.Proxy var kubernetesDashboard proxy.Proxy //InitProxy 初始化 @@ -37,10 +35,6 @@ func InitProxy(conf option.Config) { if prometheusProxy == nil { prometheusProxy = proxy.CreateProxy("prometheus", "http", []string{conf.PrometheusEndpoint}) } - if monitorProxy == nil { - monitorProxy = proxy.CreateProxy("monitor", "http", []string{"127.0.0.1:3329"}) - discover.GetEndpointDiscover().AddProject("monitor", monitorProxy) - } if kubernetesDashboard == nil { kubernetesDashboard = proxy.CreateProxy("kubernetesdashboard", "http", []string{conf.KuberentesDashboardAPI}) } @@ -56,11 +50,6 @@ func GetPrometheusProxy() proxy.Proxy { return prometheusProxy } -//GetMonitorProxy GetMonitorProxy -func GetMonitorProxy() proxy.Proxy { - return monitorProxy -} - // GetKubernetesDashboardProxy returns the kubernetes dashboard proxy. func GetKubernetesDashboardProxy() proxy.Proxy { return kubernetesDashboard diff --git a/api/proxy/lb.go b/api/proxy/lb.go index 3ecf157aa..650c7f9f1 100644 --- a/api/proxy/lb.go +++ b/api/proxy/lb.go @@ -22,8 +22,6 @@ import ( "net/http" "strings" "sync/atomic" - - "github.com/sirupsen/logrus" ) //ContextKey context key @@ -147,50 +145,3 @@ func (rr RoundRobin) Select(r *http.Request, endpoints EndpointList) Endpoint { selec := int(atomic.AddUint64(rr.ops, 1) % l) return endpoints.Selec(selec) } - -//SelectBalance 选择性负载均衡 -type SelectBalance struct { - hostIDMap map[string]string -} - -//NewSelectBalance 创建选择性负载均衡 -func NewSelectBalance() *SelectBalance { - return &SelectBalance{ - hostIDMap: map[string]string{"local": "rbd-eventlog:6363"}, - } -} - -//Select 负载 -func (s *SelectBalance) Select(r *http.Request, endpoints EndpointList) Endpoint { - if r.URL == nil { - return Endpoint(s.hostIDMap["local"]) - } - - id2ip := map[string]string{"local": "rbd-eventlog:6363"} - for _, end := range endpoints { - if kv := strings.Split(string(end), "=>"); len(kv) > 1 { - id2ip[kv[0]] = kv[1] - } - } - - if r.URL != nil { - hostID := r.URL.Query().Get("host_id") - if hostID == "" { - hostIDFromContext := r.Context().Value(ContextKey("host_id")) - if hostIDFromContext != nil { - hostID = hostIDFromContext.(string) - } - } - if e, ok := id2ip[hostID]; ok { - logrus.Infof("[lb selelct] find host %s from name %s success", e, hostID) - return Endpoint(e) - } - } - - if len(endpoints) > 0 { - logrus.Infof("default endpoint is %s", endpoints[len(endpoints)-1]) - return endpoints[len(endpoints)-1] - } - - return Endpoint(s.hostIDMap["local"]) -} diff --git a/api/proxy/lb_test.go b/api/proxy/lb_test.go index e799b5780..5f8b0e68e 100644 --- a/api/proxy/lb_test.go +++ b/api/proxy/lb_test.go @@ -23,11 +23,6 @@ import ( "testing" ) -func TestNewSelectBalance(t *testing.T) { - sb := NewSelectBalance() - t.Log(sb.hostIDMap) -} - func TestURLParse(t *testing.T) { endURL, err := url.Parse("127.0.0.1:8080") if err != nil { diff --git a/api/proxy/proxy.go b/api/proxy/proxy.go index d1b30c948..343c37496 100644 --- a/api/proxy/proxy.go +++ b/api/proxy/proxy.go @@ -33,9 +33,6 @@ func CreateProxy(name string, mode string, endpoints []string) Proxy { case "websocket": return createWebSocketProxy(name, endpoints) case "http": - if name == "eventlog" { - return createHTTPProxy(name, endpoints, NewSelectBalance()) - } return createHTTPProxy(name, endpoints, nil) default: return createHTTPProxy(name, endpoints, nil) diff --git a/api/proxy/websocket_proxy.go b/api/proxy/websocket_proxy.go index 8d6216cce..73029f6a7 100644 --- a/api/proxy/websocket_proxy.go +++ b/api/proxy/websocket_proxy.go @@ -162,17 +162,9 @@ func (h *WebSocketProxy) Do(r *http.Request) (*http.Response, error) { } func createWebSocketProxy(name string, endpoints []string) *WebSocketProxy { - if name != "dockerlog" { - return &WebSocketProxy{ - name: name, - endpoints: CreateEndpoints(endpoints), - lb: NewRoundRobin(), - } - } return &WebSocketProxy{ name: name, endpoints: CreateEndpoints(endpoints), - lb: NewSelectBalance(), + lb: NewRoundRobin(), } - } diff --git a/api/server/api.go b/api/server/api.go index 6587aea10..2a89e177f 100644 --- a/api/server/api.go +++ b/api/server/api.go @@ -44,9 +44,7 @@ import ( "github.com/goodrain/rainbond/api/api_routers/doc" "github.com/goodrain/rainbond/api/api_routers/license" "github.com/goodrain/rainbond/api/metric" - "github.com/goodrain/rainbond/api/proxy" - "github.com/goodrain/rainbond/api/api_routers/cloud" "github.com/goodrain/rainbond/api/api_routers/version2" "github.com/goodrain/rainbond/api/api_routers/websocket" @@ -64,7 +62,6 @@ type Manager struct { conf option.Config stopChan chan struct{} r *chi.Mux - prometheusProxy proxy.Proxy etcdcli *clientv3.Client exporter *metric.Exporter websocketModuls map[string]CustomModule @@ -164,11 +161,8 @@ func (m *Manager) Run() error { res.Write([]byte("ok")) }) m.r.Mount("/v2", v2R.Routes()) - m.r.Mount("/cloud", cloud.Routes()) m.r.Mount("/", doc.Routes()) m.r.Mount("/license", license.Routes()) - //兼容老版docker - m.r.Get("/v1/etcd/event-log/instances", m.EventLogInstance) m.r.Get("/kubernetes/dashboard", m.KuberntesDashboardAPI) //prometheus单节点代理 m.r.Get("/api/v1/query", m.PrometheusAPI) @@ -219,30 +213,6 @@ func (m *Manager) Run() error { return nil } -//EventLogInstance 查询event server instance -func (m *Manager) EventLogInstance(w http.ResponseWriter, r *http.Request) { - ctx, cancel := context.WithCancel(m.ctx) - defer cancel() - - res, err := m.etcdcli.Get(ctx, "/event/instance", clientv3.WithPrefix()) - if err != nil { - w.WriteHeader(500) - return - } - if res.Kvs != nil && len(res.Kvs) > 0 { - result := `{"data":{"instance":[` - for _, kv := range res.Kvs { - result += string(kv.Value) + "," - } - result = result[:len(result)-1] + `]},"ok":true}` - w.Write([]byte(result)) - w.WriteHeader(200) - return - } - w.WriteHeader(404) - return -} - //PrometheusAPI prometheus api 代理 func (m *Manager) PrometheusAPI(w http.ResponseWriter, r *http.Request) { handler.GetPrometheusProxy().Proxy(w, r) @@ -268,7 +238,7 @@ func (m *Manager) RequestMetric(next http.Handler) http.Handler { ww := middleware.NewWrapResponseWriter(w, r.ProtoMajor) defer func() { path := r.RequestURI - if strings.Index(r.RequestURI, "?") > -1 { + if strings.Contains(r.RequestURI, "?") { path = r.RequestURI[:strings.Index(r.RequestURI, "?")] } m.exporter.RequestInc(ww.Status(), path) diff --git a/builder/build/code_build_test.go b/builder/build/code_build_test.go index 197467909..e34c225da 100644 --- a/builder/build/code_build_test.go +++ b/builder/build/code_build_test.go @@ -16,10 +16,9 @@ import ( jobc "github.com/goodrain/rainbond/builder/job" "github.com/goodrain/rainbond/builder/parser/code" "github.com/goodrain/rainbond/builder/sources" - "github.com/goodrain/rainbond/cmd/builder/option" + "github.com/goodrain/rainbond/cmd/chaos/option" "github.com/goodrain/rainbond/event" - etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" "k8s.io/client-go/kubernetes" @@ -36,7 +35,6 @@ func TestCreateJob(t *testing.T) { } event.NewManager(event.EventConfig{ EventLogServers: conf.EventLogServers, - DiscoverArgs: &etcdutil.ClientArgs{Endpoints: conf.EtcdEndPoints}, }) restConfig, err := k8sutil.NewRestConfig("/Users/fanyangyang/Documents/company/goodrain/remote/192.168.2.206/admin.kubeconfig") if err != nil { diff --git a/builder/discover/discover.go b/builder/discover/discover.go index 612a3f39f..1be8ed49e 100644 --- a/builder/discover/discover.go +++ b/builder/discover/discover.go @@ -26,7 +26,7 @@ import ( "time" "github.com/goodrain/rainbond/builder/exector" - "github.com/goodrain/rainbond/cmd/builder/option" + "github.com/goodrain/rainbond/cmd/chaos/option" "github.com/goodrain/rainbond/mq/api/grpc/pb" "github.com/goodrain/rainbond/mq/client" "github.com/sirupsen/logrus" diff --git a/builder/exector/exector.go b/builder/exector/exector.go index 1bcc1f514..902b6d50d 100644 --- a/builder/exector/exector.go +++ b/builder/exector/exector.go @@ -35,7 +35,7 @@ import ( "github.com/tidwall/gjson" "github.com/goodrain/rainbond/builder/job" - "github.com/goodrain/rainbond/cmd/builder/option" + "github.com/goodrain/rainbond/cmd/chaos/option" "github.com/goodrain/rainbond/db" "github.com/goodrain/rainbond/event" "github.com/goodrain/rainbond/mq/api/grpc/pb" diff --git a/builder/exector/exector_test.go b/builder/exector/exector_test.go index 1c849ccfc..d67328a52 100644 --- a/builder/exector/exector_test.go +++ b/builder/exector/exector_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/client-go/kubernetes" "github.com/goodrain/rainbond/builder/parser/code" - "github.com/goodrain/rainbond/cmd/builder/option" + "github.com/goodrain/rainbond/cmd/chaos/option" "github.com/goodrain/rainbond/event" "github.com/goodrain/rainbond/mq/api/grpc/pb" @@ -51,7 +51,6 @@ func Test_exectorManager_buildFromSourceCode(t *testing.T) { etcdArgs := etcdutil.ClientArgs{Endpoints: conf.EtcdEndPoints} event.NewManager(event.EventConfig{ EventLogServers: conf.EventLogServers, - DiscoverArgs: &etcdArgs, }) restConfig, err := k8sutil.NewRestConfig("/Users/fanyangyang/Documents/company/goodrain/admin.kubeconfig") if err != nil { diff --git a/builder/exector/garbage_collection.go b/builder/exector/garbage_collection.go index 12027386f..4cc75e108 100644 --- a/builder/exector/garbage_collection.go +++ b/builder/exector/garbage_collection.go @@ -22,7 +22,7 @@ import ( "fmt" "os" - "github.com/goodrain/rainbond/cmd/builder/option" + "github.com/goodrain/rainbond/cmd/chaos/option" eventutil "github.com/goodrain/rainbond/eventlog/util" "github.com/pquerna/ffjson/ffjson" "github.com/sirupsen/logrus" diff --git a/cmd/api/option/option.go b/cmd/api/option/option.go index 65477e297..b86e2e6eb 100644 --- a/cmd/api/option/option.go +++ b/cmd/api/option/option.go @@ -94,7 +94,7 @@ func (a *APIServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.V1API, "v1-api", "127.0.0.1:8887", "the region v1 api") fs.StringSliceVar(&a.NodeAPI, "node-api", []string{"127.0.0.1:6100"}, "the node server api") fs.StringSliceVar(&a.BuilderAPI, "builder-api", []string{"rbd-chaos:3228"}, "the builder api") - fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"127.0.0.1:6366"}, "event log server address. simple lb") + fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"rbd-eventlog:6366"}, "event log server address.") fs.StringVar(&a.MQAPI, "mq-api", "127.0.0.1:6300", "acp_mq api") fs.BoolVar(&a.StartRegionAPI, "start", false, "Whether to start region old api") fs.StringSliceVar(&a.EtcdEndpoint, "etcd", []string{"http://127.0.0.1:2379"}, "etcd server or proxy address") diff --git a/cmd/api/server/server.go b/cmd/api/server/server.go index 82bd425de..15b1459d4 100644 --- a/cmd/api/server/server.go +++ b/cmd/api/server/server.go @@ -26,7 +26,6 @@ import ( "github.com/goodrain/rainbond/api/controller" "github.com/goodrain/rainbond/api/db" - "github.com/goodrain/rainbond/api/discover" "github.com/goodrain/rainbond/api/handler" "github.com/goodrain/rainbond/api/server" "github.com/goodrain/rainbond/api/webcli/app" @@ -57,10 +56,6 @@ func Run(s *option.APIServer) error { CertFile: s.Config.EtcdCertFile, KeyFile: s.Config.EtcdKeyFile, } - //启动服务发现 - if _, err := discover.CreateEndpointDiscover(etcdClientArgs); err != nil { - return err - } //创建db manager if err := db.CreateDBManager(s.Config); err != nil { logrus.Debugf("create db manager error, %v", err) @@ -94,7 +89,6 @@ func Run(s *option.APIServer) error { if err := event.NewManager(event.EventConfig{ EventLogServers: s.Config.EventLogServers, - DiscoverArgs: etcdClientArgs, }); err != nil { return err } diff --git a/cmd/builder/builder.go b/cmd/chaos/builder.go similarity index 92% rename from cmd/builder/builder.go rename to cmd/chaos/builder.go index 7100c5221..5b1a39d75 100644 --- a/cmd/builder/builder.go +++ b/cmd/chaos/builder.go @@ -23,8 +23,8 @@ import ( "os" "github.com/goodrain/rainbond/cmd" - "github.com/goodrain/rainbond/cmd/builder/option" - "github.com/goodrain/rainbond/cmd/builder/server" + "github.com/goodrain/rainbond/cmd/chaos/option" + "github.com/goodrain/rainbond/cmd/chaos/server" "github.com/spf13/pflag" ) diff --git a/cmd/builder/option/option.go b/cmd/chaos/option/option.go similarity index 98% rename from cmd/builder/option/option.go rename to cmd/chaos/option/option.go index 054df99c8..db61c9d95 100644 --- a/cmd/builder/option/option.go +++ b/cmd/chaos/option/option.go @@ -81,7 +81,7 @@ func (a *Builder) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.PrometheusMetricPath, "metric", "/metrics", "prometheus metrics path") fs.StringVar(&a.DBType, "db-type", "mysql", "db type mysql or etcd") fs.StringVar(&a.MysqlConnectionInfo, "mysql", "root:admin@tcp(127.0.0.1:3306)/region", "mysql db connection info") - fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"127.0.0.1:6366"}, "event log server address. simple lb") + fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"rbd-eventlog:6366"}, "event log server address. simple lb") fs.StringVar(&a.KubeConfig, "kube-config", "", "kubernetes api server config file") fs.IntVar(&a.MaxTasks, "max-tasks", 50, "Maximum number of simultaneous build tasks") fs.IntVar(&a.APIPort, "api-port", 3228, "the port for api server") diff --git a/cmd/builder/server/server.go b/cmd/chaos/server/server.go similarity index 97% rename from cmd/builder/server/server.go rename to cmd/chaos/server/server.go index 7630672c1..ceab71641 100644 --- a/cmd/builder/server/server.go +++ b/cmd/chaos/server/server.go @@ -26,7 +26,7 @@ import ( "github.com/goodrain/rainbond/builder/discover" "github.com/goodrain/rainbond/builder/exector" "github.com/goodrain/rainbond/builder/monitor" - "github.com/goodrain/rainbond/cmd/builder/option" + "github.com/goodrain/rainbond/cmd/chaos/option" "github.com/goodrain/rainbond/db" "github.com/goodrain/rainbond/db/config" "github.com/goodrain/rainbond/event" @@ -64,7 +64,6 @@ func Run(s *option.Builder) error { } if err := event.NewManager(event.EventConfig{ EventLogServers: s.Config.EventLogServers, - DiscoverArgs: etcdClientArgs, }); err != nil { return err } diff --git a/cmd/eventlog/server/server.go b/cmd/eventlog/server/server.go index d71d09951..082dd2386 100644 --- a/cmd/eventlog/server/server.go +++ b/cmd/eventlog/server/server.go @@ -27,16 +27,16 @@ import ( "syscall" "time" - "github.com/goodrain/rainbond/discover" "github.com/goodrain/rainbond/eventlog/cluster" "github.com/goodrain/rainbond/eventlog/conf" "github.com/goodrain/rainbond/eventlog/db" "github.com/goodrain/rainbond/eventlog/entry" "github.com/goodrain/rainbond/eventlog/exit/web" "github.com/goodrain/rainbond/eventlog/store" - etcdutil "github.com/goodrain/rainbond/util/etcd" + k8sutil "github.com/goodrain/rainbond/util/k8s" "github.com/sirupsen/logrus" "github.com/spf13/pflag" + "k8s.io/client-go/kubernetes" ) // LogServer - @@ -69,17 +69,10 @@ func (s *LogServer) AddFlags(fs *pflag.FlagSet) { fs.IntVar(&s.Conf.Entry.MonitorMessageServer.CacheMessageSize, "monitor.cache", 200, "the monitor sub server cache the receive message size") fs.StringVar(&s.Conf.Entry.MonitorMessageServer.SubSubscribe, "monitor.subscribe", "ceptop", "the monitor message sub server subscribe info") fs.BoolVar(&s.Conf.ClusterMode, "cluster", true, "Whether open cluster mode") - fs.StringVar(&s.Conf.Cluster.Discover.InstanceIP, "cluster.instance.ip", "", "The current instance IP in the cluster can be communications.") - fs.StringVar(&s.Conf.Cluster.Discover.Type, "discover.type", "etcd", "the instance in cluster auto discover way.") - fs.StringSliceVar(&s.Conf.Cluster.Discover.EtcdAddr, "discover.etcd.addr", []string{"http://127.0.0.1:2379"}, "set all etcd server addr in cluster for message instence auto discover.") - fs.StringVar(&s.Conf.Cluster.Discover.EtcdCaFile, "discover.etcd.ca", "", "verify etcd certificates of TLS-enabled secure servers using this CA bundle") - fs.StringVar(&s.Conf.Cluster.Discover.EtcdCertFile, "discover.etcd.cert", "", "identify secure etcd client using this TLS certificate file") - fs.StringVar(&s.Conf.Cluster.Discover.EtcdKeyFile, "discover.etcd.key", "", "identify secure etcd client using this TLS key file") - fs.StringVar(&s.Conf.Cluster.Discover.HomePath, "discover.etcd.homepath", "/event", "etcd home key") - fs.StringVar(&s.Conf.Cluster.Discover.EtcdUser, "discover.etcd.user", "", "etcd server user info") - fs.StringVar(&s.Conf.Cluster.Discover.EtcdPass, "discover.etcd.pass", "", "etcd server user password") + fs.StringVar(&s.Conf.Cluster.HostIP, "cluster.instance.ip", "", "The current instance IP in the cluster can be communications.") fs.StringVar(&s.Conf.Cluster.PubSub.PubBindIP, "cluster.bind.ip", "0.0.0.0", "Cluster communication to listen the IP") fs.IntVar(&s.Conf.Cluster.PubSub.PubBindPort, "cluster.bind.port", 6365, "Cluster communication to listen the Port") + fs.IntVar(&s.Conf.Cluster.ClusterPort, "cluster.leader.port", 6367, "leader server bind port") fs.StringVar(&s.Conf.EventStore.MessageType, "message.type", "json", "Receive and transmit the log message type.") fs.StringVar(&s.Conf.EventStore.GarbageMessageSaveType, "message.garbage.save", "file", "garbage message way of storage") fs.StringVar(&s.Conf.EventStore.GarbageMessageFile, "message.garbage.file", "/var/log/envent_garbage_message.log", "save garbage message file path when save type is file") @@ -111,8 +104,9 @@ func (s *LogServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.Conf.EventStore.DB.HomePath, "docker.log.homepath", "/grdata/logs/", "container log persistent home path") fs.StringVar(&s.Conf.Entry.NewMonitorMessageServerConf.ListenerHost, "monitor.udp.host", "0.0.0.0", "receive new monitor udp server host") fs.IntVar(&s.Conf.Entry.NewMonitorMessageServerConf.ListenerPort, "monitor.udp.port", 6166, "receive new monitor udp server port") - fs.StringVar(&s.Conf.Cluster.Discover.NodeID, "node-id", "", "the unique ID for this node.") fs.DurationVar(&s.Conf.Cluster.PubSub.PollingTimeout, "zmq4-polling-timeout", 200*time.Millisecond, "The timeout determines the time-out on the polling of sockets") + fs.StringVar(&s.Conf.KubeConfigPath, "kubeconfig", "", "path to kubeconfig file with authorization and master location information.") + fs.StringVar(&s.Conf.Cluster.LeaderElectionNamespace, "leader-election-namespace", "rbd-system", "Namespace where this attacher runs.") } //InitLog 初始化log @@ -157,11 +151,9 @@ func (s *LogServer) InitLog() { //InitConf 初始化配置 func (s *LogServer) InitConf() { - s.Conf.Cluster.Discover.ClusterMode = s.Conf.ClusterMode - s.Conf.Cluster.PubSub.ClusterMode = s.Conf.ClusterMode s.Conf.EventStore.ClusterMode = s.Conf.ClusterMode - s.Conf.Cluster.Discover.DockerLogPort = s.Conf.Entry.DockerLogServer.BindPort - s.Conf.Cluster.Discover.WebPort = s.Conf.WebSocket.BindPort + s.Conf.Cluster.DockerLogPort = s.Conf.Entry.DockerLogServer.BindPort + s.Conf.Cluster.WebsocketPort = s.Conf.WebSocket.BindPort if os.Getenv("MYSQL_HOST") != "" && os.Getenv("MYSQL_USER") != "" && os.Getenv("MYSQL_PASSWORD") != "" { s.Conf.EventStore.DB.URL = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", os.Getenv("MYSQL_USER"), os.Getenv("MYSQL_PASSWORD"), os.Getenv("MYSQL_HOST"), os.Getenv("MYSQL_PORT"), os.Getenv("MYSQL_DATABASE")) @@ -176,27 +168,23 @@ func (s *LogServer) Run() error { s.Logger.Debug("Start run server.") log := s.Logger - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: s.Conf.Cluster.Discover.EtcdAddr, - CaFile: s.Conf.Cluster.Discover.EtcdCaFile, - CertFile: s.Conf.Cluster.Discover.EtcdCertFile, - KeyFile: s.Conf.Cluster.Discover.EtcdKeyFile, - } - ctx, cancel := context.WithCancel(context.Background()) defer cancel() - - etcdClient, err := etcdutil.NewClient(ctx, etcdClientArgs) - if err != nil { - return err - } - //init new db if err := db.CreateDBManager(s.Conf.EventStore.DB); err != nil { logrus.Infof("create db manager error, %v", err) return err } + config, err := k8sutil.NewRestConfig(s.Conf.KubeConfigPath) + if err != nil { + return err + } + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + return err + } + storeManager, err := store.NewManager(s.Conf.EventStore, log.WithField("module", "MessageStore")) if err != nil { return err @@ -206,15 +194,12 @@ func (s *LogServer) Run() error { return err } defer storeManager.Stop() - if s.Conf.ClusterMode { - s.Cluster = cluster.NewCluster(etcdClient, s.Conf.Cluster, log.WithField("module", "Cluster"), storeManager) - if err := s.Cluster.Start(); err != nil { - return err - } - defer s.Cluster.Stop() + s.Cluster = cluster.NewCluster(ctx, s.Conf.Cluster, clientset, log.WithField("module", "Cluster"), storeManager) + if err := s.Cluster.Start(); err != nil { + return err } - s.SocketServer = web.NewSocket(s.Conf.WebSocket, s.Conf.Cluster.Discover, etcdClient, - log.WithField("module", "SocketServer"), storeManager, s.Cluster, healthInfo) + defer s.Cluster.Stop() + s.SocketServer = web.NewSocket(s.Conf.WebSocket, log.WithField("module", "SocketServer"), storeManager, s.Cluster, healthInfo) if err := s.SocketServer.Run(); err != nil { return err } @@ -226,38 +211,7 @@ func (s *LogServer) Run() error { } defer s.Entry.Stop() - //服务注册 - grpckeepalive, err := discover.CreateKeepAlive(etcdClientArgs, "event_log_event_grpc", - s.Conf.Cluster.Discover.NodeID, s.Conf.Cluster.Discover.InstanceIP, s.Conf.Entry.EventLogServer.BindPort) - if err != nil { - return err - } - if err := grpckeepalive.Start(); err != nil { - return err - } - defer grpckeepalive.Stop() - - udpkeepalive, err := discover.CreateKeepAlive(etcdClientArgs, "event_log_event_udp", - s.Conf.Cluster.Discover.NodeID, s.Conf.Cluster.Discover.InstanceIP, s.Conf.Entry.NewMonitorMessageServerConf.ListenerPort) - if err != nil { - return err - } - if err := udpkeepalive.Start(); err != nil { - return err - } - defer udpkeepalive.Stop() - - httpkeepalive, err := discover.CreateKeepAlive(etcdClientArgs, "event_log_event_http", - s.Conf.Cluster.Discover.NodeID, s.Conf.Cluster.Discover.InstanceIP, s.Conf.WebSocket.BindPort) - if err != nil { - return err - } - if err := httpkeepalive.Start(); err != nil { - return err - } - defer httpkeepalive.Stop() - - term := make(chan os.Signal) + term := make(chan os.Signal, 1) signal.Notify(term, os.Interrupt, syscall.SIGTERM) select { case <-term: diff --git a/cmd/gateway/server/server.go b/cmd/gateway/server/server.go index ba13da7ec..72270fc95 100644 --- a/cmd/gateway/server/server.go +++ b/cmd/gateway/server/server.go @@ -36,7 +36,6 @@ import ( "k8s.io/client-go/kubernetes" "github.com/goodrain/rainbond/cmd/gateway/option" - "github.com/goodrain/rainbond/discover" "github.com/goodrain/rainbond/gateway/cluster" "github.com/goodrain/rainbond/gateway/controller" "github.com/goodrain/rainbond/gateway/metric" @@ -118,17 +117,6 @@ func Run(s *option.GWServer) error { } go startHTTPServer(s.ListenPorts.Health, mux) - keepalive, err := discover.CreateKeepAlive(etcdClientArgs, "gateway", s.Config.NodeName, - s.Config.HostIP, s.ListenPorts.Health) - if err != nil { - return err - } - logrus.Debug("start keepalive") - if err := keepalive.Start(); err != nil { - return err - } - defer keepalive.Stop() - logrus.Info("RBD app gateway start success!") term := make(chan os.Signal) diff --git a/cmd/monitor/option/option.go b/cmd/monitor/option/option.go index 87145242b..e1ab8c8dd 100644 --- a/cmd/monitor/option/option.go +++ b/cmd/monitor/option/option.go @@ -33,6 +33,7 @@ type Config struct { LogLevel string BindIP string Port int + MetricPort int StartArgs []string ConfigFile string AlertingRulesFileDir string @@ -91,6 +92,7 @@ func NewConfig() *Config { config := &Config{ BindIP: host, Port: 9999, + MetricPort: 3329, LogLevel: "info", KubeConfig: "", ConfigFile: "/etc/prometheus/prometheus.yml", diff --git a/cmd/worker/option/option.go b/cmd/worker/option/option.go index 0fc9c41e1..0f41d7b65 100644 --- a/cmd/worker/option/option.go +++ b/cmd/worker/option/option.go @@ -91,7 +91,7 @@ func (a *Worker) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.Listen, "listen", ":6369", "prometheus listen host and port") fs.StringVar(&a.DBType, "db-type", "mysql", "db type mysql or etcd") fs.StringVar(&a.MysqlConnectionInfo, "mysql", "root:admin@tcp(127.0.0.1:3306)/region", "mysql db connection info") - fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"127.0.0.1:6366"}, "event log server address. simple lb") + fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"rbd-eventlog:6366"}, "event log server address. simple lb") fs.StringVar(&a.KubeConfig, "kube-config", "", "kubernetes api server config file") fs.IntVar(&a.KubeAPIQPS, "kube-api-qps", 50, "kube client qps") fs.IntVar(&a.KubeAPIBurst, "kube-api-burst", 10, "kube clint burst") @@ -101,7 +101,7 @@ func (a *Worker) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.NodeName, "node-name", "", "the name of this worker,it must be global unique name") fs.StringVar(&a.HostIP, "host-ip", "", "the ip of this worker,it must be global connected ip") fs.IntVar(&a.ServerPort, "server-port", 6535, "the listen port that app runtime server") - fs.StringVar(&a.LeaderElectionNamespace, "leader-election-namespace", "rainbond", "Namespace where this attacher runs.") + fs.StringVar(&a.LeaderElectionNamespace, "leader-election-namespace", "rbd-system", "Namespace where this attacher runs.") fs.StringVar(&a.LeaderElectionIdentity, "leader-election-identity", "", "Unique idenity of this attcher. Typically name of the pod where the attacher runs.") fs.StringVar(&a.RBDNamespace, "rbd-system-namespace", "rbd-system", "rbd components kubernetes namespace") fs.StringVar(&a.GrdataPVCName, "grdata-pvc-name", "rbd-cpt-grdata", "The name of grdata persistent volume claim") diff --git a/cmd/worker/server/server.go b/cmd/worker/server/server.go index d77db8988..da005475d 100644 --- a/cmd/worker/server/server.go +++ b/cmd/worker/server/server.go @@ -30,7 +30,6 @@ import ( "github.com/goodrain/rainbond/event" "github.com/goodrain/rainbond/pkg/common" "github.com/goodrain/rainbond/pkg/generated/clientset/versioned" - etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" "github.com/goodrain/rainbond/worker/appm/componentdefinition" "github.com/goodrain/rainbond/worker/appm/controller" @@ -52,23 +51,14 @@ func Run(s *option.Worker) error { dbconfig := config.Config{ DBType: s.Config.DBType, MysqlConnectionInfo: s.Config.MysqlConnectionInfo, - EtcdEndPoints: s.Config.EtcdEndPoints, - EtcdTimeout: s.Config.EtcdTimeout, } //step 1:db manager init ,event log client init if err := db.CreateManager(dbconfig); err != nil { return err } defer db.CloseManager() - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: s.Config.EtcdEndPoints, - CaFile: s.Config.EtcdCaFile, - CertFile: s.Config.EtcdCertFile, - KeyFile: s.Config.EtcdKeyFile, - } if err := event.NewManager(event.EventConfig{ EventLogServers: s.Config.EventLogServers, - DiscoverArgs: etcdClientArgs, }); err != nil { return err } diff --git a/discover/README.md b/discover/README.md deleted file mode 100644 index 3c4db3ad4..000000000 --- a/discover/README.md +++ /dev/null @@ -1,2 +0,0 @@ -## 数据中心内部服务发现包 -基于ETCD实现 \ No newline at end of file diff --git a/discover/discover.go b/discover/discover.go deleted file mode 100644 index 5fff0d992..000000000 --- a/discover/discover.go +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "fmt" - "strconv" - "strings" - "sync" - "time" - - "github.com/goodrain/rainbond/util/watch" - - "github.com/goodrain/rainbond/discover/config" - - "golang.org/x/net/context" - - "github.com/coreos/etcd/mvcc/mvccpb" - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" -) - -//CallbackUpdate 每次返还变化 -type CallbackUpdate interface { - //TODO: - //weight自动发现更改实现暂时不 Ready - UpdateEndpoints(operation config.Operation, endpoints ...*config.Endpoint) - //when watch occurred error,will exec this method - Error(error) -} - -//Callback 每次返回全部节点 -type Callback interface { - UpdateEndpoints(endpoints ...*config.Endpoint) - //when watch occurred error,will exec this method - Error(error) -} - -//Discover 后端服务自动发现 -type Discover interface { - AddProject(name string, callback Callback) - AddUpdateProject(name string, callback CallbackUpdate) - Stop() -} - -//GetDiscover 获取服务发现管理器 -func GetDiscover(opt config.DiscoverConfig) (Discover, error) { - if opt.Ctx == nil { - opt.Ctx = context.Background() - } - ctx, cancel := context.WithCancel(opt.Ctx) - client, err := etcdutil.NewClient(ctx, opt.EtcdClientArgs) - if err != nil { - cancel() - return nil, err - } - watcher := watch.New(client, "") - etcdD := &etcdDiscover{ - projects: make(map[string]CallbackUpdate), - ctx: ctx, - cancel: cancel, - watcher: watcher, - prefix: "/traefik", - } - return etcdD, nil -} - -type etcdDiscover struct { - projects map[string]CallbackUpdate - lock sync.Mutex - ctx context.Context - cancel context.CancelFunc - watcher watch.Watch - prefix string -} -type defaultCallBackUpdate struct { - endpoints map[string]*config.Endpoint - callback Callback - lock sync.Mutex -} - -func (d *defaultCallBackUpdate) UpdateEndpoints(operation config.Operation, endpoints ...*config.Endpoint) { - d.lock.Lock() - defer d.lock.Unlock() - switch operation { - case config.ADD: - for _, e := range endpoints { - if old, ok := d.endpoints[e.Name]; !ok { - d.endpoints[e.Name] = e - } else { - if e.Mode == 0 { - old.URL = e.URL - } - if e.Mode == 1 { - old.Weight = e.Weight - } - if e.Mode == 2 { - old.URL = e.URL - old.Weight = e.Weight - } - } - } - case config.SYNC: - for _, e := range endpoints { - if old, ok := d.endpoints[e.Name]; !ok { - d.endpoints[e.Name] = e - } else { - if e.Mode == 0 { - old.URL = e.URL - } - if e.Mode == 1 { - old.Weight = e.Weight - } - if e.Mode == 2 { - old.URL = e.URL - old.Weight = e.Weight - } - } - } - case config.DELETE: - for _, e := range endpoints { - if e.Mode == 0 { - if old, ok := d.endpoints[e.Name]; ok { - old.URL = "" - } - } - if e.Mode == 1 { - if old, ok := d.endpoints[e.Name]; ok { - old.Weight = 0 - } - } - if e.Mode == 2 { - if _, ok := d.endpoints[e.Name]; ok { - delete(d.endpoints, e.Name) - } - } - } - case config.UPDATE: - for _, e := range endpoints { - if e.Mode == 0 { - if old, ok := d.endpoints[e.Name]; ok { - old.URL = e.URL - } - } - if e.Mode == 1 { - if old, ok := d.endpoints[e.Name]; ok { - old.Weight = e.Weight - } - } - if e.Mode == 2 { - if old, ok := d.endpoints[e.Name]; ok { - old.URL = e.URL - old.Weight = e.Weight - } - } - } - } - var re []*config.Endpoint - for _, v := range d.endpoints { - if v.URL != "" { - re = append(re, v) - } - } - d.callback.UpdateEndpoints(re...) -} - -func (d *defaultCallBackUpdate) Error(err error) { - d.callback.Error(err) -} - -func (e *etcdDiscover) AddProject(name string, callback Callback) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; !ok { - cal := &defaultCallBackUpdate{ - callback: callback, - endpoints: make(map[string]*config.Endpoint), - } - e.projects[name] = cal - go e.discover(name, cal) - } -} - -func (e *etcdDiscover) AddUpdateProject(name string, callback CallbackUpdate) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; !ok { - e.projects[name] = callback - go e.discover(name, callback) - } -} - -func (e *etcdDiscover) Stop() { - e.cancel() -} - -func (e *etcdDiscover) removeProject(name string) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; ok { - delete(e.projects, name) - } -} - -func (e *etcdDiscover) discover(name string, callback CallbackUpdate) { - watchChan, err := e.watcher.WatchList(e.ctx, fmt.Sprintf("%s/backends/%s/servers", e.prefix, name), "") - if err != nil { - callback.Error(err) - e.removeProject(name) - return - } - defer watchChan.Stop() - for event := range watchChan.ResultChan() { - if event.Source == nil { - continue - } - var end *config.Endpoint - if strings.HasSuffix(event.GetKey(), "/url") { //服务地址变化 - kstep := strings.Split(event.GetKey(), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-2] - serverURL := event.GetValueString() - end = &config.Endpoint{Name: serverName, URL: serverURL, Mode: 0} - } - } - if strings.HasSuffix(event.GetKey(), "/weight") { //获取服务地址 - kstep := strings.Split(event.GetKey(), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-2] - serverWeight := event.GetValueString() - weight, _ := strconv.Atoi(serverWeight) - end = &config.Endpoint{Name: serverName, Weight: weight, Mode: 1} - } - } - switch event.Type { - case watch.Added: - if end != nil { - callback.UpdateEndpoints(config.ADD, end) - } - case watch.Modified: - if end != nil { - callback.UpdateEndpoints(config.UPDATE, end) - } - case watch.Deleted: - if end != nil { - callback.UpdateEndpoints(config.DELETE, end) - } - case watch.Error: - callback.Error(event.Error) - logrus.Errorf("monitor discover get watch error: %s, remove this watch target first, and then sleep 10 sec, we will re-watch it", event.Error.Error()) - e.removeProject(name) - time.Sleep(10 * time.Second) - e.AddUpdateProject(name, callback) - return - } - } -} - -func makeEndpointForKvs(kvs []*mvccpb.KeyValue) (res []*config.Endpoint) { - var ends = make(map[string]*config.Endpoint) - for _, kv := range kvs { - if strings.HasSuffix(string(kv.Key), "/url") { //获取服务地址 - kstep := strings.Split(string(kv.Key), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-2] - serverURL := string(kv.Value) - if en, ok := ends[serverName]; ok { - en.URL = serverURL - } else { - ends[serverName] = &config.Endpoint{Name: serverName, URL: serverURL} - } - } - } - if strings.HasSuffix(string(kv.Key), "/weight") { //获取服务权重 - kstep := strings.Split(string(kv.Key), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-2] - serverWeight := string(kv.Value) - if en, ok := ends[serverName]; ok { - var err error - en.Weight, err = strconv.Atoi(serverWeight) - if err != nil { - logrus.Error("get server weight error.", err.Error()) - } - } else { - weight, err := strconv.Atoi(serverWeight) - if err != nil { - logrus.Error("get server weight error.", err.Error()) - } - ends[serverName] = &config.Endpoint{Name: serverName, Weight: weight} - } - } - } - } - for _, v := range ends { - res = append(res, v) - } - return -} diff --git a/discover/discover_test.go b/discover/discover_test.go deleted file mode 100644 index 690bff550..000000000 --- a/discover/discover_test.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "testing" - - "github.com/goodrain/rainbond/discover/config" - etcdutil "github.com/goodrain/rainbond/util/etcd" - - "github.com/sirupsen/logrus" -) - -func TestAddUpdateProject(t *testing.T) { - etcdClientArgs := &etcdutil.ClientArgs{Endpoints: []string{"127.0.0.1:2379"}} - discover, err := GetDiscover(config.DiscoverConfig{ - EtcdClientArgs: etcdClientArgs, - }) - if err != nil { - t.Fatal(err) - } - defer discover.Stop() - discover.AddUpdateProject("test", callbackupdate{}) -} -func TestAddProject(t *testing.T) { - etcdClientArgs := &etcdutil.ClientArgs{Endpoints: []string{"127.0.0.1:2379"}} - discover, err := GetDiscover(config.DiscoverConfig{ - EtcdClientArgs: etcdClientArgs, - }) - if err != nil { - t.Fatal(err) - } - defer discover.Stop() - discover.AddProject("test", callback{}) -} - -type callbackupdate struct { - callback -} - -func (c callbackupdate) UpdateEndpoints(operation config.Operation, endpoints ...*config.Endpoint) { - logrus.Info(operation, "////", endpoints) -} - -type callback struct { -} - -func (c callback) UpdateEndpoints(endpoints ...*config.Endpoint) { - for _, en := range endpoints { - logrus.Infof("%+v", en) - } -} - -//when watch occurred error,will exec this method -func (c callback) Error(err error) { - logrus.Error(err.Error()) -} diff --git a/discover/register.go b/discover/register.go deleted file mode 100644 index ab75e8bdf..000000000 --- a/discover/register.go +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "context" - "fmt" - "os" - "time" - - "github.com/coreos/etcd/clientv3" - client "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/util" - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" -) - -//KeepAlive 服务注册 -type KeepAlive struct { - cancel context.CancelFunc - EtcdClentArgs *etcdutil.ClientArgs - ServerName string - HostName string - Endpoint string - TTL int64 - LID clientv3.LeaseID - Done chan struct{} - etcdClient *client.Client -} - -//CreateKeepAlive create keepalive for server -func CreateKeepAlive(etcdClientArgs *etcdutil.ClientArgs, serverName string, hostName string, HostIP string, Port int) (*KeepAlive, error) { - if serverName == "" || Port == 0 { - return nil, fmt.Errorf("servername or serverport can not be empty") - } - if hostName == "" { - var err error - hostName, err = os.Hostname() - if err != nil { - return nil, err - } - } - if HostIP == "" { - ip, err := util.LocalIP() - if err != nil { - logrus.Errorf("get ip failed,details %s", err.Error()) - return nil, err - } - HostIP = ip.String() - } - return &KeepAlive{ - EtcdClentArgs: etcdClientArgs, - ServerName: serverName, - HostName: hostName, - Endpoint: fmt.Sprintf("%s:%d", HostIP, Port), - TTL: 10, - Done: make(chan struct{}), - }, nil -} - -//Start 开始 -func (k *KeepAlive) Start() error { - duration := time.Duration(k.TTL) * time.Second - timer := time.NewTimer(duration) - ctx, cancel := context.WithCancel(context.Background()) - etcdclient, err := etcdutil.NewClient(ctx, k.EtcdClentArgs) - if err != nil { - return err - } - k.etcdClient = etcdclient - k.cancel = cancel - go func() { - for { - select { - case <-k.Done: - return - case <-timer.C: - if k.LID > 0 { - func() { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) - defer cancel() - _, err := k.etcdClient.KeepAliveOnce(ctx, k.LID) - if err == nil { - timer.Reset(duration) - return - } - logrus.Warnf("%s lid[%x] keepAlive err: %s, try to reset...", k.Endpoint, k.LID, err.Error()) - k.LID = 0 - timer.Reset(duration) - }() - } else { - if err := k.reg(); err != nil { - logrus.Warnf("%s set lid err: %s, try to reset after %d seconds...", k.Endpoint, err.Error(), k.TTL) - } else { - logrus.Infof("%s set lid[%x] success", k.Endpoint, k.LID) - } - timer.Reset(duration) - } - } - } - }() - return nil -} - -func (k *KeepAlive) etcdKey() string { - return fmt.Sprintf("/traefik/backends/%s/servers/%s/url", k.ServerName, k.HostName) -} - -func (k *KeepAlive) reg() error { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - resp, err := k.etcdClient.Grant(ctx, k.TTL+3) - if err != nil { - return err - } - if _, err := k.etcdClient.Put(ctx, - k.etcdKey(), - k.Endpoint, - clientv3.WithLease(resp.ID)); err != nil { - return err - } - logrus.Infof("Register a %s server endpoint %s to cluster", k.ServerName, k.Endpoint) - k.LID = resp.ID - return nil -} - -//Stop 结束 -func (k *KeepAlive) Stop() error { - close(k.Done) - defer k.cancel() - - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - if _, err := k.etcdClient.Delete(ctx, k.etcdKey()); err != nil { - return err - } - logrus.Infof("cancel %s server endpoint %s from etcd", k.ServerName, k.Endpoint) - return nil -} diff --git a/event/manager.go b/event/manager.go index 8d47ff5cc..688c2afe2 100644 --- a/event/manager.go +++ b/event/manager.go @@ -27,12 +27,9 @@ import ( "sync/atomic" "time" - "github.com/goodrain/rainbond/discover" - "github.com/goodrain/rainbond/discover/config" eventclient "github.com/goodrain/rainbond/eventlog/entry/grpc/client" eventpb "github.com/goodrain/rainbond/eventlog/entry/grpc/pb" "github.com/goodrain/rainbond/util" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/pquerna/ffjson/ffjson" "github.com/sirupsen/logrus" "golang.org/x/net/context" @@ -50,7 +47,6 @@ type Manager interface { // EventConfig event config struct type EventConfig struct { EventLogServers []string - DiscoverArgs *etcdutil.ClientArgs } type manager struct { ctx context.Context @@ -62,7 +58,6 @@ type manager struct { lock sync.Mutex eventServer []string abnormalServer map[string]string - dis discover.Discover } var defaultManager Manager @@ -77,13 +72,6 @@ const ( //NewManager 创建manager func NewManager(conf EventConfig) error { - dis, err := discover.GetDiscover(config.DiscoverConfig{EtcdClientArgs: conf.DiscoverArgs}) - if err != nil { - logrus.Error("create discover manager error.", err.Error()) - if len(conf.EventLogServers) < 1 { - return err - } - } ctx, cancel := context.WithCancel(context.Background()) defaultManager = &manager{ ctx: ctx, @@ -92,7 +80,6 @@ func NewManager(conf EventConfig) error { loggers: make(map[string]Logger, 1024), handles: make(map[string]handle), eventServer: conf.EventLogServers, - dis: dis, abnormalServer: make(map[string]string), } return defaultManager.Start() @@ -129,61 +116,15 @@ func (m *manager) Start() error { m.handles[m.eventServer[i]] = h go h.HandleLog() } - if m.dis != nil { - m.dis.AddProject("event_log_event_grpc", m) - } go m.GC() return nil } -func (m *manager) UpdateEndpoints(endpoints ...*config.Endpoint) { - m.lock.Lock() - defer m.lock.Unlock() - if endpoints == nil || len(endpoints) < 1 { - return - } - //清空不可用节点信息,以服务发现为主 - m.abnormalServer = make(map[string]string) - //增加新节点 - var new = make(map[string]string) - for _, end := range endpoints { - new[end.URL] = end.URL - if _, ok := m.handles[end.URL]; !ok { - h := handle{ - cacheChan: make(chan []byte, buffersize), - stop: make(chan struct{}), - server: end.URL, - manager: m, - ctx: m.ctx, - } - m.handles[end.URL] = h - logrus.Infof("Add event server endpoint,%s", end.URL) - go h.HandleLog() - } - } - //删除旧节点 - for k := range m.handles { - if _, ok := new[k]; !ok { - delete(m.handles, k) - logrus.Infof("Remove event server endpoint,%s", k) - } - } - var eventServer []string - for k := range new { - eventServer = append(eventServer, k) - } - m.eventServer = eventServer - logrus.Debugf("update event handle core success,handle core count:%d, event server count:%d", len(m.handles), len(m.eventServer)) -} - func (m *manager) Error(err error) { } func (m *manager) Close() error { m.cancel() - if m.dis != nil { - m.dis.Stop() - } return nil } @@ -284,15 +225,8 @@ func (m *manager) getLBChan() chan []byte { } return nil } -func (m *manager) RemoveHandle(server string) { - m.lock.Lock() - defer m.lock.Unlock() - if _, ok := m.handles[server]; ok { - delete(m.handles, server) - } -} + func (m *handle) HandleLog() error { - defer m.manager.RemoveHandle(m.server) return util.Exec(m.ctx, func() error { ctx, cancel := context.WithCancel(m.ctx) defer cancel() @@ -432,7 +366,7 @@ func (l *loggerWriter) SetFormat(f map[string]interface{}) { l.fmt = f } func (l *loggerWriter) Write(b []byte) (n int, err error) { - if b != nil && len(b) > 0 { + if len(b) > 0 { if !strings.HasSuffix(string(b), "\n") { l.tmp = append(l.tmp, b...) return len(b), nil diff --git a/event/manager_test.go b/event/manager_test.go index 69857ebe0..9bd274262 100644 --- a/event/manager_test.go +++ b/event/manager_test.go @@ -21,14 +21,11 @@ package event import ( "testing" "time" - - etcdutil "github.com/goodrain/rainbond/util/etcd" ) func TestLogger(t *testing.T) { err := NewManager(EventConfig{ EventLogServers: []string{"192.168.195.1:6366"}, - DiscoverArgs: &etcdutil.ClientArgs{Endpoints: []string{"192.168.195.1:2379"}}, }) if err != nil { t.Fatal(err) diff --git a/eventlog/cluster/cluster.go b/eventlog/cluster/cluster.go index 2d71c7f10..20d53944e 100644 --- a/eventlog/cluster/cluster.go +++ b/eventlog/cluster/cluster.go @@ -19,142 +19,352 @@ package cluster import ( + "bytes" + "encoding/json" "fmt" - "github.com/coreos/etcd/clientv3" + "net/http" + "strconv" + "strings" + "sync" "time" "github.com/goodrain/rainbond/eventlog/cluster/connect" - "github.com/goodrain/rainbond/eventlog/cluster/discover" "github.com/goodrain/rainbond/eventlog/conf" "github.com/goodrain/rainbond/eventlog/db" + "github.com/goodrain/rainbond/util" + "github.com/goodrain/rainbond/util/leader" + "k8s.io/client-go/kubernetes" "golang.org/x/net/context" "github.com/goodrain/rainbond/eventlog/store" - "github.com/goodrain/rainbond/eventlog/cluster/distribution" - "github.com/prometheus/client_golang/prometheus" "github.com/sirupsen/logrus" ) //Cluster 集群模块对外服务 type Cluster interface { - //获取一个承接日志的节点 - GetSuitableInstance(serviceID string) *discover.Instance - //集群消息广播 - MessageRadio(...db.ClusterMessage) + //Select an instance that processes component logs + GetSuitableInstance(serviceID string) *connect.Instance Start() error Stop() - GetInstanceID() string - GetInstanceHost() string + GetCurrentInstance() *connect.Instance + GetLeaderInstance() *connect.Instance Scrape(ch chan<- prometheus.Metric, namespace, exporter string) error } //ClusterManager 控制器 type ClusterManager struct { - discover discover.Manager - zmqPub *connect.Pub - zmqSub *connect.Sub - distribution *distribution.Distribution - Conf conf.ClusterConf - log *logrus.Entry - storeManager store.Manager - cancel func() - context context.Context - etcdClient *clientv3.Client + currentInstance, leaderInstance *connect.Instance + zmqPub *connect.Pub + zmqSub *connect.Sub + Conf conf.ClusterConf + log *logrus.Entry + storeManager store.Manager + cancel func() + context context.Context + kubeClient *kubernetes.Clientset + leaderlock sync.Mutex } //NewCluster 创建集群控制器 -func NewCluster(etcdClient *clientv3.Client, conf conf.ClusterConf, log *logrus.Entry, storeManager store.Manager) Cluster { - ctx, cancel := context.WithCancel(context.Background()) - discover := discover.New(etcdClient, conf.Discover, log.WithField("module", "Discover")) - distribution := distribution.NewDistribution(etcdClient, conf.Discover, discover, log.WithField("Module", "Distribution")) - sub := connect.NewSub(conf.PubSub, log.WithField("module", "MessageSubManager"), storeManager, discover, distribution) - pub := connect.NewPub(conf.PubSub, log.WithField("module", "MessagePubServer"), storeManager, discover) - +func NewCluster(ctx context.Context, conf conf.ClusterConf, kubeClient *kubernetes.Clientset, log *logrus.Entry, storeManager store.Manager) Cluster { + ctx, cancel := context.WithCancel(ctx) + current := &connect.Instance{ + HostIP: conf.HostIP, + PubPort: conf.PubSub.PubBindPort, + WebsocketPort: conf.WebsocketPort, + DockerLogPort: conf.DockerLogPort, + Status: "health", + IsLeader: false, + ComponentLogChan: []string{}, + } + sub := connect.NewSub(conf.PubSub, log.WithField("module", "MessageSubManager"), storeManager, current) + pub := connect.NewPub(conf.PubSub, log.WithField("module", "MessagePubServer"), storeManager) return &ClusterManager{ - discover: discover, - zmqSub: sub, - zmqPub: pub, - distribution: distribution, - Conf: conf, - log: log, - storeManager: storeManager, - cancel: cancel, - context: ctx, - etcdClient: etcdClient, + kubeClient: kubeClient, + currentInstance: current, + zmqSub: sub, + zmqPub: pub, + Conf: conf, + log: log, + storeManager: storeManager, + cancel: cancel, + context: ctx, } } //Start 启动 func (s *ClusterManager) Start() error { - if err := s.discover.Run(); err != nil { - return err - } if err := s.zmqPub.Run(); err != nil { return err } if err := s.zmqSub.Run(); err != nil { return err } - if err := s.distribution.Start(); err != nil { - return err - } - go s.monitor() - return nil + go s.runServer() + return s.selectLeader() } //Stop 停止 func (s *ClusterManager) Stop() { s.cancel() - s.distribution.Stop() s.zmqPub.Stop() s.zmqSub.Stop() - s.discover.Stop() } -//GetSuitableInstance 获取适合的日志接收节点 -func (s *ClusterManager) GetSuitableInstance(serviceID string) *discover.Instance { - return s.distribution.GetSuitableInstance(serviceID) +//GetSuitableInstance The selection of log nodes is handled by the leader node. +func (s *ClusterManager) GetSuitableInstance(serviceID string) *connect.Instance { + if s.currentInstance.IsLeader { + ins := s.getSuitableInstance(serviceID) + logrus.Infof("select instance %s for component %s", ins.HostIP, serviceID) + return ins + } + if s.leaderInstance != nil { + reqURL := fmt.Sprintf("http://%s:%d/get_component_instance?component_id=%s", s.leaderInstance.HostIP, s.Conf.ClusterPort, serviceID) + res, err := http.Get(reqURL) + if err != nil { + logrus.Errorf("get component instance from leader failure %s", err.Error()) + } + if res != nil && res.StatusCode == 200 { + defer res.Body.Close() + var in connect.Instance + if err := json.NewDecoder(res.Body).Decode(&in); err == nil { + logrus.Infof("select instance %s from leader for component %s", in.HostIP, serviceID) + return &in + } else { + logrus.Errorf("select instance from leader for component failure %s", serviceID, err.Error()) + } + } else if res != nil { + logrus.Errorf("select instance from leader for component failure, status code is %d", res.StatusCode) + } + } + logrus.Warnf("not select instance for component %s", serviceID) + return nil } -//MessageRadio 消息广播 -func (s *ClusterManager) MessageRadio(mes ...db.ClusterMessage) { - for _, m := range mes { - s.zmqPub.RadioChan <- m +func (s *ClusterManager) getSuitableInstance(componentID string) *connect.Instance { + s.leaderlock.Lock() + defer s.leaderlock.Unlock() + var selectInstance *connect.Instance + var minInstance *connect.Instance + for _, instance := range s.zmqSub.GetIntances(true) { + if util.StringArrayContains(instance.ComponentLogChan, componentID) { + selectInstance = instance + } + if minInstance == nil || len(instance.ComponentLogChan) < len(minInstance.ComponentLogChan) { + minInstance = instance + } + } + if selectInstance == nil && minInstance != nil { + selectInstance = minInstance + } + if selectInstance != nil { + selectInstance.ComponentLogChan = append(selectInstance.ComponentLogChan, componentID) + return selectInstance + } + s.currentInstance.ComponentLogChan = append(s.currentInstance.ComponentLogChan, componentID) + return s.currentInstance +} + +func (s *ClusterManager) GetCurrentInstance() *connect.Instance { + return s.currentInstance +} + +func (s *ClusterManager) GetLeaderInstance() *connect.Instance { + return s.leaderInstance +} +func (s *ClusterManager) runServer() { + s.log.Fatal(http.ListenAndServe(fmt.Sprintf("0.0.0.0:%d", s.Conf.ClusterPort), s.ServeHTTP())) +} +func (s *ClusterManager) ServeHTTP() http.Handler { + mux := http.NewServeMux() + mux.HandleFunc("/regist", func(res http.ResponseWriter, req *http.Request) { + // only leader handle server request + if s.currentInstance.IsLeader { + if req.Body != nil { + defer req.Body.Close() + var in connect.Instance + if err := json.NewDecoder(req.Body).Decode(&in); err != nil { + s.log.Errorf("decode regist node message failure %s", err.Error()) + } else { + // keepalive ComponentLogChan + if ins := s.zmqSub.GetIntance(in.Key()); ins != nil { + in.ComponentLogChan = ins.ComponentLogChan + } + s.zmqSub.Sub(&in) + s.log.Infof("receive node %s regist message", in.HostIP) + s.pubNodeMeta() + } + } + res.WriteHeader(200) + } else { + res.WriteHeader(411) + } + }) + mux.HandleFunc("/get_component_instance", func(res http.ResponseWriter, req *http.Request) { + // only leader handle server request + if s.currentInstance.IsLeader { + componentID := req.FormValue("component_id") + if componentID == "" { + res.WriteHeader(412) + res.Write([]byte(`{"message":"component id can not be empty.","status":"failure"}`)) + return + } + instance := s.getSuitableInstance(componentID) + if instance != nil { + res.WriteHeader(200) + json.NewEncoder(res).Encode(instance) + } else { + res.WriteHeader(412) + } + } else { + res.WriteHeader(411) + } + }) + return mux +} + +func (s *ClusterManager) startAsLeader(ctx context.Context) { + //pub all instance meta info to all instance + defer func() { + s.leaderInstance = nil + s.currentInstance.IsLeader = false + s.log.Info("lose leader") + }() + s.currentInstance.IsLeader = true + s.leaderInstance = s.currentInstance + s.log.Info("running as leader") + timer := time.NewTimer(time.Second * 10) + defer timer.Stop() + for { + s.pubNodeMeta() + timer.Reset(time.Second * 10) + select { + case <-ctx.Done(): + return + case <-timer.C: + } } } -func (s *ClusterManager) GetInstanceID() string { - return s.discover.GetCurrentInstance().HostID -} -func (s *ClusterManager) GetInstanceHost() string { - return s.discover.GetCurrentInstance().HostIP.String() -} +func (s *ClusterManager) selectLeader() error { + // Leader election was requested. + if s.Conf.LeaderElectionNamespace == "" { + return fmt.Errorf("-leader-election-namespace must not be empty") + } + leaderElectionIdentity := fmt.Sprintf("%s:%d", s.Conf.HostIP, s.Conf.PubSub.PubBindPort) -func (s *ClusterManager) monitor() { - tiker := time.Tick(5 * time.Second) - for { - messages := s.storeManager.Monitor() - for _, m := range messages { - me := db.ClusterMessage{Mode: db.MonitorMessage, - Data: []byte(fmt.Sprintf("%s,%d,%d", s.GetInstanceID(), m.ServiceSize, m.LogSizePeerM))} - s.MessageRadio(me) - m.InstanceID = s.GetInstanceID() - s.distribution.Update(m) + // Name of config map with leader election lock + lockName := "rainbond-eventlog-leader" + + // Become leader again on stop leading. + leaderCh := make(chan struct{}, 1) + go func() { + for { + select { + case <-s.context.Done(): + return + case <-leaderCh: + func() { + logrus.Info("try run as leader") + ctx, cancel := context.WithCancel(s.context) + defer cancel() + leader.RunAsLeader(ctx, s.kubeClient, s.Conf.LeaderElectionNamespace, leaderElectionIdentity, lockName, s.startAsLeader, func() { + leaderCh <- struct{}{} + s.currentInstance.IsLeader = false + logrus.Info("restart leader") + }, func(leaderKey string) { + connectInfo := strings.Split(leaderKey, ":") + if len(connectInfo) == 2 { + port, _ := strconv.Atoi(connectInfo[1]) + leader := &connect.Instance{HostIP: connectInfo[0], PubPort: port, IsLeader: true} + s.leaderInstance = leader + if connectInfo[0] != s.currentInstance.HostIP { + logrus.Infof("node %s discover leader instance %s, will sub it", s.currentInstance.HostIP, leaderKey) + s.zmqSub.Sub(leader) + s.registNode(ctx, leader) + } + } + }) + }() + } } - select { - case <-s.context.Done(): - return - case <-tiker: + }() + leaderCh <- struct{}{} + return nil +} +func (s *ClusterManager) pubNodeMeta() { + s.zmqSub.UpdateIntances() + intences := s.zmqSub.GetIntances(true) + intences = append(intences, s.currentInstance) + message := connect.InstanceMessage{ + Instances: intences, + LeaderHostIP: s.currentInstance.HostIP, + } + data, _ := json.Marshal(message) + s.zmqPub.RadioChan <- db.ClusterMessage{Mode: db.ClusterMetaMessage, Data: data} +} + +func (s *ClusterManager) registNode(ctx context.Context, leader *connect.Instance) { + ticker := time.NewTimer(time.Second * 5) + defer ticker.Stop() + for { + // leader maybe changed. + if leader.HostIP != s.leaderInstance.HostIP { + return + } + reqURL := fmt.Sprintf("http://%s:%d/regist", s.leaderInstance.HostIP, s.Conf.ClusterPort) + data, _ := json.Marshal(s.currentInstance) + res, err := http.Post(reqURL, "application/json", bytes.NewBuffer(data)) + if err != nil { + s.log.Errorf("regist node to leader %s failure %v", s.leaderInstance.HostIP, err) + } else if res.StatusCode != 200 { + s.log.Errorf("regist node to leader %s failure: response code is %d", s.leaderInstance.HostIP, res.StatusCode) + } else { + s.log.Infof("regist node %s to leader %s success", s.currentInstance.HostIP, s.leaderInstance.HostIP) + return + } + ticker.Reset(time.Second * 5) + select { + case <-ctx.Done(): + return + case <-ticker.C: } } } //Scrape prometheus monitor metrics func (s *ClusterManager) Scrape(ch chan<- prometheus.Metric, namespace, exporter string) error { - s.discover.Scrape(ch, namespace, exporter) + subDesc := prometheus.NewDesc( + prometheus.BuildFQName(namespace, exporter, "sub_instance_count"), + "Number of subscribed nodes", + []string{"instance_ip"}, nil, + ) + insDesc := prometheus.NewDesc( + prometheus.BuildFQName(namespace, exporter, "instance_count"), + "Number of nodes", + []string{"instance_ip"}, nil, + ) + inshealthDesc := prometheus.NewDesc( + prometheus.BuildFQName(namespace, exporter, "instance_health_count"), + "Number of health nodes", + []string{"instance_ip"}, nil, + ) + leaderInstance := prometheus.NewDesc(prometheus.BuildFQName(namespace, exporter, "leader"), + "leader instance", + []string{"leader_ip"}, nil) + + ch <- prometheus.MustNewConstMetric(subDesc, prometheus.GaugeValue, float64(s.zmqSub.GetSubNumber()), s.currentInstance.HostIP) + if s.leaderInstance != nil { + ch <- prometheus.MustNewConstMetric(leaderInstance, prometheus.GaugeValue, float64(1), s.leaderInstance.HostIP) + } + if s.currentInstance.IsLeader { + ch <- prometheus.MustNewConstMetric(insDesc, prometheus.GaugeValue, float64(len(s.zmqSub.GetIntances(false))+1), s.currentInstance.HostIP) + ch <- prometheus.MustNewConstMetric(inshealthDesc, prometheus.GaugeValue, float64(len(s.zmqSub.GetIntances(true))+1), s.leaderInstance.HostIP) + } + //TODO: Improve more monitoring data. return nil } diff --git a/eventlog/cluster/connect/pub.go b/eventlog/cluster/connect/pub.go index 80914f0f2..57e4c9fc9 100644 --- a/eventlog/cluster/connect/pub.go +++ b/eventlog/cluster/connect/pub.go @@ -21,16 +21,14 @@ package connect import ( "errors" "fmt" + "time" + "github.com/goodrain/rainbond/eventlog/conf" "github.com/goodrain/rainbond/eventlog/db" "github.com/goodrain/rainbond/eventlog/store" "golang.org/x/net/context" - "sync" - - "github.com/goodrain/rainbond/eventlog/cluster/discover" - "github.com/pebbe/zmq4" "github.com/sirupsen/logrus" ) @@ -41,19 +39,16 @@ type Pub struct { cancel func() context context.Context pubServer *zmq4.Socket - pubLock sync.Mutex storemanager store.Manager messageChan chan [][]byte listenErr chan error Closed chan struct{} stopPubMessage bool - discover discover.Manager - instance *discover.Instance RadioChan chan db.ClusterMessage } //NewPub 创建zmq pub服务端 -func NewPub(conf conf.PubSubConf, log *logrus.Entry, storeManager store.Manager, discover discover.Manager) *Pub { +func NewPub(conf conf.PubSubConf, log *logrus.Entry, storeManager store.Manager) *Pub { ctx, cancel := context.WithCancel(context.Background()) return &Pub{ conf: conf, @@ -63,7 +58,6 @@ func NewPub(conf conf.PubSubConf, log *logrus.Entry, storeManager store.Manager, storemanager: storeManager, listenErr: make(chan error), Closed: make(chan struct{}), - discover: discover, RadioChan: make(chan db.ClusterMessage, 5), } } @@ -85,23 +79,24 @@ func (s *Pub) Run() error { return errors.New("pub log message server can not get store message chan ") } go s.handleMessage() - s.registInstance() return nil } //Stop 停止 func (s *Pub) Stop() { - if s.instance != nil { - s.discover.CancellationInstance(s.instance) - } s.cancel() <-s.Closed s.log.Info("Stop pub message server") } func (s *Pub) handleMessage() { + ticker := time.NewTicker(time.Second * 3) + defer ticker.Stop() for !s.stopPubMessage { select { + case <-ticker.C: + s.pubServer.SendBytes([]byte(db.HealthMessage), zmq4.SNDMORE) + s.pubServer.SendBytes([]byte("1"), 0) case msg := <-s.messageChan: //s.log.Debugf("Message Pub Server PUB a message %s", string(msg.Content)) s.pubServer.SendBytes(msg[0], zmq4.SNDMORE) @@ -119,7 +114,3 @@ func (s *Pub) handleMessage() { } } } - -func (s *Pub) registInstance() { - s.instance = s.discover.RegisteredInstance(s.conf.PubBindIP, s.conf.PubBindPort, &s.stopPubMessage) -} diff --git a/eventlog/cluster/connect/sub.go b/eventlog/cluster/connect/sub.go index c3aaa0707..4aa974639 100644 --- a/eventlog/cluster/connect/sub.go +++ b/eventlog/cluster/connect/sub.go @@ -19,63 +19,81 @@ package connect import ( + "encoding/json" "errors" "fmt" - "strconv" - "strings" "sync" "time" - dis "github.com/goodrain/rainbond/eventlog/cluster/discover" - "github.com/goodrain/rainbond/eventlog/cluster/distribution" "github.com/goodrain/rainbond/eventlog/conf" "github.com/goodrain/rainbond/eventlog/db" "github.com/goodrain/rainbond/eventlog/store" + "github.com/goodrain/rainbond/util" "github.com/pebbe/zmq4" "github.com/sirupsen/logrus" "golang.org/x/net/context" ) +type Instance struct { + HostIP string `json:"hostIP"` + PubPort int `json:"pubPort"` + //Port that receives container logs. + DockerLogPort int `json:"dockerLogPort"` + WebsocketPort int `json:"websocketPort` + Status string `json:"status"` + StatusUpdate time.Time `json:"statusUpdate"` + IsLeader bool `json:"isLeader"` + ComponentLogChan []string `json:"componentLogChan"` +} + +func (i *Instance) Key() string { + return fmt.Sprintf("%s:%d", i.HostIP, i.PubPort) +} + +type InstanceMessage struct { + Instances []*Instance `json:"instances"` + LeaderHostIP string `json:"leaderHostIP"` +} + // Sub - type Sub struct { - conf conf.PubSubConf - log *logrus.Entry - cancel func() - context context.Context - storemanager store.Manager - subMessageChan chan [][]byte - listenErr chan error - discover dis.Manager - instanceMap map[string]*dis.Instance - subClient map[string]*SubClient - mapLock sync.Mutex - subLock sync.Mutex - distribution *distribution.Distribution + conf conf.PubSubConf + log *logrus.Entry + cancel func() + context context.Context + storemanager store.Manager + subMessageChan chan [][]byte + listenErr chan error + instanceMap map[string]*Instance + instanceMessageChan chan *InstanceMessage + subClient map[string]*SubClient + mapLock sync.Mutex + subLock sync.Mutex + current *Instance } // SubClient - type SubClient struct { context *zmq4.Context socket *zmq4.Socket - lock sync.Mutex quit chan interface{} } //NewSub 创建zmq sub客户端 -func NewSub(conf conf.PubSubConf, log *logrus.Entry, storeManager store.Manager, discover dis.Manager, distribution *distribution.Distribution) *Sub { +func NewSub(conf conf.PubSubConf, log *logrus.Entry, storeManager store.Manager, current *Instance) *Sub { ctx, cancel := context.WithCancel(context.Background()) return &Sub{ - conf: conf, - log: log, - cancel: cancel, - context: ctx, - storemanager: storeManager, - listenErr: make(chan error), - discover: discover, - instanceMap: make(map[string]*dis.Instance), - subClient: make(map[string]*SubClient), - subMessageChan: storeManager.SubMessageChan(), - distribution: distribution, + conf: conf, + log: log, + cancel: cancel, + context: ctx, + storemanager: storeManager, + listenErr: make(chan error), + instanceMessageChan: make(chan *InstanceMessage, 8), + instanceMap: make(map[string]*Instance), + subClient: make(map[string]*SubClient), + subMessageChan: storeManager.SubMessageChan(), + current: current, } } @@ -98,21 +116,65 @@ func (s *Sub) Stop() { s.log.Info("Message Sub manager stop") } +func (s *Sub) GetIntance(key string) *Instance { + return s.instanceMap[key] +} + +func (s *Sub) Sub(instance *Instance) { + s.subLock.Lock() + defer s.subLock.Unlock() + if instance.Key() == s.current.Key() { + return + } + key := fmt.Sprintf("%s:%d", instance.HostIP, instance.PubPort) + if _, ok := s.instanceMap[key]; !ok { + go s.listen(instance) + instance.Status = "unhealth" + s.instanceMap[key] = instance + } +} +func (s *Sub) UpdateIntances() { + s.mapLock.Lock() + defer s.mapLock.Unlock() + for _, v := range s.instanceMap { + if v.StatusUpdate.Add(time.Second * 10).Before(time.Now()) { + s.log.Infof("instance %s maybe not health", v.HostIP) + v.Status = "unhealth" + v.StatusUpdate = time.Now() + } + } +} +func (s *Sub) GetIntances(health bool) (re []*Instance) { + s.mapLock.Lock() + defer s.mapLock.Unlock() + for _, v := range s.instanceMap { + if v.Status == "health" || !health { + re = append(re, v) + } + } + return +} +func (s *Sub) GetSubNumber() int { + s.subLock.Lock() + defer s.subLock.Unlock() + return len(s.subClient) +} func (s *Sub) checkHealth() { - tike := time.Tick(time.Minute * 2) + tike := time.NewTicker(time.Minute * 2) + defer tike.Stop() for { select { case <-s.context.Done(): return - case <-tike: + case <-tike.C: } var unHealth []string s.mapLock.Lock() s.subLock.Lock() for k, ins := range s.instanceMap { if _, ok := s.subClient[k]; !ok { - unHealth = append(unHealth, ins.HostName) go s.listen(ins) + unHealth = append(unHealth, ins.HostIP) } } s.subLock.Unlock() @@ -128,23 +190,32 @@ func (s *Sub) checkHealth() { func (s *Sub) instanceListen() { for { select { - case instance := <-s.discover.MonitorAddInstances(): - key := fmt.Sprintf("%s:%d", instance.HostIP, instance.PubPort) - s.mapLock.Lock() - if _, ok := s.instanceMap[key]; !ok { - go s.listen(instance) + case instances := <-s.instanceMessageChan: + if instances != nil { + func() { + s.mapLock.Lock() + defer s.mapLock.Unlock() + var newKeys []string + for _, instance := range instances.Instances { + if instance.Key() == s.current.Key() { + continue + } + key := fmt.Sprintf("%s:%d", instance.HostIP, instance.PubPort) + if _, ok := s.instanceMap[key]; !ok { + go s.listen(instance) + } + s.instanceMap[key] = instance + newKeys = append(newKeys, key) + } + for k, instance := range s.instanceMap { + if !util.StringArrayContains(newKeys, k) { + s.log.Infof("sub manager release the subscription to the %s node", instance.HostIP) + delete(s.instanceMap, k) + s.unlisten(instance) + } + } + }() } - s.instanceMap[key] = instance - s.mapLock.Unlock() - case instance := <-s.discover.MonitorDelInstances(): - s.log.Debugf("Sub manager receive a del instance %s", instance.HostID) - key := fmt.Sprintf("%s:%d", instance.HostIP, instance.PubPort) - s.mapLock.Lock() - if _, ok := s.instanceMap[key]; ok { - delete(s.instanceMap, key) - } - s.unlisten(instance) - s.mapLock.Unlock() case <-s.context.Done(): s.mapLock.Lock() s.instanceMap = nil @@ -155,7 +226,10 @@ func (s *Sub) instanceListen() { } } -func (s *Sub) listen(ins *dis.Instance) { +func (s *Sub) listen(ins *Instance) { + if ins.Key() == s.current.Key() { + return + } chQuit := make(chan interface{}) chErr := make(chan error, 2) newInstanceListen := func(sock *zmq4.Socket, instance string) { @@ -166,19 +240,21 @@ func (s *Sub) listen(ins *dis.Instance) { return err } if len(msgs) == 2 { - if string(msgs[0]) == string(db.EventMessage) || string(msgs[0]) == string(db.ServiceMonitorMessage) || string(msgs[0]) == string(db.ServiceNewMonitorMessage) { + switch string(msgs[0]) { + case string(db.EventMessage), string(db.ServiceMonitorMessage), string(db.ServiceNewMonitorMessage): s.subMessageChan <- msgs - } else if string(msgs[0]) == string(db.MonitorMessage) { - //s.log.Debug("Receive a monitor message ", string(msgs[1])) - data := strings.Split(string(msgs[1]), ",") - if len(data) == 3 { - serviceSize, _ := strconv.Atoi(data[1]) - logSize, _ := strconv.Atoi(data[2]) - s.distribution.Update(db.MonitorData{InstanceID: data[0], ServiceSize: serviceSize, LogSizePeerM: int64(logSize)}) + case string(db.ClusterMetaMessage): + var instances InstanceMessage + if err := json.Unmarshal(msgs[1], &instances); err != nil { + s.log.Errorf("unmarshal cluster monitor message failure %s, message: %s", err.Error(), string(msgs[1])) } else { - s.log.Error("cluster sub receive a message protocol error.") + s.instanceMessageChan <- &instances } - } else { + case string(db.HealthMessage): + s.log.Debugf("receive health message from instance %s", ins.HostIP) + ins.Status = "health" + ins.StatusUpdate = time.Now() + default: s.log.Error("cluster sub receive a message protocol error.") } } else { @@ -206,30 +282,30 @@ func (s *Sub) listen(ins *dis.Instance) { } subscriber, err := context.NewSocket(zmq4.SUB) if err != nil { - s.log.Errorf("create sub client to instance %s error %s", ins.HostName, err.Error()) + s.log.Errorf("create sub client to instance %s error %s", ins.HostIP, err.Error()) time.Sleep(time.Second * 5) continue } err = subscriber.Connect(fmt.Sprintf("tcp://%s:%d", ins.HostIP, ins.PubPort)) if err != nil { - s.log.Errorf("sub client connect to instance %s host %s port %d error", ins.HostName, ins.HostIP, ins.PubPort) + s.log.Errorf("sub client connect to instance host %s port %d error", ins.HostIP, ins.PubPort) time.Sleep(time.Second * 5) continue } subscriber.SetSubscribe("") - go newInstanceListen(subscriber, ins.HostName) + go newInstanceListen(subscriber, ins.HostIP) key := fmt.Sprintf("%s:%d", ins.HostIP, ins.PubPort) s.subLock.Lock() client := &SubClient{socket: subscriber, context: context, quit: chQuit} s.subClient[key] = client s.subLock.Unlock() - s.log.Infof("message client sub instance %s ", ins.HostName) + s.log.Infof("message client sub instance %s ", ins.HostIP) break } } -func (s *Sub) unlisten(ins *dis.Instance) { +func (s *Sub) unlisten(ins *Instance) { s.subLock.Lock() defer s.subLock.Unlock() key := fmt.Sprintf("%s:%d", ins.HostIP, ins.PubPort) diff --git a/eventlog/cluster/discover/etcdManager.go b/eventlog/cluster/discover/etcdManager.go deleted file mode 100644 index d054daba9..000000000 --- a/eventlog/cluster/discover/etcdManager.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "fmt" - "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/eventlog/conf" - "github.com/sirupsen/logrus" - "time" - - "golang.org/x/net/context" -) - -//SaveDockerLogInInstance 存储service和node 的对应关系 -func SaveDockerLogInInstance(etcdClient *clientv3.Client, conf conf.DiscoverConf, serviceID, instanceID string) error { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - _, err := etcdClient.Put(ctx, conf.HomePath+"/dockerloginstacne/"+serviceID, instanceID) - if err != nil { - logrus.Errorf("Failed to put dockerlog instance %v", err) - return err - } - return nil -} - -//GetDokerLogInInstance 获取应用日志接收节点 -func GetDokerLogInInstance(etcdClient *clientv3.Client, conf conf.DiscoverConf, serviceID string) (string, error) { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - res, err := etcdClient.Get(ctx, conf.HomePath+"/dockerloginstacne/"+serviceID) - if err != nil { - return "", err - } - if len(res.Kvs) == 0 { - return "", fmt.Errorf("get docker log instance failed") - } - return string(res.Kvs[0].Value), nil -} diff --git a/eventlog/cluster/discover/instance.go b/eventlog/cluster/discover/instance.go deleted file mode 100644 index 5cf35162c..000000000 --- a/eventlog/cluster/discover/instance.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "net" - "time" -) - -//Instance 实例 -type Instance struct { - HostID string - HostIP net.IP - PubPort int - DockerLogPort int - WebPort int - HostName string - Status string - TagNumber int //当TagNumber大于集群总数的一半,则下线此节点 - LastHealthCheck time.Time -} diff --git a/eventlog/cluster/discover/manager.go b/eventlog/cluster/discover/manager.go deleted file mode 100644 index 290b9b0b1..000000000 --- a/eventlog/cluster/discover/manager.go +++ /dev/null @@ -1,414 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "encoding/json" - "fmt" - "net" - "os" - "strings" - "time" - - "github.com/coreos/etcd/clientv3" - "github.com/coreos/etcd/mvcc/mvccpb" - "github.com/goodrain/rainbond/eventlog/conf" - "github.com/goodrain/rainbond/eventlog/util" - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/prometheus/client_golang/prometheus" - "github.com/sirupsen/logrus" - "golang.org/x/net/context" -) - -//Manager 节点动态发现管理器 -type Manager interface { - RegisteredInstance(host string, port int, stopRegister *bool) *Instance - CancellationInstance(instance *Instance) - MonitorAddInstances() chan *Instance - MonitorDelInstances() chan *Instance - MonitorUpdateInstances() chan *Instance - GetInstance(string) *Instance - InstanceCheckHealth(string) string - Run() error - GetCurrentInstance() Instance - Stop() - Scrape(ch chan<- prometheus.Metric, namespace, exporter string) error -} - -//EtcdDiscoverManager 基于ETCD自动发现 -type EtcdDiscoverManager struct { - cancel func() - context context.Context - addChan chan *Instance - delChan chan *Instance - updateChan chan *Instance - log *logrus.Entry - conf conf.DiscoverConf - etcdclientv3 *clientv3.Client - selfInstance *Instance - othersInstance []*Instance - stopDiscover bool -} - -//New 创建 -func New(etcdClient *clientv3.Client, conf conf.DiscoverConf, log *logrus.Entry) Manager { - ctx, cancel := context.WithCancel(context.Background()) - return &EtcdDiscoverManager{ - conf: conf, - cancel: cancel, - context: ctx, - log: log, - addChan: make(chan *Instance, 2), - delChan: make(chan *Instance, 2), - updateChan: make(chan *Instance, 2), - othersInstance: make([]*Instance, 0), - etcdclientv3: etcdClient, - } -} - -//GetCurrentInstance 获取当前节点 -func (d *EtcdDiscoverManager) GetCurrentInstance() Instance { - return *d.selfInstance -} - -//RegisteredInstance 注册实例 -func (d *EtcdDiscoverManager) RegisteredInstance(host string, port int, stopRegister *bool) *Instance { - instance := &Instance{} - for !*stopRegister { - if host == "0.0.0.0" || host == "127.0.0.1" || host == "localhost" { - if d.conf.InstanceIP != "" { - ip := net.ParseIP(d.conf.InstanceIP) - if ip != nil { - instance.HostIP = ip - } - } - } else { - ip := net.ParseIP(host) - if ip != nil { - instance.HostIP = ip - } - } - if instance.HostIP == nil { - ip, err := util.ExternalIP() - if err != nil { - d.log.Error("Can not get host ip for the instance.") - time.Sleep(time.Second * 10) - continue - } else { - instance.HostIP = ip - } - } - instance.PubPort = port - instance.DockerLogPort = d.conf.DockerLogPort - instance.WebPort = d.conf.WebPort - instance.HostID = d.conf.NodeID - instance.HostName, _ = os.Hostname() - instance.Status = "create" - data, err := json.Marshal(instance) - if err != nil { - d.log.Error("Create register instance data error.", err.Error()) - time.Sleep(time.Second * 10) - continue - } - ctx, cancel := context.WithCancel(d.context) - _, err = d.etcdclientv3.Put(ctx, fmt.Sprintf("%s/instance/%s:%d", d.conf.HomePath, instance.HostIP, instance.PubPort), string(data)) - cancel() - if err != nil { - d.log.Error("Register instance data to etcd error.", err.Error()) - time.Sleep(time.Second * 10) - continue - } - - d.selfInstance = instance - go d.discover() - d.log.Infof("Register instance in cluster success. HostID:%s HostIP:%s PubPort:%d", instance.HostID, instance.HostIP, instance.PubPort) - return instance - } - return nil -} - -//MonitorAddInstances 实例通知 -func (d *EtcdDiscoverManager) MonitorAddInstances() chan *Instance { - return d.addChan -} - -//MonitorDelInstances 实例通知 -func (d *EtcdDiscoverManager) MonitorDelInstances() chan *Instance { - return d.delChan -} - -//MonitorUpdateInstances 实例通知 -func (d *EtcdDiscoverManager) MonitorUpdateInstances() chan *Instance { - return d.updateChan -} - -//Run 启动 -func (d *EtcdDiscoverManager) Run() error { - d.log.Info("Discover manager start ") - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: d.conf.EtcdAddr, - CaFile: d.conf.EtcdCaFile, - CertFile: d.conf.EtcdCertFile, - KeyFile: d.conf.EtcdKeyFile, - } - var err error - d.etcdclientv3, err = etcdutil.NewClient(d.context, etcdClientArgs) - if err != nil { - d.log.Error("Create etcd v3 client error.", err.Error()) - return err - } - return nil -} - -//Discover 发现 -func (d *EtcdDiscoverManager) discover() { - tike := time.NewTicker(time.Second * 5) - defer tike.Stop() - for { - ctx, cancel := context.WithCancel(d.context) - res, err := d.etcdclientv3.Get(ctx, d.conf.HomePath+"/instance/", clientv3.WithPrefix()) - cancel() - if err != nil { - d.log.Error("Get instance info from etcd error.", err.Error()) - } else { - for _, kv := range res.Kvs { - node := &Node{ - Key: string(kv.Key), - Value: string(kv.Value), - } - d.add(node) - } - break - } - select { - case <-tike.C: - case <-d.context.Done(): - return - } - } - ctx, cancel := context.WithCancel(d.context) - defer cancel() - watcher := d.etcdclientv3.Watch(ctx, d.conf.HomePath+"/instance/", clientv3.WithPrefix()) - - for !d.stopDiscover { - res, ok := <-watcher - if !ok { - break - } - - for _, event := range res.Events { - node := &Node{ - Key: string(event.Kv.Key), - Value: string(event.Kv.Value), - } - switch event.Type { - case mvccpb.PUT: - d.add(node) - case mvccpb.DELETE: - //忽略自己 - if strings.HasSuffix(node.Key, fmt.Sprintf("/%s:%d", d.selfInstance.HostIP, d.selfInstance.PubPort)) { - continue - } - keys := strings.Split(node.Key, "/") - hostPort := keys[len(keys)-1] - d.log.Infof("Delete an instance.%s", hostPort) - var removeIndex int - var have bool - for i, ins := range d.othersInstance { - if fmt.Sprintf("%s:%d", ins.HostIP, ins.PubPort) == hostPort { - removeIndex = i - have = true - break - } - } - if have { - instance := d.othersInstance[removeIndex] - d.othersInstance = DeleteSlice(d.othersInstance, removeIndex) - d.MonitorDelInstances() <- instance - d.log.Infof("A instance offline %s", instance.HostName) - } - } - } - - } - d.log.Debug("discover manager discover core stop") -} - -type Node struct { - Key string - Value string -} - -func (d *EtcdDiscoverManager) add(node *Node) { - - //忽略自己 - if strings.HasSuffix(node.Key, fmt.Sprintf("/%s:%d", d.selfInstance.HostIP, d.selfInstance.PubPort)) { - return - } - var instance Instance - if err := json.Unmarshal([]byte(node.Value), &instance); err != nil { - d.log.Error("Unmarshal instance data that from etcd error.", err.Error()) - } else { - if strings.HasSuffix(node.Key, fmt.Sprintf("/%s:%d", d.selfInstance.HostIP, d.selfInstance.PubPort)) { - d.selfInstance = &instance - } - - isExist := false - for _, i := range d.othersInstance { - if i.HostID == instance.HostID { - *i = instance - d.log.Debug("update the instance " + i.HostID) - isExist = true - break - } - } - - if !isExist { - d.log.Infof("Find an instance.IP:%s, Port:%d, NodeID:%s HostID: %s", instance.HostIP.String(), instance.PubPort, instance.HostName, instance.HostID) - d.MonitorAddInstances() <- &instance - d.othersInstance = append(d.othersInstance, &instance) - } - } - -} - -func (d *EtcdDiscoverManager) update(node *Node) { - - var instance Instance - if err := json.Unmarshal([]byte(node.Value), &instance); err != nil { - d.log.Error("Unmarshal instance data that from etcd error.", err.Error()) - } else { - if strings.HasSuffix(node.Key, fmt.Sprintf("/%s:%d", d.selfInstance.HostIP, d.selfInstance.PubPort)) { - d.selfInstance = &instance - } - for _, i := range d.othersInstance { - if i.HostID == instance.HostID { - *i = instance - d.log.Debug("update the instance " + i.HostID) - } - } - } - -} - -//DeleteSlice 从数组中删除某元素 -func DeleteSlice(source []*Instance, index int) []*Instance { - if len(source) == 1 { - return make([]*Instance, 0) - } - if index == 0 { - return source[1:] - } - if index == len(source)-1 { - return source[:len(source)-2] - } - return append(source[0:index-1], source[index+1:]...) -} - -//Stop 停止 -func (d *EtcdDiscoverManager) Stop() { - d.stopDiscover = true - d.cancel() - d.log.Info("Stop the discover manager.") -} - -//CancellationInstance 注销实例 -func (d *EtcdDiscoverManager) CancellationInstance(instance *Instance) { - ctx, cancel := context.WithTimeout(d.context, time.Second*5) - defer cancel() - _, err := d.etcdclientv3.Delete(ctx, fmt.Sprintf("%s/instance/%s:%d", d.conf.HomePath, instance.HostIP, instance.PubPort)) - if err != nil { - d.log.Error("Cancellation Instance from etcd error.", err.Error()) - } else { - d.log.Info("Cancellation Instance from etcd") - } -} - -//UpdateInstance 更新实例 -func (d *EtcdDiscoverManager) UpdateInstance(instance *Instance) { - instance.Status = "update" - data, err := json.Marshal(instance) - if err != nil { - d.log.Error("Create update instance data error.", err.Error()) - return - } - ctx, cancel := context.WithTimeout(d.context, time.Second*5) - defer cancel() - _, err = d.etcdclientv3.Put(ctx, fmt.Sprintf("%s/instance/%s:%d", d.conf.HomePath, instance.HostIP, instance.PubPort), string(data)) - if err != nil { - d.log.Error(" Update Instance from etcd error.", err.Error()) - } -} - -//InstanceCheckHealth 将由distribution调用,当发现节点不正常时 -//此处检查,如果节点已经下线,返回 delete -//如果节点未下线标记为异常,返回 abnormal -//如果节点被集群判断为故障,返回 delete -func (d *EtcdDiscoverManager) InstanceCheckHealth(instanceID string) string { - d.log.Info("Start check instance health.") - if d.selfInstance.HostID == instanceID { - d.log.Error("The current node condition monitoring.") - return "abnormal" - } - for _, i := range d.othersInstance { - if i.HostID == instanceID { - d.log.Errorf("Instance (%s) is abnormal.", instanceID) - i.Status = "abnormal" - i.TagNumber++ - if i.TagNumber > ((len(d.othersInstance) + 1) / 2) { //大于一半的节点标记 - d.log.Warn("Instance (%s) is abnormal. tag number more than half of all instance number. will cancellation.", instanceID) - d.CancellationInstance(i) - return "delete" - } - d.UpdateInstance(i) - return "abnormal" - } - } - return "delete" -} - -//GetInstance 获取实例 -func (d *EtcdDiscoverManager) GetInstance(id string) *Instance { - if id == d.selfInstance.HostID { - return d.selfInstance - } - for _, i := range d.othersInstance { - if i.HostID == id { - return i - } - } - return nil -} - -//Scrape prometheus monitor metrics -func (d *EtcdDiscoverManager) Scrape(ch chan<- prometheus.Metric, namespace, exporter string) error { - instanceDesc := prometheus.NewDesc( - prometheus.BuildFQName(namespace, exporter, "instance_up"), - "the instance in cluster status.", - []string{"from", "instance", "status"}, nil, - ) - for _, i := range d.othersInstance { - if i.Status == "delete" || i.Status == "abnormal" { - ch <- prometheus.MustNewConstMetric(instanceDesc, prometheus.GaugeValue, 0, d.selfInstance.HostIP.String(), i.HostIP.String(), i.Status) - } else { - ch <- prometheus.MustNewConstMetric(instanceDesc, prometheus.GaugeValue, 1, d.selfInstance.HostIP.String(), i.HostIP.String(), i.Status) - } - } - return nil -} diff --git a/eventlog/cluster/distribution/distribution.go b/eventlog/cluster/distribution/distribution.go deleted file mode 100644 index c17955679..000000000 --- a/eventlog/cluster/distribution/distribution.go +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package distribution - -import ( - "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/eventlog/cluster/discover" - "github.com/goodrain/rainbond/eventlog/conf" - "github.com/goodrain/rainbond/eventlog/db" - "sync" - "time" - - "golang.org/x/net/context" - - "sort" - - "github.com/sirupsen/logrus" -) - -//Distribution 数据分区 -type Distribution struct { - monitorDatas map[string]*db.MonitorData - updateTime map[string]time.Time - abnormalNode map[string]int - lock sync.Mutex - cancel func() - context context.Context - discover discover.Manager - log *logrus.Entry - etcdClient *clientv3.Client - conf conf.DiscoverConf -} - -func NewDistribution(etcdClient *clientv3.Client, conf conf.DiscoverConf, dis discover.Manager, log *logrus.Entry) *Distribution { - ctx, cancel := context.WithCancel(context.Background()) - d := &Distribution{ - cancel: cancel, - context: ctx, - discover: dis, - monitorDatas: make(map[string]*db.MonitorData), - updateTime: make(map[string]time.Time), - abnormalNode: make(map[string]int), - log: log, - etcdClient: etcdClient, - conf: conf, - } - return d -} - -//Start 开始健康监测 -func (d *Distribution) Start() error { - go d.checkHealth() - return nil -} - -//Stop 停止 -func (d *Distribution) Stop() { - d.cancel() -} - -//Update 更新监控数据 -func (d *Distribution) Update(m db.MonitorData) { - d.lock.Lock() - defer d.lock.Unlock() - if m.InstanceID == "" { - d.log.Warning("update monitor data but instance id is empty.") - return - } - if md, ok := d.monitorDatas[m.InstanceID]; ok { - md.LogSizePeerM = m.LogSizePeerM - md.ServiceSize = m.ServiceSize - if _, ok := d.abnormalNode[m.InstanceID]; ok { - delete(d.abnormalNode, m.InstanceID) - } - } else { - d.monitorDatas[m.InstanceID] = &m - } - d.updateTime[m.InstanceID] = time.Now() -} - -func (d *Distribution) checkHealth() { - tike := time.Tick(time.Second * 5) - for { - select { - case <-tike: - case <-d.context.Done(): - return - } - d.lock.Lock() - for k, v := range d.updateTime { - if v.Add(time.Second * 10).Before(time.Now()) { //节点下线或者节点故障 - status := d.discover.InstanceCheckHealth(k) - if status == "delete" { - delete(d.monitorDatas, k) - delete(d.updateTime, k) - d.log.Warnf("instance (%s) health is delete.", k) - } - if status == "abnormal" { - d.abnormalNode[k] = 1 - d.log.Warnf("instance (%s) health is abnormal.", k) - } - } - } - d.lock.Unlock() - } -} - -//GetSuitableInstance 获取推荐节点 -func (d *Distribution) GetSuitableInstance(serviceID string) *discover.Instance { - d.lock.Lock() - defer d.lock.Unlock() - var suitableInstance *discover.Instance - - instanceID, err := discover.GetDokerLogInInstance(d.etcdClient, d.conf, serviceID) - if err != nil { - d.log.Error("Get docker log in instance id error ", err.Error()) - } - if instanceID != "" { - if _, ok := d.abnormalNode[instanceID]; !ok { - if _, ok := d.monitorDatas[instanceID]; ok { - suitableInstance = d.discover.GetInstance(instanceID) - if suitableInstance != nil { - return suitableInstance - } - } - } - } - if len(d.monitorDatas) < 1 { - ins := d.discover.GetCurrentInstance() - d.log.Debug("monitor data length <1 return self") - return &ins - } - d.log.Debug("start select suitable Instance") - var flags []int - var instances = make(map[int]*discover.Instance) - for k, v := range d.monitorDatas { - if _, ok := d.abnormalNode[k]; !ok { - if ins := d.discover.GetInstance(k); ins != nil { - flag := int(v.LogSizePeerM) + 20*v.ServiceSize - flags = append(flags, flag) - instances[flag] = ins - } else { - d.log.Debugf("instance %s stat is delete", k) - } - } else { - d.log.Debugf("instance %s stat is abnormal", k) - } - } - - if len(flags) > 0 { - sort.Ints(flags) - suitableInstance = instances[flags[0]] - } - if suitableInstance == nil { - d.log.Debug("suitableInstance is nil return self") - ins := d.discover.GetCurrentInstance() - return &ins - } - return suitableInstance -} diff --git a/eventlog/cluster/distribution/distribution_test.go b/eventlog/cluster/distribution/distribution_test.go deleted file mode 100644 index d79ca0eaa..000000000 --- a/eventlog/cluster/distribution/distribution_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package distribution - -import ( - "testing" - "time" - - "github.com/goodrain/rainbond/eventlog/cluster/discover" - "github.com/goodrain/rainbond/eventlog/conf" - "github.com/goodrain/rainbond/eventlog/db" - - "github.com/sirupsen/logrus" - "golang.org/x/net/context" -) - -func TestGetSuitableInstance(t *testing.T) { - dis := discover.New(nil, conf.DiscoverConf{}, logrus.WithField("Module", "Test")) - ctx, cancel := context.WithCancel(context.Background()) - d := &Distribution{ - cancel: cancel, - context: ctx, - discover: dis, - updateTime: make(map[string]time.Time), - abnormalNode: make(map[string]int), - log: logrus.WithField("Module", "Test"), - } - d.monitorDatas = map[string]*db.MonitorData{ - "a": &db.MonitorData{ - InstanceID: "a", LogSizePeerM: 200, - }, - "b": &db.MonitorData{ - InstanceID: "b", LogSizePeerM: 150, - }, - } - d.GetSuitableInstance("todo service id") -} diff --git a/eventlog/conf/conf.go b/eventlog/conf/conf.go index db579e00e..48f52410f 100644 --- a/eventlog/conf/conf.go +++ b/eventlog/conf/conf.go @@ -22,14 +22,14 @@ import "time" // Conf conf type Conf struct { - Entry EntryConf - EventStore EventStoreConf - Log LogConf - WebSocket WebSocketConf - WebHook WebHookConf - ClusterMode bool - Cluster ClusterConf - Kubernetes KubernetsConf + Entry EntryConf + EventStore EventStoreConf + Log LogConf + WebSocket WebSocketConf + WebHook WebHookConf + ClusterMode bool + Cluster ClusterConf + KubeConfigPath string } // WebHookConf webhook conf @@ -96,12 +96,6 @@ type DockerLogServerConf struct { // DiscoverConf discover conf type DiscoverConf struct { Type string - EtcdAddr []string - EtcdCaFile string - EtcdCertFile string - EtcdKeyFile string - EtcdUser string - EtcdPass string ClusterMode bool InstanceIP string HomePath string @@ -114,7 +108,6 @@ type DiscoverConf struct { type PubSubConf struct { PubBindIP string PubBindPort int - ClusterMode bool PollingTimeout time.Duration } @@ -134,15 +127,14 @@ type EventStoreConf struct { DB DBConf } -// KubernetsConf kubernetes conf -type KubernetsConf struct { - Master string -} - // ClusterConf cluster conf type ClusterConf struct { - PubSub PubSubConf - Discover DiscoverConf + PubSub PubSubConf + ClusterPort int `json:"clusterPort"` + WebsocketPort int `json:"websocketPort"` + DockerLogPort int `json:"dockerLogPort"` + HostIP string `json:"hostIP"` + LeaderElectionNamespace string `json:"leaderElectionNamespace"` } // MonitorMessageServerConf monitor message server conf diff --git a/eventlog/db/model.go b/eventlog/db/model.go index b74605652..5fcdb0838 100644 --- a/eventlog/db/model.go +++ b/eventlog/db/model.go @@ -45,8 +45,12 @@ const ( ServiceMonitorMessage ClusterMessageType = "monitor_message" //ServiceNewMonitorMessage 新业务监控数据消息 ServiceNewMonitorMessage ClusterMessageType = "new_monitor_message" - //MonitorMessage 节点监控数据 - MonitorMessage ClusterMessageType = "monitor" + //MonitorMessage node meta data, must send by leader + ClusterMetaMessage ClusterMessageType = "cluster_meta_message" + //RegistNodeMessage regist node to leader + RegistNodeMessage ClusterMessageType = "regist_node_message" + + HealthMessage ClusterMessageType = "health_message" ) type ClusterMessage struct { diff --git a/eventlog/exit/monitor/monitor.go b/eventlog/exit/monitor/monitor.go index 48991dc25..e0f863e6f 100644 --- a/eventlog/exit/monitor/monitor.go +++ b/eventlog/exit/monitor/monitor.go @@ -19,9 +19,10 @@ package monitor import ( + "time" + "github.com/goodrain/rainbond/eventlog/cluster" "github.com/goodrain/rainbond/eventlog/store" - "time" "github.com/prometheus/client_golang/prometheus" "github.com/sirupsen/logrus" @@ -107,7 +108,7 @@ func (e *Exporter) Collect(ch chan<- prometheus.Metric) { func (e *Exporter) scrape(ch chan<- prometheus.Metric) { scrapeTime := time.Now() e.totalScrapes.Inc() - if err := e.storeManager.Scrape(ch, namespace, exporter, e.cluster.GetInstanceHost()); err != nil { + if err := e.storeManager.Scrape(ch, namespace, exporter, e.cluster.GetCurrentInstance().HostIP); err != nil { logrus.Error("core manager scrape for prometheus error.", err.Error()) e.error.Set(1) } diff --git a/eventlog/exit/web/manager.go b/eventlog/exit/web/manager.go index 88edec5dc..54b7a2ea3 100644 --- a/eventlog/exit/web/manager.go +++ b/eventlog/exit/web/manager.go @@ -27,14 +27,12 @@ import ( "time" "github.com/goodrain/rainbond/eventlog/cluster" - "github.com/goodrain/rainbond/eventlog/cluster/discover" "github.com/goodrain/rainbond/eventlog/conf" "github.com/goodrain/rainbond/eventlog/exit/monitor" "github.com/goodrain/rainbond/eventlog/store" "github.com/goodrain/rainbond/util" httputil "github.com/goodrain/rainbond/util/http" - "github.com/coreos/etcd/clientv3" "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" "github.com/gorilla/websocket" @@ -49,7 +47,6 @@ import ( //SocketServer socket 服务 type SocketServer struct { conf conf.WebSocketConf - discoverConf conf.DiscoverConf log *logrus.Entry cancel func() context context.Context @@ -59,12 +56,11 @@ type SocketServer struct { timeout time.Duration cluster cluster.Cluster healthInfo map[string]string - etcdClient *clientv3.Client pubsubCtx map[string]*PubContext } //NewSocket 创建zmq sub客户端 -func NewSocket(conf conf.WebSocketConf, discoverConf conf.DiscoverConf, etcdClient *clientv3.Client, log *logrus.Entry, storeManager store.Manager, c cluster.Cluster, healthInfo map[string]string) *SocketServer { +func NewSocket(conf conf.WebSocketConf, log *logrus.Entry, storeManager store.Manager, c cluster.Cluster, healthInfo map[string]string) *SocketServer { ctx, cancel := context.WithCancel(context.Background()) d, err := time.ParseDuration(conf.TimeOut) if err != nil { @@ -73,7 +69,6 @@ func NewSocket(conf conf.WebSocketConf, discoverConf conf.DiscoverConf, etcdClie return &SocketServer{ conf: conf, - discoverConf: discoverConf, log: log, cancel: cancel, context: ctx, @@ -83,7 +78,6 @@ func NewSocket(conf conf.WebSocketConf, discoverConf conf.DiscoverConf, etcdClie timeout: d, cluster: c, healthInfo: healthInfo, - etcdClient: etcdClient, pubsubCtx: make(map[string]*PubContext), } } @@ -467,16 +461,20 @@ func (s *SocketServer) listen() { } s.log.Info("ServiceID:" + ServiceID) instance := s.cluster.GetSuitableInstance(ServiceID) - err := discover.SaveDockerLogInInstance(s.etcdClient, s.discoverConf, ServiceID, instance.HostID) - if err != nil { - s.log.Error("Save docker service and instance id to etcd error.") - w.WriteHeader(500) - w.Write([]byte(`{"message":"Save docker service and instance id to etcd error.","status":"failure"}`)) - return + if instance != nil { + w.WriteHeader(200) + res := map[string]interface{}{ + // Compatibility with old protocols + "host": fmt.Sprintf("%s:%d", instance.HostIP, instance.DockerLogPort), + "ip": instance.HostIP, + "input_dockerlog_port": instance.DockerLogPort, + "websocket_port": instance.WebsocketPort, + "status": "success", + } + json.NewEncoder(w).Encode(res) + } else { + w.WriteHeader(413) } - w.WriteHeader(200) - url := fmt.Sprintf("tcp://%s:%d", instance.HostIP, instance.DockerLogPort) - w.Write([]byte(`{"host":"` + url + `","status":"success"}`)) }) r.Get("/event_push", s.receiveEventMessage) r.Get("/health", func(w http.ResponseWriter, r *http.Request) { diff --git a/localbuild.sh b/localbuild.sh index 735a54076..14df90d6c 100755 --- a/localbuild.sh +++ b/localbuild.sh @@ -16,7 +16,7 @@ function prepare() { [ ! -d "$distdir/usr/local/" ] && mkdir -p $distdir/usr/local/bin } -build_items=(api builder grctl monitor mq node-proxy worker eventlog init-probe mesh-data-panel) +build_items=(api chaos grctl monitor mq node-proxy worker eventlog init-probe mesh-data-panel) function localbuild() { if [ "$1" = "all" ]; then diff --git a/monitor/monitor.go b/monitor/monitor.go index 043b1ef6c..c94779cd7 100644 --- a/monitor/monitor.go +++ b/monitor/monitor.go @@ -21,6 +21,7 @@ package monitor import ( "context" "fmt" + "net/http" "time" "github.com/goodrain/rainbond/cmd/monitor/option" @@ -28,6 +29,9 @@ import ( k8sutil "github.com/goodrain/rainbond/util/k8s" externalversions "github.com/prometheus-operator/prometheus-operator/pkg/client/informers/externalversions" "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned" + mprometheus "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" + "github.com/prometheus/common/version" "github.com/sirupsen/logrus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -46,6 +50,7 @@ type Monitor struct { func (d *Monitor) Start() { logrus.Info("start init prometheus operator") d.prometheusOperator.Run(d.stopCh) + go d.metricServer() logrus.Info("init prometheus operator success") } @@ -57,6 +62,30 @@ func (d *Monitor) Stop() { logrus.Info("prometheus operator stoped") } +func (d *Monitor) metricServer() { + mprometheus.MustRegister(version.NewCollector("monitor")) + mprometheus.MustRegister(d) + http.Handle("/metrics", promhttp.Handler()) + http.HandleFunc("/monitor/health", func(res http.ResponseWriter, req *http.Request) { + if d.manager.Status == prometheus.STARTED { + res.WriteHeader(200) + } else { + res.WriteHeader(400) + } + }) + http.ListenAndServe(fmt.Sprintf(":%d", d.config.MetricPort), nil) +} + +//Describe implements prometheus.Collector. +func (d *Monitor) Describe(ch chan<- *mprometheus.Desc) { + //TODO: +} + +// Collect implements prometheus.Collector. +func (d *Monitor) Collect(ch chan<- mprometheus.Metric) { + +} + // NewMonitor new monitor func NewMonitor(opt *option.Config, p *prometheus.Manager) (*Monitor, error) { restConfig, err := k8sutil.NewRestConfig(opt.KubeConfig) diff --git a/node/nodem/logger/streamlog/streamlog.go b/node/nodem/logger/streamlog/streamlog.go index 6ec630e9f..dab949209 100644 --- a/node/nodem/logger/streamlog/streamlog.go +++ b/node/nodem/logger/streamlog/streamlog.go @@ -329,14 +329,14 @@ func getLogAddress(clusterAddress []string) string { logrus.Warningf("Error get host info from %s. %s", address, err) continue } - var host = make(map[string]string) + var host = make(map[string]interface{}) err = json.NewDecoder(res.Body).Decode(&host) if err != nil { logrus.Errorf("Error Decode BEST instance host info: %v", err) continue } if status, ok := host["status"]; ok && status == "success" { - return host["host"] + return host["host"].(string) } logrus.Warningf("Error get host info from %s. result is not success. body is:%v", address, host) } diff --git a/release.sh b/release.sh index 28f5ede1a..1a59213f7 100755 --- a/release.sh +++ b/release.sh @@ -57,8 +57,6 @@ build::binary() { if [ "$1" = "eventlog" ]; then docker build -t goodraim.me/event-build:v1 "${DOCKER_PATH}/build" build_image="goodraim.me/event-build:v1" - elif [ "$1" = "chaos" ]; then - build_dir="./cmd/builder" elif [ "$1" = "gateway" ]; then build_image="golang:1.13-alpine" elif [ "$1" = "monitor" ]; then @@ -149,9 +147,9 @@ binary) build::binary::core "$2" else if [[ "${core_modul_items[*]}" =~ "${1}" ]]; then - build::binary "$1" "$2" "core" + build::binary "$2" "$3" "core" else - build::binary "$1" "$2" "addon" + build::binary "$2" "$3" "addon" fi fi ;; diff --git a/util/leader/kube_leader.go b/util/leader/kube_leader.go index 6585496dc..8b92a9834 100644 --- a/util/leader/kube_leader.go +++ b/util/leader/kube_leader.go @@ -42,7 +42,16 @@ const ( ) // RunAsLeader starts this particular external attacher after becoming a leader. -func RunAsLeader(ctx context.Context, clientset kubernetes.Interface, namespace string, identity string, lockName string, startFunc func(ctx context.Context), stopFunc func()) { +func RunAsLeader( + ctx context.Context, + clientset kubernetes.Interface, + namespace string, + identity string, + lockName string, + startFunc func(ctx context.Context), + stopFunc func(), + callbackLeader func(string), +) { broadcaster := record.NewBroadcaster() broadcaster.StartRecordingToSink(&corev1.EventSinkImpl{Interface: clientset.CoreV1().Events(namespace)}) eventRecorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: fmt.Sprintf("%s %s", lockName, string(identity))}) @@ -73,6 +82,7 @@ func RunAsLeader(ctx context.Context, clientset kubernetes.Interface, namespace }, OnNewLeader: func(identity string) { logrus.Debugf("Current leader: %s", identity) + callbackLeader(identity) }, }, } diff --git a/worker/master/master.go b/worker/master/master.go index 268be4614..87e1380e1 100644 --- a/worker/master/master.go +++ b/worker/master/master.go @@ -246,13 +246,17 @@ func (m *Controller) Start() error { case <-m.ctx.Done(): return case <-leaderCh: - logrus.Info("run as leader") - ctx, cancel := context.WithCancel(m.ctx) - defer cancel() - leader.RunAsLeader(ctx, m.kubeClient, m.conf.LeaderElectionNamespace, m.conf.LeaderElectionIdentity, lockName, start, func() { - leaderCh <- struct{}{} - logrus.Info("restart leader") - }) + func() { + logrus.Info("try run as leader") + ctx, cancel := context.WithCancel(m.ctx) + defer cancel() + leader.RunAsLeader(ctx, m.kubeClient, m.conf.LeaderElectionNamespace, m.conf.LeaderElectionIdentity, lockName, start, func() { + leaderCh <- struct{}{} + logrus.Info("restart leader") + }, func(leader string) { + logrus.Infof("leader node is %s", leader) + }) + }() } } }() From 90558f4b956bc61659932611b5dcc3e00cf3ea4d Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Thu, 26 Aug 2021 17:47:32 +0800 Subject: [PATCH 6/8] remove discover by etcd --- api/api_routers/version2/v2Routers.go | 2 - api/controller/manager.go | 9 +- api/db/db.go | 2 +- api/handler/cloud.go | 226 ------------------------ api/handler/cloudHandler.go | 32 ---- api/handler/gateway_action_test.go | 15 -- api/handler/handler.go | 8 - api/middleware/license.go | 37 ---- builder/exector/exector_test.go | 2 +- cmd/api/option/option.go | 16 +- cmd/api/server/server.go | 7 +- cmd/chaos/option/option.go | 2 +- cmd/chaos/server/server.go | 23 +-- cmd/mq/server/server.go | 31 +--- cmd/mqcli/main.go | 2 +- cmd/node-proxy/server/server.go | 7 +- cmd/worker/option/option.go | 15 +- discover.v2/discover.go | 164 +---------------- discover.v2/discover_test.go | 72 -------- discover.v2/k8s_discover.go | 2 +- discover.v2/k8s_discover_test.go | 2 +- discover.v2/register.go | 162 ----------------- discover/config/config.go | 50 ------ monitor/utils/utils.go | 2 +- mq/client/client.go | 25 +-- node/initiate/host.go | 7 +- util/license/license.go | 164 ----------------- util/license/license_test.go | 57 ------ util/license/testdata/expire_license.yb | 1 - util/license/testdata/ok_license.yb | 1 - util/license/testdata/wrong_license.yb | 1 - worker/client/client.go | 24 +-- worker/discover/manager.go | 9 +- worker/server/server.go | 18 +- 34 files changed, 34 insertions(+), 1163 deletions(-) delete mode 100644 api/handler/cloud.go delete mode 100644 api/handler/cloudHandler.go delete mode 100644 api/middleware/license.go delete mode 100644 discover.v2/discover_test.go delete mode 100644 discover.v2/register.go delete mode 100644 discover/config/config.go delete mode 100644 util/license/license.go delete mode 100644 util/license/license_test.go delete mode 100644 util/license/testdata/expire_license.yb delete mode 100644 util/license/testdata/ok_license.yb delete mode 100644 util/license/testdata/wrong_license.yb diff --git a/api/api_routers/version2/v2Routers.go b/api/api_routers/version2/v2Routers.go index 6955a5358..98b655073 100644 --- a/api/api_routers/version2/v2Routers.go +++ b/api/api_routers/version2/v2Routers.go @@ -34,8 +34,6 @@ type V2 struct { //Routes routes func (v2 *V2) Routes() chi.Router { r := chi.NewRouter() - license := middleware.NewLicense(v2.Cfg) - r.Use(license.Verify) r.Get("/show", controller.GetManager().Show) r.Post("/show", controller.GetManager().Show) r.Mount("/tenants", v2.tenantRouter()) diff --git a/api/controller/manager.go b/api/controller/manager.go index 54e2c3093..58a10ab1a 100644 --- a/api/controller/manager.go +++ b/api/controller/manager.go @@ -25,7 +25,6 @@ import ( "github.com/goodrain/rainbond/api/proxy" "github.com/goodrain/rainbond/cmd/api/option" mqclient "github.com/goodrain/rainbond/mq/client" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/goodrain/rainbond/worker/client" ) @@ -65,13 +64,7 @@ func GetManager() V2Manager { //NewManager new manager func NewManager(conf option.Config, statusCli *client.AppRuntimeSyncClient) (*V2Routes, error) { - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: conf.EtcdEndpoint, - CaFile: conf.EtcdCaFile, - CertFile: conf.EtcdCertFile, - KeyFile: conf.EtcdKeyFile, - } - mqClient, err := mqclient.NewMqClient(etcdClientArgs, conf.MQAPI) + mqClient, err := mqclient.NewMqClient(conf.MQAPI) if err != nil { return nil, err } diff --git a/api/db/db.go b/api/db/db.go index c56bdb041..edef48b66 100644 --- a/api/db/db.go +++ b/api/db/db.go @@ -92,7 +92,7 @@ type MQManager struct { //NewMQManager new mq manager func (m *MQManager) NewMQManager() (client.MQClient, error) { - client, err := client.NewMqClient(m.EtcdClientArgs, m.DefaultServer) + client, err := client.NewMqClient(m.DefaultServer) if err != nil { logrus.Errorf("new mq manager error, %v", err) return client, err diff --git a/api/handler/cloud.go b/api/handler/cloud.go deleted file mode 100644 index aba325500..000000000 --- a/api/handler/cloud.go +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package handler - -import ( - "crypto/md5" - crand "crypto/rand" - "crypto/rsa" - "crypto/x509" - "crypto/x509/pkix" - "encoding/hex" - "encoding/pem" - "fmt" - "io/ioutil" - "math/big" - "time" - - "github.com/jinzhu/gorm" - "github.com/sirupsen/logrus" - - api_model "github.com/goodrain/rainbond/api/model" - "github.com/goodrain/rainbond/api/util" - "github.com/goodrain/rainbond/cmd/api/option" - "github.com/goodrain/rainbond/db" - dbmodel "github.com/goodrain/rainbond/db/model" -) - -//CloudAction cloud action struct -type CloudAction struct { - RegionTag string - APISSL bool - CAPath string - KeyPath string -} - -//CreateCloudManager get cloud manager -func CreateCloudManager(conf option.Config) *CloudAction { - return &CloudAction{ - APISSL: conf.APISSL, - RegionTag: conf.RegionTag, - CAPath: conf.APICertFile, - KeyPath: conf.APIKeyFile, - } -} - -//TokenDispatcher token -func (c *CloudAction) TokenDispatcher(gt *api_model.GetUserToken) (*api_model.TokenInfo, *util.APIHandleError) { - //TODO: product token, 启动api时需要添加该参数 - //token包含 eid,数据中心标识,可控范围,有效期 - ti := &api_model.TokenInfo{ - EID: gt.Body.EID, - } - token := c.createToken(gt) - var oldToken string - tokenInfos, err := db.GetManager().RegionUserInfoDao().GetTokenByEid(gt.Body.EID) - if err != nil { - if err.Error() == gorm.ErrRecordNotFound.Error() { - goto CREATE - } - return nil, util.CreateAPIHandleErrorFromDBError("get user token info", err) - } - ti.CA = tokenInfos.CA - //ti.Key = tokenInfos.Key - ti.Token = token - oldToken = tokenInfos.Token - tokenInfos.Token = token - tokenInfos.ValidityPeriod = gt.Body.ValidityPeriod - if err := db.GetManager().RegionUserInfoDao().UpdateModel(tokenInfos); err != nil { - return nil, util.CreateAPIHandleErrorFromDBError("recreate region user info", err) - } - tokenInfos.CA = "" - tokenInfos.Key = "" - GetTokenIdenHandler().DeleteTokenFromMap(oldToken, tokenInfos) - return ti, nil -CREATE: - ti.Token = token - logrus.Debugf("create token %v", token) - rui := &dbmodel.RegionUserInfo{ - EID: gt.Body.EID, - RegionTag: c.RegionTag, - APIRange: gt.Body.Range, - ValidityPeriod: gt.Body.ValidityPeriod, - Token: token, - } - if c.APISSL { - ca, key, err := c.CertDispatcher(gt) - if err != nil { - return nil, util.CreateAPIHandleError(500, fmt.Errorf("create ca or key error")) - } - rui.CA = string(ca) - rui.Key = string(key) - ti.CA = string(ca) - //ti.Key = string(key) - } - if gt.Body.Range == "" { - rui.APIRange = dbmodel.SERVERSOURCE - } - GetTokenIdenHandler().AddTokenIntoMap(rui) - if err := db.GetManager().RegionUserInfoDao().AddModel(rui); err != nil { - return nil, util.CreateAPIHandleErrorFromDBError("create region user info", err) - } - return ti, nil -} - -//GetTokenInfo GetTokenInfo -func (c *CloudAction) GetTokenInfo(eid string) (*dbmodel.RegionUserInfo, *util.APIHandleError) { - tokenInfos, err := db.GetManager().RegionUserInfoDao().GetTokenByEid(eid) - if err != nil { - return nil, util.CreateAPIHandleErrorFromDBError("get user token info", err) - } - return tokenInfos, nil -} - -//UpdateTokenTime UpdateTokenTime -func (c *CloudAction) UpdateTokenTime(eid string, vd int) *util.APIHandleError { - tokenInfos, err := db.GetManager().RegionUserInfoDao().GetTokenByEid(eid) - if err != nil { - return util.CreateAPIHandleErrorFromDBError("get user token info", err) - } - tokenInfos.ValidityPeriod = vd - err = db.GetManager().RegionUserInfoDao().UpdateModel(tokenInfos) - if err != nil { - return util.CreateAPIHandleErrorFromDBError("update user token info", err) - } - return nil -} - -//CertDispatcher Cert -func (c *CloudAction) CertDispatcher(gt *api_model.GetUserToken) ([]byte, []byte, error) { - cert, err := analystCaKey(c.CAPath, "ca") - if err != nil { - return nil, nil, err - } - //解析私钥 - keyFile, err := analystCaKey(c.KeyPath, "key") - if err != nil { - return nil, nil, err - } - //keyFile = keyFile.(rsa.PrivateKey) - - validHourTime := (gt.Body.ValidityPeriod - gt.Body.BeforeTime) - cer := &x509.Certificate{ - SerialNumber: big.NewInt(1), //证书序列号 - Subject: pkix.Name{ - CommonName: fmt.Sprintf("%s@%d", gt.Body.EID, time.Now().Unix()), - Locality: []string{c.RegionTag}, - }, - NotBefore: time.Now(), //证书有效期开始时间 - NotAfter: time.Now().Add(time.Second * time.Duration(validHourTime)), //证书有效期结束时间 - BasicConstraintsValid: true, //基本的有效性约束 - IsCA: false, //是否是根证书 - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth}, //证书用途(客户端认证,数据加密) - KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageDataEncipherment, - //EmailAddresses: []string{"region@test.com"}, - //IPAddresses: []net.IP{net.ParseIP("192.168.1.59")}, - } - priKey, err := rsa.GenerateKey(crand.Reader, 2048) - if err != nil { - return nil, nil, err - } - ca, err := x509.CreateCertificate(crand.Reader, cer, cert.(*x509.Certificate), &priKey.PublicKey, keyFile) - if err != nil { - return nil, nil, err - } - - //编码证书文件和私钥文件 - caPem := &pem.Block{ - Type: "CERTIFICATE", - Bytes: ca, - } - ca = pem.EncodeToMemory(caPem) - - buf := x509.MarshalPKCS1PrivateKey(priKey) - keyPem := &pem.Block{ - Type: "PRIVATE KEY", - Bytes: buf, - } - key := pem.EncodeToMemory(keyPem) - return ca, key, nil -} - -func analystCaKey(path, kind string) (interface{}, error) { - fileInfo, err := ioutil.ReadFile(path) - if err != nil { - return "", nil - } - fileBlock, _ := pem.Decode(fileInfo) - switch kind { - case "ca": - cert, err := x509.ParseCertificate(fileBlock.Bytes) - if err != nil { - return "", nil - } - return cert, nil - case "key": - praKey, err := x509.ParsePKCS1PrivateKey(fileBlock.Bytes) - if err != nil { - return "", nil - } - return praKey, nil - } - return "", nil -} - -func (c *CloudAction) createToken(gt *api_model.GetUserToken) string { - fullStr := fmt.Sprintf("%s-%s-%s-%d-%d", gt.Body.EID, c.RegionTag, gt.Body.Range, gt.Body.ValidityPeriod, int(time.Now().Unix())) - h := md5.New() - h.Write([]byte(fullStr)) - return hex.EncodeToString(h.Sum(nil)) -} diff --git a/api/handler/cloudHandler.go b/api/handler/cloudHandler.go deleted file mode 100644 index 2993d4d40..000000000 --- a/api/handler/cloudHandler.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package handler - -import ( - api_model "github.com/goodrain/rainbond/api/model" - "github.com/goodrain/rainbond/api/util" - dbmodel "github.com/goodrain/rainbond/db/model" -) - -//CloudHandler define source handler -type CloudHandler interface { - TokenDispatcher(gt *api_model.GetUserToken) (*api_model.TokenInfo, *util.APIHandleError) - GetTokenInfo(eid string) (*dbmodel.RegionUserInfo, *util.APIHandleError) - UpdateTokenTime(eid string, vd int) *util.APIHandleError -} diff --git a/api/handler/gateway_action_test.go b/api/handler/gateway_action_test.go index 78ef79904..363336348 100644 --- a/api/handler/gateway_action_test.go +++ b/api/handler/gateway_action_test.go @@ -33,21 +33,6 @@ import ( var gm *GatewayAction -func init() { - //conf := option.Config{ - // DBType: "mysql", - // DBConnectionInfo: "pohF4b:EiW6Eipu@tcp(192.168.56.101:3306)/region", - //} - ////创建db manager - //if err := db.CreateDBManager(conf); err != nil { - // fmt.Printf("create db manager error, %v", err) - //} - //cli, err := client.NewMqClient([]string{"http://192.168.56.101:2379"}, "192.168.56.101:6300") - //if err != nil { - // fmt.Printf("create mq client error, %v", err) - //} - //gm = CreateGatewayManager(cdb.GetManager(), cli, nil) -} func TestSelectAvailablePort(t *testing.T) { t.Log(selectAvailablePort([]int{9000})) // less than minport t.Log(selectAvailablePort([]int{10000})) // equal to minport diff --git a/api/handler/handler.go b/api/handler/handler.go index 2a73ca7d3..6f7ac6033 100644 --- a/api/handler/handler.go +++ b/api/handler/handler.go @@ -65,7 +65,6 @@ func InitHandle(conf option.Config, defaultAppHandler = CreateAppManager(mqClient) defaultTenantHandler = CreateTenManager(mqClient, statusCli, &conf, kubeClient, prometheusCli, k8sClient) defaultNetRulesHandler = CreateNetRulesManager(etcdcli) - defaultCloudHandler = CreateCloudManager(conf) defaultAPPBackupHandler = group.CreateBackupHandle(mqClient, statusCli, etcdcli) defaultEventHandler = CreateLogManager() shareHandler = &share.ServiceShareHandle{MQClient: mqClient, EtcdCli: etcdcli} @@ -135,13 +134,6 @@ func GetRulesManager() NetRulesHandler { return defaultNetRulesHandler } -var defaultCloudHandler CloudHandler - -//GetCloudManager get manager -func GetCloudManager() CloudHandler { - return defaultCloudHandler -} - var defaultEventHandler EventHandler //GetEventHandler get event handler diff --git a/api/middleware/license.go b/api/middleware/license.go deleted file mode 100644 index 606784bcf..000000000 --- a/api/middleware/license.go +++ /dev/null @@ -1,37 +0,0 @@ -package middleware - -import ( - "net/http" - - "github.com/goodrain/rainbond/cmd/api/option" - httputil "github.com/goodrain/rainbond/util/http" - licutil "github.com/goodrain/rainbond/util/license" -) - -// License - -type License struct { - cfg *option.Config -} - -// NewLicense - -func NewLicense(cfg *option.Config) *License { - return &License{ - cfg: cfg, - } -} - -// Verify parses the license to make the content inside it take effect. -func (l *License) Verify(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if !licutil.VerifyTime(l.cfg.LicensePath, l.cfg.LicSoPath) { - httputil.Return(r, w, 401, httputil.ResponseBody{ - Bean: map[string]interface{}{ - "msg": "invalid license", - "code": 10400, - }, - }) - return - } - next.ServeHTTP(w, r) - }) -} diff --git a/builder/exector/exector_test.go b/builder/exector/exector_test.go index d67328a52..b1cd577c6 100644 --- a/builder/exector/exector_test.go +++ b/builder/exector/exector_test.go @@ -71,7 +71,7 @@ func Test_exectorManager_buildFromSourceCode(t *testing.T) { } else { maxConcurrentTask = conf.MaxTasks } - mqClient, err := mqclient.NewMqClient(&etcdArgs, conf.MQAPI) + mqClient, err := mqclient.NewMqClient(conf.MQAPI) if err != nil { t.Fatal(err) } diff --git a/cmd/api/option/option.go b/cmd/api/option/option.go index b86e2e6eb..61c021454 100644 --- a/cmd/api/option/option.go +++ b/cmd/api/option/option.go @@ -32,9 +32,7 @@ type Config struct { APIAddrSSL string DBConnectionInfo string EventLogServers []string - NodeAPI []string BuilderAPI []string - V1API string MQAPI string EtcdEndpoint []string EtcdCaFile string @@ -48,20 +46,17 @@ type Config struct { WebsocketCertFile string WebsocketKeyFile string WebsocketAddr string - Opentsdb string - RegionTag string LoggerFile string EnableFeature []string Debug bool MinExtPort int // minimum external port - LicensePath string - LicSoPath string LogPath string KuberentesDashboardAPI string KubeConfigPath string PrometheusEndpoint string RbdNamespace string ShowSQL bool + WorkerAddress string } //APIServer apiserver server @@ -91,29 +86,24 @@ func (a *APIServer) AddFlags(fs *pflag.FlagSet) { fs.BoolVar(&a.WebsocketSSL, "ws-ssl-enable", false, "whether to enable websocket SSL") fs.StringVar(&a.WebsocketCertFile, "ws-ssl-certfile", "/etc/ssl/goodrain.com/goodrain.com.crt", "websocket and fileserver ssl cert file") fs.StringVar(&a.WebsocketKeyFile, "ws-ssl-keyfile", "/etc/ssl/goodrain.com/goodrain.com.key", "websocket and fileserver ssl key file") - fs.StringVar(&a.V1API, "v1-api", "127.0.0.1:8887", "the region v1 api") - fs.StringSliceVar(&a.NodeAPI, "node-api", []string{"127.0.0.1:6100"}, "the node server api") fs.StringSliceVar(&a.BuilderAPI, "builder-api", []string{"rbd-chaos:3228"}, "the builder api") fs.StringSliceVar(&a.EventLogServers, "event-servers", []string{"rbd-eventlog:6366"}, "event log server address.") - fs.StringVar(&a.MQAPI, "mq-api", "127.0.0.1:6300", "acp_mq api") + fs.StringVar(&a.MQAPI, "mq-api", "rbd-mq:6300", "acp_mq api") fs.BoolVar(&a.StartRegionAPI, "start", false, "Whether to start region old api") fs.StringSliceVar(&a.EtcdEndpoint, "etcd", []string{"http://127.0.0.1:2379"}, "etcd server or proxy address") fs.StringVar(&a.EtcdCaFile, "etcd-ca", "", "verify etcd certificates of TLS-enabled secure servers using this CA bundle") fs.StringVar(&a.EtcdCertFile, "etcd-cert", "", "identify secure etcd client using this TLS certificate file") fs.StringVar(&a.EtcdKeyFile, "etcd-key", "", "identify secure etcd client using this TLS key file") - fs.StringVar(&a.Opentsdb, "opentsdb", "127.0.0.1:4242", "opentsdb server config") - fs.StringVar(&a.RegionTag, "region-tag", "test-ali", "region tag setting") fs.StringVar(&a.LoggerFile, "logger-file", "/logs/request.log", "request log file path") fs.BoolVar(&a.Debug, "debug", false, "open debug will enable pprof") fs.IntVar(&a.MinExtPort, "min-ext-port", 0, "minimum external port") fs.StringArrayVar(&a.EnableFeature, "enable-feature", []string{}, "List of special features supported, such as `windows`") - fs.StringVar(&a.LicensePath, "license-path", "/opt/rainbond/etc/license/license.yb", "the license path of the enterprise version.") - fs.StringVar(&a.LicSoPath, "license-so-path", "/opt/rainbond/etc/license/license.so", "Dynamic library file path for parsing the license.") fs.StringVar(&a.LogPath, "log-path", "/grdata/logs", "Where Docker log files and event log files are stored.") fs.StringVar(&a.KubeConfigPath, "kube-config", "", "kube config file path, No setup is required to run in a cluster.") fs.StringVar(&a.KuberentesDashboardAPI, "k8s-dashboard-api", "kubernetes-dashboard.rbd-system:443", "The service DNS name of Kubernetes dashboard. Default to kubernetes-dashboard.kubernetes-dashboard") fs.StringVar(&a.PrometheusEndpoint, "prom-api", "rbd-monitor:9999", "The service DNS name of Prometheus api. Default to rbd-monitor:9999") fs.StringVar(&a.RbdNamespace, "rbd-namespace", "rbd-system", "rbd component namespace") + fs.StringVar(&a.WorkerAddress, "worker-address", "rbd-worker:6535", "the address of worker runtime server") fs.BoolVar(&a.ShowSQL, "show-sql", false, "The trigger for showing sql.") } diff --git a/cmd/api/server/server.go b/cmd/api/server/server.go index 15b1459d4..ce27f6aa4 100644 --- a/cmd/api/server/server.go +++ b/cmd/api/server/server.go @@ -95,11 +95,8 @@ func Run(s *option.APIServer) error { defer event.CloseManager() //create app status client cli, err := client.NewClient(ctx, client.AppRuntimeSyncClientConf{ - EtcdEndpoints: s.Config.EtcdEndpoint, - EtcdCaFile: s.Config.EtcdCaFile, - EtcdCertFile: s.Config.EtcdCertFile, - EtcdKeyFile: s.Config.EtcdKeyFile, - NonBlock: s.Config.Debug, + DefaultServerAddress: s.Config.WorkerAddress, + NonBlock: s.Config.Debug, }) if err != nil { logrus.Errorf("create app status client error, %v", err) diff --git a/cmd/chaos/option/option.go b/cmd/chaos/option/option.go index db61c9d95..ccbc60bc0 100644 --- a/cmd/chaos/option/option.go +++ b/cmd/chaos/option/option.go @@ -85,7 +85,7 @@ func (a *Builder) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.KubeConfig, "kube-config", "", "kubernetes api server config file") fs.IntVar(&a.MaxTasks, "max-tasks", 50, "Maximum number of simultaneous build tasks") fs.IntVar(&a.APIPort, "api-port", 3228, "the port for api server") - fs.StringVar(&a.MQAPI, "mq-api", "127.0.0.1:6300", "acp_mq api") + fs.StringVar(&a.MQAPI, "mq-api", "rbd-mq:6300", "acp_mq api") fs.StringVar(&a.RunMode, "run", "sync", "sync data when worker start") fs.StringVar(&a.DockerEndpoint, "dockerd", "127.0.0.1:2376", "dockerd endpoint") fs.StringVar(&a.HostIP, "hostIP", "", "Current node Intranet IP") diff --git a/cmd/chaos/server/server.go b/cmd/chaos/server/server.go index ceab71641..89711c674 100644 --- a/cmd/chaos/server/server.go +++ b/cmd/chaos/server/server.go @@ -36,8 +36,6 @@ import ( "github.com/goodrain/rainbond/builder/api" "github.com/goodrain/rainbond/builder/clean" - discoverv2 "github.com/goodrain/rainbond/discover.v2" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/sirupsen/logrus" @@ -50,25 +48,17 @@ func Run(s *option.Builder) error { dbconfig := config.Config{ DBType: s.Config.DBType, MysqlConnectionInfo: s.Config.MysqlConnectionInfo, - EtcdEndPoints: s.Config.EtcdEndPoints, - EtcdTimeout: s.Config.EtcdTimeout, } if err := db.CreateManager(dbconfig); err != nil { return err } - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: s.Config.EtcdEndPoints, - CaFile: s.Config.EtcdCaFile, - CertFile: s.Config.EtcdCertFile, - KeyFile: s.Config.EtcdKeyFile, - } if err := event.NewManager(event.EventConfig{ EventLogServers: s.Config.EventLogServers, }); err != nil { return err } defer event.CloseManager() - client, err := client.NewMqClient(etcdClientArgs, s.Config.MQAPI) + client, err := client.NewMqClient(s.Config.MQAPI) if err != nil { logrus.Errorf("new Mq client error, %v", err) return err @@ -97,15 +87,6 @@ func Run(s *option.Builder) error { } defer cle.Stop() } - keepalive, err := discoverv2.CreateKeepAlive(etcdClientArgs, "builder", - "", s.Config.HostIP, s.Config.APIPort) - if err != nil { - return err - } - if err := keepalive.Start(); err != nil { - return err - } - defer keepalive.Stop() exporter := monitor.NewExporter(exec) prometheus.MustRegister(exporter) @@ -116,7 +97,7 @@ func Run(s *option.Builder) error { logrus.Info("builder begin running...") //step finally: listen Signal - term := make(chan os.Signal) + term := make(chan os.Signal, 1) signal.Notify(term, os.Interrupt, syscall.SIGTERM) select { case <-term: diff --git a/cmd/mq/server/server.go b/cmd/mq/server/server.go index 04d9abf07..9e4f8c9e4 100644 --- a/cmd/mq/server/server.go +++ b/cmd/mq/server/server.go @@ -24,10 +24,8 @@ import ( "syscall" "github.com/goodrain/rainbond/cmd/mq/option" - discover "github.com/goodrain/rainbond/discover.v2" "github.com/goodrain/rainbond/mq/api" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/sirupsen/logrus" ) @@ -43,35 +41,8 @@ func Run(s *option.MQServer) error { apiManager.Start(errChan) defer apiManager.Stop() - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: s.Config.EtcdEndPoints, - CaFile: s.Config.EtcdCaFile, - CertFile: s.Config.EtcdCertFile, - KeyFile: s.Config.EtcdKeyFile, - } - - //step 2:regist mq endpoint - keepalive, err := discover.CreateKeepAlive(etcdClientArgs, "rainbond_mq", s.Config.HostName, s.Config.HostIP, s.Config.APIPort) - if err != nil { - return err - } - if err := keepalive.Start(); err != nil { - return err - } - defer keepalive.Stop() - - //step 3:regist prometheus export endpoint - exportKeepalive, err := discover.CreateKeepAlive(etcdClientArgs, "mq", s.Config.HostName, s.Config.HostIP, 6301) - if err != nil { - return err - } - if err := exportKeepalive.Start(); err != nil { - return err - } - defer exportKeepalive.Stop() - //step finally: listen Signal - term := make(chan os.Signal) + term := make(chan os.Signal, 1) signal.Notify(term, os.Interrupt, syscall.SIGTERM) select { case <-term: diff --git a/cmd/mqcli/main.go b/cmd/mqcli/main.go index c9b512de7..d9d865ef7 100644 --- a/cmd/mqcli/main.go +++ b/cmd/mqcli/main.go @@ -42,7 +42,7 @@ var mode string func main() { AddFlags(pflag.CommandLine) pflag.Parse() - c, err := client.NewMqClient(nil, server) + c, err := client.NewMqClient(server) if err != nil { logrus.Error("new mq client error.", err.Error()) os.Exit(1) diff --git a/cmd/node-proxy/server/server.go b/cmd/node-proxy/server/server.go index 68de39fc9..68fbc25c0 100644 --- a/cmd/node-proxy/server/server.go +++ b/cmd/node-proxy/server/server.go @@ -62,14 +62,13 @@ func Run(cfg *option.Conf) error { return err } - k8sDiscover := discover.NewK8sDiscover(ctx, clientset, cfg) - defer k8sDiscover.Stop() - nodemanager, err := nodem.NewNodeManager(ctx, cfg) if err != nil { return fmt.Errorf("create node manager failed: %s", err) } if cfg.ImageRepositoryHost == constants.DefImageRepository { + k8sDiscover := discover.NewK8sDiscover(ctx, clientset, cfg) + defer k8sDiscover.Stop() hostManager, err := initiate.NewHostManager(cfg, k8sDiscover) if err != nil { return fmt.Errorf("create new host manager: %v", err) @@ -112,7 +111,7 @@ func Run(cfg *option.Conf) error { logrus.Debug("create and start api server moudle success") //step finally: listen Signal - term := make(chan os.Signal) + term := make(chan os.Signal, 1) signal.Notify(term, os.Interrupt, syscall.SIGTERM) select { case <-stoped: diff --git a/cmd/worker/option/option.go b/cmd/worker/option/option.go index 0f41d7b65..831ae9bf9 100644 --- a/cmd/worker/option/option.go +++ b/cmd/worker/option/option.go @@ -30,12 +30,6 @@ import ( //Config config server type Config struct { - EtcdEndPoints []string - EtcdCaFile string - EtcdCertFile string - EtcdKeyFile string - EtcdTimeout int - EtcdPrefix string ClusterName string MysqlConnectionInfo string DBType string @@ -81,12 +75,6 @@ func NewWorker() *Worker { //AddFlags config func (a *Worker) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.LogLevel, "log-level", "info", "the worker log level") - fs.StringSliceVar(&a.EtcdEndPoints, "etcd-endpoints", []string{"http://127.0.0.1:2379"}, "etcd v3 cluster endpoints.") - fs.StringVar(&a.EtcdCaFile, "etcd-ca", "", "") - fs.StringVar(&a.EtcdCertFile, "etcd-cert", "", "") - fs.StringVar(&a.EtcdKeyFile, "etcd-key", "", "") - fs.IntVar(&a.EtcdTimeout, "etcd-timeout", 5, "etcd http timeout seconds") - fs.StringVar(&a.EtcdPrefix, "etcd-prefix", "/store", "the etcd data save key prefix ") fs.StringVar(&a.PrometheusMetricPath, "metric", "/metrics", "prometheus metrics path") fs.StringVar(&a.Listen, "listen", ":6369", "prometheus listen host and port") fs.StringVar(&a.DBType, "db-type", "mysql", "db type mysql or etcd") @@ -96,7 +84,7 @@ func (a *Worker) AddFlags(fs *pflag.FlagSet) { fs.IntVar(&a.KubeAPIQPS, "kube-api-qps", 50, "kube client qps") fs.IntVar(&a.KubeAPIBurst, "kube-api-burst", 10, "kube clint burst") fs.IntVar(&a.MaxTasks, "max-tasks", 50, "the max tasks for per node") - fs.StringVar(&a.MQAPI, "mq-api", "127.0.0.1:6300", "acp_mq api") + fs.StringVar(&a.MQAPI, "mq-api", "rbd-mq:6300", "acp_mq api") fs.StringVar(&a.RunMode, "run", "sync", "sync data when worker start") fs.StringVar(&a.NodeName, "node-name", "", "the name of this worker,it must be global unique name") fs.StringVar(&a.HostIP, "host-ip", "", "the ip of this worker,it must be global connected ip") @@ -106,7 +94,6 @@ func (a *Worker) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&a.RBDNamespace, "rbd-system-namespace", "rbd-system", "rbd components kubernetes namespace") fs.StringVar(&a.GrdataPVCName, "grdata-pvc-name", "rbd-cpt-grdata", "The name of grdata persistent volume claim") fs.StringVar(&a.Helm.DataDir, "helm-data-dir", "helm-data-dir", "The data directory of Helm.") - if a.Helm.DataDir == "" { a.Helm.DataDir = "/grdata/helm" } diff --git a/discover.v2/discover.go b/discover.v2/discover.go index 9c0d51fc4..788728256 100644 --- a/discover.v2/discover.go +++ b/discover.v2/discover.go @@ -19,19 +19,9 @@ package discover import ( - "fmt" - "strings" "sync" - "time" - "github.com/goodrain/rainbond/discover/config" - - "golang.org/x/net/context" - - "github.com/coreos/etcd/clientv3" - "github.com/coreos/etcd/mvcc/mvccpb" - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" + "github.com/goodrain/rainbond/discover.v2/config" ) //CallbackUpdate 每次返还变化 @@ -58,36 +48,6 @@ type Discover interface { AddUpdateProject(name string, callback CallbackUpdate) Stop() } - -//GetDiscover 获取服务发现管理器 -func GetDiscover(opt config.DiscoverConfig) (Discover, error) { - if opt.Ctx == nil { - opt.Ctx = context.Background() - } - ctx, cancel := context.WithCancel(opt.Ctx) - client, err := etcdutil.NewClient(ctx, opt.EtcdClientArgs) - if err != nil { - cancel() - return nil, err - } - etcdD := &etcdDiscover{ - projects: make(map[string]CallbackUpdate), - ctx: ctx, - cancel: cancel, - client: client, - prefix: "/rainbond/discover", - } - return etcdD, nil -} - -type etcdDiscover struct { - projects map[string]CallbackUpdate - lock sync.Mutex - ctx context.Context - cancel context.CancelFunc - client *clientv3.Client - prefix string -} type defaultCallBackUpdate struct { endpoints map[string]*config.Endpoint callback Callback @@ -182,125 +142,3 @@ func (d *defaultCallBackUpdate) UpdateEndpoints(operation config.Operation, endp func (d *defaultCallBackUpdate) Error(err error) { d.callback.Error(err) } - -func (e *etcdDiscover) AddProject(name string, callback Callback) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; !ok { - cal := &defaultCallBackUpdate{ - callback: callback, - endpoints: make(map[string]*config.Endpoint), - } - e.projects[name] = cal - go e.discover(name, cal) - } -} - -func (e *etcdDiscover) AddUpdateProject(name string, callback CallbackUpdate) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; !ok { - e.projects[name] = callback - go e.discover(name, callback) - } -} - -func (e *etcdDiscover) Stop() { - e.cancel() -} - -func (e *etcdDiscover) removeProject(name string) { - e.lock.Lock() - defer e.lock.Unlock() - if _, ok := e.projects[name]; ok { - delete(e.projects, name) - } -} - -func (e *etcdDiscover) discover(name string, callback CallbackUpdate) { - ctx, cancel := context.WithCancel(e.ctx) - defer cancel() - endpoints := e.list(name) - if endpoints != nil && len(endpoints) > 0 { - callback.UpdateEndpoints(config.SYNC, endpoints...) - } - watch := e.client.Watch(ctx, fmt.Sprintf("%s/%s", e.prefix, name), clientv3.WithPrefix()) - timer := time.NewTimer(time.Second * 20) - defer timer.Stop() - for { - select { - case <-e.ctx.Done(): - return - case <-timer.C: - go e.discover(name, callback) - return - case res := <-watch: - if err := res.Err(); err != nil { - callback.Error(err) - logrus.Debugf("monitor discover get watch error: %s, remove this watch target first, and then sleep 10 sec, we will re-watch it", err.Error()) - e.removeProject(name) - time.Sleep(10 * time.Second) - e.AddUpdateProject(name, callback) - return - } - for _, event := range res.Events { - if event.Kv != nil { - var end *config.Endpoint - kstep := strings.Split(string(event.Kv.Key), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-1] - serverURL := string(event.Kv.Value) - end = &config.Endpoint{Name: serverName, URL: serverURL, Mode: 0} - } - if end != nil { //获取服务地址 - switch event.Type { - case mvccpb.DELETE: - callback.UpdateEndpoints(config.DELETE, end) - case mvccpb.PUT: - if event.Kv.Version == 1 { - callback.UpdateEndpoints(config.ADD, end) - } else { - callback.UpdateEndpoints(config.UPDATE, end) - } - } - } - } - } - timer.Reset(time.Second * 20) - } - } -} -func (e *etcdDiscover) list(name string) []*config.Endpoint { - ctx, cancel := context.WithTimeout(e.ctx, time.Second*10) - defer cancel() - res, err := e.client.Get(ctx, fmt.Sprintf("%s/%s", e.prefix, name), clientv3.WithPrefix()) - if err != nil { - logrus.Errorf("list all servers of %s error.%s", name, err.Error()) - return nil - } - if res.Count == 0 { - return nil - } - return makeEndpointForKvs(res.Kvs) -} - -func makeEndpointForKvs(kvs []*mvccpb.KeyValue) (res []*config.Endpoint) { - var ends = make(map[string]*config.Endpoint) - for _, kv := range kvs { - //获取服务地址 - kstep := strings.Split(string(kv.Key), "/") - if len(kstep) > 2 { - serverName := kstep[len(kstep)-1] - serverURL := string(kv.Value) - if en, ok := ends[serverName]; ok { - en.URL = serverURL - } else { - ends[serverName] = &config.Endpoint{Name: serverName, URL: serverURL} - } - } - } - for _, v := range ends { - res = append(res, v) - } - return -} diff --git a/discover.v2/discover_test.go b/discover.v2/discover_test.go deleted file mode 100644 index 0930f29be..000000000 --- a/discover.v2/discover_test.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "github.com/goodrain/rainbond/discover/config" - "testing" - - etcdutil "github.com/goodrain/rainbond/util/etcd" - "github.com/sirupsen/logrus" -) - -func TestAddUpdateProject(t *testing.T) { - etcdClientArgs := &etcdutil.ClientArgs{Endpoints: []string{"127.0.0.1:2379"}} - discover, err := GetDiscover(config.DiscoverConfig{ - EtcdClientArgs: etcdClientArgs, - }) - if err != nil { - t.Fatal(err) - } - defer discover.Stop() - discover.AddUpdateProject("test", callbackupdate{}) -} -func TestAddProject(t *testing.T) { - etcdClientArgs := &etcdutil.ClientArgs{Endpoints: []string{"127.0.0.1:2379"}} - discover, err := GetDiscover(config.DiscoverConfig{ - EtcdClientArgs: etcdClientArgs, - }) - if err != nil { - t.Fatal(err) - } - defer discover.Stop() - discover.AddProject("test", callback{}) -} - -type callbackupdate struct { - callback -} - -func (c callbackupdate) UpdateEndpoints(operation config.Operation, endpoints ...*config.Endpoint) { - logrus.Info(operation, "////", endpoints) -} - -type callback struct { -} - -func (c callback) UpdateEndpoints(endpoints ...*config.Endpoint) { - for _, en := range endpoints { - logrus.Infof("%+v", en) - } -} - -//when watch occurred error,will exec this method -func (c callback) Error(err error) { - logrus.Error(err.Error()) -} diff --git a/discover.v2/k8s_discover.go b/discover.v2/k8s_discover.go index 110c4a0f4..2b1a73b77 100644 --- a/discover.v2/k8s_discover.go +++ b/discover.v2/k8s_discover.go @@ -15,7 +15,7 @@ import ( "k8s.io/client-go/tools/cache" "github.com/goodrain/rainbond/cmd/node-proxy/option" - "github.com/goodrain/rainbond/discover/config" + "github.com/goodrain/rainbond/discover.v2/config" ) type k8sDiscover struct { diff --git a/discover.v2/k8s_discover_test.go b/discover.v2/k8s_discover_test.go index abe5a6109..d6f033352 100644 --- a/discover.v2/k8s_discover_test.go +++ b/discover.v2/k8s_discover_test.go @@ -7,7 +7,7 @@ import ( "time" "github.com/goodrain/rainbond/cmd/node-proxy/option" - "github.com/goodrain/rainbond/discover/config" + "github.com/goodrain/rainbond/discover.v2/config" "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" diff --git a/discover.v2/register.go b/discover.v2/register.go deleted file mode 100644 index c4ab1ce1f..000000000 --- a/discover.v2/register.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discover - -import ( - "context" - "fmt" - "sync" - "time" - - "github.com/coreos/etcd/clientv3" - client "github.com/coreos/etcd/clientv3" - "github.com/goodrain/rainbond/util" - etcdutil "github.com/goodrain/rainbond/util/etcd" - grpcutil "github.com/goodrain/rainbond/util/grpc" - "github.com/sirupsen/logrus" - "google.golang.org/grpc/naming" -) - -//KeepAlive 服务注册 -type KeepAlive struct { - cancel context.CancelFunc - EtcdClientArgs *etcdutil.ClientArgs - ServerName string - HostName string - Endpoint string - TTL int64 - LID clientv3.LeaseID - Done chan struct{} - etcdClient *client.Client - gRPCResolver *grpcutil.GRPCResolver - once sync.Once -} - -//CreateKeepAlive create keepalive for server -func CreateKeepAlive(etcdClientArgs *etcdutil.ClientArgs, ServerName string, Protocol string, HostIP string, Port int) (*KeepAlive, error) { - if ServerName == "" || Port == 0 { - return nil, fmt.Errorf("servername or serverport can not be empty") - } - if HostIP == "" { - ip, err := util.LocalIP() - if err != nil { - logrus.Errorf("get ip failed,details %s", err.Error()) - return nil, err - } - HostIP = ip.String() - } - - ctx, cancel := context.WithCancel(context.Background()) - etcdclient, err := etcdutil.NewClient(ctx, etcdClientArgs) - if err != nil { - cancel() - return nil, err - } - - k := &KeepAlive{ - EtcdClientArgs: etcdClientArgs, - ServerName: ServerName, - Endpoint: fmt.Sprintf("%s:%d", HostIP, Port), - TTL: 5, - Done: make(chan struct{}), - etcdClient: etcdclient, - cancel: cancel, - } - if Protocol == "" { - k.Endpoint = fmt.Sprintf("%s:%d", HostIP, Port) - } else { - k.Endpoint = fmt.Sprintf("%s://%s:%d", Protocol, HostIP, Port) - } - return k, nil -} - -//Start 开始 -func (k *KeepAlive) Start() error { - duration := time.Duration(k.TTL) * time.Second - timer := time.NewTimer(duration) - - go func() { - for { - select { - case <-k.Done: - return - case <-timer.C: - if k.LID > 0 { - func() { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - defer timer.Reset(duration) - _, err := k.etcdClient.KeepAliveOnce(ctx, k.LID) - if err == nil { - return - } - logrus.Warnf("%s lid[%x] keepAlive err: %s, try to reset...", k.Endpoint, k.LID, err.Error()) - k.LID = 0 - }() - } else { - if err := k.reg(); err != nil { - logrus.Warnf("%s set lid err: %s, try to reset after %d seconds...", k.Endpoint, err.Error(), k.TTL) - } else { - logrus.Infof("%s set lid[%x] success", k.Endpoint, k.LID) - } - timer.Reset(duration) - } - } - } - }() - return nil -} - -func (k *KeepAlive) etcdKey() string { - return fmt.Sprintf("/rainbond/discover/%s", k.ServerName) -} - -func (k *KeepAlive) reg() error { - k.gRPCResolver = &grpcutil.GRPCResolver{Client: k.etcdClient} - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - resp, err := k.etcdClient.Grant(ctx, k.TTL+3) - if err != nil { - return err - } - if err := k.gRPCResolver.Update(ctx, k.etcdKey(), naming.Update{Op: naming.Add, Addr: k.Endpoint}, clientv3.WithLease(resp.ID)); err != nil { - return err - } - logrus.Infof("Register a %s server endpoint %s to cluster", k.ServerName, k.Endpoint) - k.LID = resp.ID - return nil -} - -//Stop 结束 -func (k *KeepAlive) Stop() { - k.once.Do(func() { - close(k.Done) - k.cancel() - - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - if k.gRPCResolver != nil { - if err := k.gRPCResolver.Update(ctx, k.etcdKey(), naming.Update{Op: naming.Delete, Addr: k.Endpoint}); err != nil { - logrus.Errorf("cancel %s server endpoint %s from etcd error %s", k.ServerName, k.Endpoint, err.Error()) - } else { - logrus.Infof("cancel %s server endpoint %s from etcd", k.ServerName, k.Endpoint) - } - } - }) -} diff --git a/discover/config/config.go b/discover/config/config.go deleted file mode 100644 index 45028b694..000000000 --- a/discover/config/config.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package config - -import "context" -import etcdutil "github.com/goodrain/rainbond/util/etcd" - -//Operation 实例操作类型 -type Operation int - -const ( - // ADD add operation - ADD Operation = iota - // DELETE delete operation - DELETE - // UPDATE update operation - UPDATE - // SYNC sync operation - SYNC -) - -//DiscoverConfig discover config -type DiscoverConfig struct { - Ctx context.Context - EtcdClientArgs *etcdutil.ClientArgs -} - -// Endpoint endpoint -type Endpoint struct { - Name string `json:"name"` - URL string `json:"url"` - Weight int `json:"weight"` - Mode int `json:"-"` //0 表示URL变化,1表示Weight变化 ,2表示全变化 -} diff --git a/monitor/utils/utils.go b/monitor/utils/utils.go index 0dd0e43ac..19c91eec0 100644 --- a/monitor/utils/utils.go +++ b/monitor/utils/utils.go @@ -25,7 +25,7 @@ import ( "strings" "syscall" - "github.com/goodrain/rainbond/discover/config" + "github.com/goodrain/rainbond/discover.v2/config" "github.com/sirupsen/logrus" ) diff --git a/mq/client/client.go b/mq/client/client.go index ced72bde1..87d9fafa4 100644 --- a/mq/client/client.go +++ b/mq/client/client.go @@ -24,8 +24,6 @@ import ( "time" "github.com/goodrain/rainbond/mq/api/grpc/pb" - etcdutil "github.com/goodrain/rainbond/util/etcd" - grpcutil "github.com/goodrain/rainbond/util/grpc" "github.com/sirupsen/logrus" context "golang.org/x/net/context" grpc "google.golang.org/grpc" @@ -54,26 +52,13 @@ type mqClient struct { } //NewMqClient new a mq client -func NewMqClient(etcdClientArgs *etcdutil.ClientArgs, defaultserver string) (MQClient, error) { +func NewMqClient(defaultserver string) (MQClient, error) { ctx, cancel := context.WithCancel(context.Background()) var conn *grpc.ClientConn - if etcdClientArgs != nil && etcdClientArgs.Endpoints != nil && len(defaultserver) > 1 { - c, err := etcdutil.NewClient(ctx, etcdClientArgs) - if err != nil { - return nil, err - } - r := &grpcutil.GRPCResolver{Client: c} - b := grpc.RoundRobin(r) - conn, err = grpc.DialContext(ctx, "/rainbond/discover/rainbond_mq", grpc.WithBalancer(b), grpc.WithInsecure()) - if err != nil { - return nil, err - } - } else { - var err error - conn, err = grpc.DialContext(ctx, defaultserver, grpc.WithInsecure()) - if err != nil { - return nil, err - } + var err error + conn, err = grpc.DialContext(ctx, defaultserver, grpc.WithInsecure()) + if err != nil { + return nil, err } cli := pb.NewTaskQueueClient(conn) client := &mqClient{ diff --git a/node/initiate/host.go b/node/initiate/host.go index 7c5da1704..eae314fdd 100644 --- a/node/initiate/host.go +++ b/node/initiate/host.go @@ -21,12 +21,11 @@ package initiate import ( - "context" "errors" "github.com/goodrain/rainbond/cmd/node-proxy/option" discover "github.com/goodrain/rainbond/discover.v2" - "github.com/goodrain/rainbond/discover/config" + "github.com/goodrain/rainbond/discover.v2/config" "github.com/goodrain/rainbond/util" "github.com/sirupsen/logrus" ) @@ -59,7 +58,6 @@ func NewHostManager(cfg *option.Conf, discover discover.Discover) (HostManager, } type hostManager struct { - ctx context.Context cfg *option.Conf discover discover.Discover hostCallback *hostCallback @@ -87,8 +85,9 @@ func (h *hostManager) Start() { logrus.Warningf("flush hosts file: %v", err) } return + } else { + h.discover.AddProject("rbd-gateway", h.hostCallback) } - h.discover.AddProject("rbd-gateway", h.hostCallback) } type hostCallback struct { diff --git a/util/license/license.go b/util/license/license.go deleted file mode 100644 index d06acc99e..000000000 --- a/util/license/license.go +++ /dev/null @@ -1,164 +0,0 @@ -// RAINBOND, Application Management Platform -// Copyright (C) 2014-2017 Goodrain Co., Ltd. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package license - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "os" - "plugin" - "strconv" - - "github.com/sirupsen/logrus" -) - -var enterprise = "false" - -// LicInfo license information -type LicInfo struct { - LicKey string `json:"license_key"` - Code string `json:"code"` - Company string `json:"company"` - Node int64 `json:"node"` - CPU int64 `json:"cpu"` - Memory int64 `json:"memory"` - Tenant int64 `json:"tenant"` - EndTime string `json:"end_time"` - StartTime string `json:"start_time"` - DataCenter int64 `json:"data_center"` - ModuleList []string `json:"module_list"` -} - -func isEnterprise() bool { - res, err := strconv.ParseBool(enterprise) - if err != nil { - logrus.Warningf("enterprise: %s; error parsing 'string' to 'bool': %v", enterprise, err) - } - return res -} - -func readFromFile(lfile string) (string, error) { - _, err := os.Stat(lfile) - if err != nil { - logrus.Errorf("license file is incorrect: %v", err) - return "", err - } - bytes, err := ioutil.ReadFile(lfile) - if err != nil { - logrus.Errorf("license file: %s; error reading license file: %v", lfile, err) - return "", err - } - return string(bytes), nil -} - -// VerifyTime verifies the time in the license. -func VerifyTime(licPath, licSoPath string) bool { - if !isEnterprise() { - return true - } - lic, err := readFromFile(licPath) - if err != nil { - logrus.Errorf("failed to read license from file: %v", err) - return false - } - p, err := plugin.Open(licSoPath) - if err != nil { - logrus.Errorf("license.so path: %s; error opening license.so: %v", licSoPath, err) - return false - } - f, err := p.Lookup("VerifyTime") - if err != nil { - logrus.Errorf("method 'VerifyTime'; error looking up func: %v", err) - return false - } - return f.(func(string) bool)(lic) -} - -// VerifyNodes verifies the number of the nodes in the license. -func VerifyNodes(licPath, licSoPath string, nodeNums int) bool { - if !isEnterprise() { - return true - } - lic, err := readFromFile(licPath) - if err != nil { - logrus.Errorf("failed to read license from file: %v", err) - return false - } - p, err := plugin.Open(licSoPath) - if err != nil { - logrus.Errorf("license.so path: %s; error opening license.so: %v", licSoPath, err) - return false - } - f, err := p.Lookup("VerifyNodes") - if err != nil { - logrus.Errorf("method 'VerifyNodes'; error looking up func: %v", err) - return false - } - return f.(func(string, int) bool)(lic, nodeNums) -} - -// GetLicInfo - -func GetLicInfo(licPath, licSoPath string) (*LicInfo, error) { - if !isEnterprise() { - return nil, nil - } - lic, err := readFromFile(licPath) - if err != nil { - logrus.Errorf("failed to read license from file: %v", err) - return nil, fmt.Errorf("failed to read license from file: %v", err) - } - p, err := plugin.Open(licSoPath) - if err != nil { - logrus.Errorf("license.so path: %s; error opening license.so: %v", licSoPath, err) - return nil, fmt.Errorf("license.so path: %s; error opening license.so: %v", licSoPath, err) - } - - f, err := p.Lookup("Decrypt") - if err != nil { - logrus.Errorf("method 'Decrypt'; error looking up func: %v", err) - return nil, fmt.Errorf("method 'Decrypt'; error looking up func: %v", err) - } - bytes, err := f.(func(string) ([]byte, error))(lic) - var licInfo LicInfo - if err := json.Unmarshal(bytes, &licInfo); err != nil { - logrus.Errorf("error unmarshalling license: %v", err) - return nil, fmt.Errorf("error unmarshalling license: %v", err) - } - return &licInfo, nil -} - -// GenLicKey - -func GenLicKey(licSoPath string) (string, error) { - if !isEnterprise() { - return "", nil - } - p, err := plugin.Open(licSoPath) - if err != nil { - logrus.Errorf("license.so path: %s; error opening license.so: %v", licSoPath, err) - return "", fmt.Errorf("license.so path: %s; error opening license.so: %v", licSoPath, err) - } - - f, err := p.Lookup("GenLicKey") - if err != nil { - logrus.Errorf("method 'GenLicKey'; error looking up func: %v", err) - return "", fmt.Errorf("method 'GenLicKey'; error looking up func: %v", err) - } - return f.(func() (string, error))() -} diff --git a/util/license/license_test.go b/util/license/license_test.go deleted file mode 100644 index 86dc8e872..000000000 --- a/util/license/license_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package license - -import "testing" - -func TestVerifyTime(t *testing.T) { - tests := []struct { - name, licPath, licSoPath string - exp bool - }{ - {name: "dummy license", licPath: "dummy license", licSoPath: "/opt/rainbond/etc/license/license.so", exp: false}, - {name: "wrong license", licPath: "testdata/wrong_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", exp: false}, - {name: "wrong license.so", licPath: "testdata/ok_license.yb", licSoPath: "dummy license.so", exp: false}, - {name: "ok", licPath: "testdata/ok_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", exp: true}, - {name: "expire", licPath: "testdata/expire_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", exp: false}, - } - for idx := range tests { - tc := tests[idx] - t.Run(tc.name, func(t *testing.T) { - if res := VerifyTime(tc.licPath, tc.licSoPath); res != tc.exp { - t.Errorf("Expected %v, but return %v", tc.exp, res) - } - }) - } -} - -func TestVerifyNodes(t *testing.T) { - tests := []struct { - name, licPath, licSoPath string - curNodes int - exp bool - }{ - {name: "dummy license", licPath: "dummy license", licSoPath: "/opt/rainbond/etc/license/license.so", exp: false}, - {name: "wrong license", licPath: "testdata/wrong_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", exp: false}, - {name: "wrong license.so", licPath: "testdata/ok_license.yb", licSoPath: "dummy license.so", exp: false}, - {name: "ok", licPath: "testdata/ok_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", curNodes: 998, exp: true}, - {name: "expire", licPath: "testdata/expire_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", exp: false}, - {name: "wrong node numbers", licPath: "testdata/ok_license.yb", licSoPath: "/opt/rainbond/etc/license/license.so", curNodes: 999, exp: false}, - } - for idx := range tests { - tc := tests[idx] - t.Run(tc.name, func(t *testing.T) { - if res := VerifyNodes(tc.licPath, tc.licSoPath, tc.curNodes); res != tc.exp { - t.Errorf("Expected %v, but return %v", tc.exp, res) - } - }) - } -} - -func TestGetLicInfo(t *testing.T) { - licPath := "testdata/ok_license.yb" - licSoPath := "/opt/rainbond/etc/license/license.so" - licInfo, err := GetLicInfo(licPath, licSoPath) - if err != nil { - t.Error(err) - } - t.Logf("%+v", licInfo) -} diff --git a/util/license/testdata/expire_license.yb b/util/license/testdata/expire_license.yb deleted file mode 100644 index 8495abd83..000000000 --- a/util/license/testdata/expire_license.yb +++ /dev/null @@ -1 +0,0 @@ -JYW3j1nNcSFUWsH-ghPkDvaHXPOUsqLEHFn9QAP7n6esZl3UJ5RMeWt_CPy1bL7V5g_zDAtGVf3Z84M-A6uIeke2OVrhT02gDhE0nkkP3607qIIzgtRm9dR-qxGlgZpdA6lGX3KvOtxd90Gu9uBAPTozum4cy8l4cuW7Xu7Ac_Jx1fwx_i0GmorqCpmpboRqfxvhjQ5BrUaYMiaqyOtu9CNwm8T_AY9qqKO4afwTs6Q7XJisliJCB5v-TcNYVzDUU5rk1oRZtQWDbfJlL1kwUYI_PfanyergX44gc7U445b9PiAB3A \ No newline at end of file diff --git a/util/license/testdata/ok_license.yb b/util/license/testdata/ok_license.yb deleted file mode 100644 index d7592e661..000000000 --- a/util/license/testdata/ok_license.yb +++ /dev/null @@ -1 +0,0 @@ -NuSDevakyxmuVAaOknLanRsSIAK6xJ-SFZx9H1bWzJC71e30J7x-p-gntGveasg5FJpXPRELr5voa-P0qD_jMG2xq_64KDtrv3W-J5_SvKi467OM06n8dnwL_-iiisV0m6TR6lKfbUDMr1rIeCTFPthNiUIlzsVnaLWk_6i8O9p1jF8N6mRsLhzKHT1zX_IgoWeqT0FdTMtVL8F0Xa2seZrHKeJ_PqWMOsgsv3EOWHD7Ig0C2-GQYZbiUe23w4if4pcU0hQKfgcTjCW1bt2TS_ccF3EMSpoMxq0jTKQQsbz57TzJ2w \ No newline at end of file diff --git a/util/license/testdata/wrong_license.yb b/util/license/testdata/wrong_license.yb deleted file mode 100644 index 8d65f10b2..000000000 --- a/util/license/testdata/wrong_license.yb +++ /dev/null @@ -1 +0,0 @@ -wrong license \ No newline at end of file diff --git a/worker/client/client.go b/worker/client/client.go index 1c428c4bb..b462bf235 100644 --- a/worker/client/client.go +++ b/worker/client/client.go @@ -25,8 +25,6 @@ import ( "github.com/goodrain/rainbond/db/model" "github.com/goodrain/rainbond/util" - etcdutil "github.com/goodrain/rainbond/util/etcd" - grpcutil "github.com/goodrain/rainbond/util/grpc" v1 "github.com/goodrain/rainbond/worker/appm/types/v1" "github.com/goodrain/rainbond/worker/server/pb" "github.com/sirupsen/logrus" @@ -44,11 +42,7 @@ type AppRuntimeSyncClient struct { //AppRuntimeSyncClientConf client conf type AppRuntimeSyncClientConf struct { NonBlock bool - EtcdEndpoints []string - EtcdCaFile string - EtcdCertFile string - EtcdKeyFile string - DefaultServerAddress []string + DefaultServerAddress string } //NewClient new client @@ -57,26 +51,14 @@ func NewClient(ctx context.Context, conf AppRuntimeSyncClientConf) (*AppRuntimeS var arsc AppRuntimeSyncClient arsc.AppRuntimeSyncClientConf = conf arsc.ctx = ctx - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: conf.EtcdEndpoints, - CaFile: conf.EtcdCaFile, - CertFile: conf.EtcdCertFile, - KeyFile: conf.EtcdKeyFile, - } - c, err := etcdutil.NewClient(ctx, etcdClientArgs) - if err != nil { - return nil, err - } - r := &grpcutil.GRPCResolver{Client: c} - b := grpc.RoundRobin(r) dialOpts := []grpc.DialOption{ - grpc.WithBalancer(b), grpc.WithInsecure(), } if !conf.NonBlock { dialOpts = append(dialOpts, grpc.WithBlock()) } - arsc.cc, err = grpc.DialContext(ctx, "/rainbond/discover/app_sync_runtime_server", dialOpts...) + var err error + arsc.cc, err = grpc.DialContext(ctx, conf.DefaultServerAddress, dialOpts...) if err != nil { return nil, err } diff --git a/worker/discover/manager.go b/worker/discover/manager.go index a3f93e136..543a4cefd 100644 --- a/worker/discover/manager.go +++ b/worker/discover/manager.go @@ -27,7 +27,6 @@ import ( "github.com/goodrain/rainbond/cmd/worker/option" "github.com/goodrain/rainbond/mq/api/grpc/pb" "github.com/goodrain/rainbond/mq/client" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/goodrain/rainbond/worker/appm/controller" "github.com/goodrain/rainbond/worker/appm/store" "github.com/goodrain/rainbond/worker/discover/model" @@ -74,13 +73,7 @@ func NewTaskManager(cfg option.Config, //Start 启动 func (t *TaskManager) Start() error { - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: t.config.EtcdEndPoints, - CaFile: t.config.EtcdCaFile, - CertFile: t.config.EtcdCertFile, - KeyFile: t.config.EtcdKeyFile, - } - client, err := client.NewMqClient(etcdClientArgs, t.config.MQAPI) + client, err := client.NewMqClient(t.config.MQAPI) if err != nil { logrus.Errorf("new Mq client error, %v", err) healthStatus["status"] = "unusual" diff --git a/worker/server/server.go b/worker/server/server.go index bd3f729dc..21f8885b0 100644 --- a/worker/server/server.go +++ b/worker/server/server.go @@ -29,12 +29,10 @@ import ( "github.com/goodrain/rainbond/cmd/worker/option" "github.com/goodrain/rainbond/db" "github.com/goodrain/rainbond/db/model" - discover "github.com/goodrain/rainbond/discover.v2" "github.com/goodrain/rainbond/pkg/apis/rainbond/v1alpha1" "github.com/goodrain/rainbond/pkg/helm" "github.com/goodrain/rainbond/util" "github.com/goodrain/rainbond/util/constants" - etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" "github.com/goodrain/rainbond/worker/appm/store" "github.com/goodrain/rainbond/worker/appm/thirdparty/discovery" @@ -64,7 +62,6 @@ type RuntimeServer struct { conf option.Config server *grpc.Server hostIP string - keepalive *discover.KeepAlive clientset kubernetes.Interface updateCh *channels.RingChannel } @@ -462,20 +459,7 @@ func (r *RuntimeServer) registServer() error { return nil }, time.Second*3) } - if r.keepalive == nil { - etcdClientArgs := &etcdutil.ClientArgs{ - Endpoints: r.conf.EtcdEndPoints, - CaFile: r.conf.EtcdCaFile, - CertFile: r.conf.EtcdCertFile, - KeyFile: r.conf.EtcdKeyFile, - } - keepalive, err := discover.CreateKeepAlive(etcdClientArgs, "app_sync_runtime_server", "", r.conf.HostIP, r.conf.ServerPort) - if err != nil { - return fmt.Errorf("create app sync server keepalive error,%s", err.Error()) - } - r.keepalive = keepalive - } - return r.keepalive.Start() + return nil } // ListThirdPartyEndpoints returns a collection of third-part endpoints. From 638c206a1a537562a00637531a8c8b3971ab86d5 Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Thu, 26 Aug 2021 18:08:41 +0800 Subject: [PATCH 7/8] fix code format --- api/region/cluster.go | 1 + api/server/api.go | 1 + api/webcli/app/app.go | 15 +++++++-------- check.sh | 9 ++++++--- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/api/region/cluster.go b/api/region/cluster.go index 3894776cc..70e598cf1 100644 --- a/api/region/cluster.go +++ b/api/region/cluster.go @@ -23,6 +23,7 @@ import ( utilhttp "github.com/goodrain/rainbond/util/http" ) +//ClusterResource cluster resource model type ClusterResource struct { AllNode int `json:"all_node"` NotReadyNode int `json:"notready_node"` diff --git a/api/server/api.go b/api/server/api.go index 2a89e177f..a6d8e8f0e 100644 --- a/api/server/api.go +++ b/api/server/api.go @@ -67,6 +67,7 @@ type Manager struct { websocketModuls map[string]CustomModule } +//CustomModule custom module set route for api type CustomModule interface { SetRoute(*chi.Mux) error } diff --git a/api/webcli/app/app.go b/api/webcli/app/app.go index 296733786..a00d7fdf1 100644 --- a/api/webcli/app/app.go +++ b/api/webcli/app/app.go @@ -43,7 +43,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" - restclient "k8s.io/client-go/rest" ) //ExecuteCommandTotal metric @@ -61,9 +60,9 @@ type App struct { titleTemplate *template.Template onceMutex *umutex.UnblockingMutex - restClient *restclient.RESTClient + restClient *rest.RESTClient coreClient *kubernetes.Clientset - config *restclient.Config + config *rest.Config } //Options options @@ -131,7 +130,7 @@ func New(options *Options) (*App, error) { return app, nil } -//Run Run +//SetRoute - func (app *App) SetRoute(route *chi.Mux) error { route.Handle("/docker_console", http.HandlerFunc(app.handleWS)) return nil @@ -141,7 +140,7 @@ func (app *App) handleWS(w http.ResponseWriter, r *http.Request) { logrus.Printf("New client connected: %s", r.RemoteAddr) if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) + http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } @@ -163,7 +162,7 @@ func (app *App) handleWS(w http.ResponseWriter, r *http.Request) { var init InitMessage - err = json.Unmarshal(stream, &init) + _ = json.Unmarshal(stream, &init) //todo auth if init.PodName == "" { @@ -238,7 +237,7 @@ func (app *App) createKubeClient() error { } SetConfigDefaults(config) app.config = config - restClient, err := restclient.RESTClientFor(config) + restClient, err := rest.RESTClientFor(config) if err != nil { return err } @@ -285,7 +284,7 @@ func (app *App) GetContainerArgs(namespace, podname, containerName string) (stri } //NewRequest new exec request -func (app *App) NewRequest(podName, namespace, containerName string, command []string) *restclient.Request { +func (app *App) NewRequest(podName, namespace, containerName string, command []string) *rest.Request { // TODO: consider abstracting into a client invocation or client helper req := app.restClient.Post(). Resource("pods"). diff --git a/check.sh b/check.sh index b2a999571..c7113e01d 100755 --- a/check.sh +++ b/check.sh @@ -1,5 +1,8 @@ -#!/bin/sh -pull_number=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH") +#!/bin/bash + +if [ -z $pull_number ]; then + pull_number=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH") +fi URL="https://api.github.com/repos/goodrain/rainbond/pulls/${pull_number}/files" @@ -11,4 +14,4 @@ for file in ${CHANGED_MARKDOWN_FILES}; do golint -set_exit_status=true ${file} || exit 1 done -echo "code golint check success" \ No newline at end of file +echo "code golint check success" From aa5a2c6af3f58667e7dc10d1f9ad5046aad74125 Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Mon, 30 Aug 2021 11:44:47 +0800 Subject: [PATCH 8/8] remove some unuseful code --- api/db/db.go | 4 +- api/handler/handler.go | 3 +- api/handler/service.go | 10 ++- api/handler/service_operation.go | 2 +- api/metric/metric.go | 2 +- builder/exector/exector_test.go | 2 - builder/parser/discovery/discovery.go | 54 -------------- builder/parser/discovery/etcd.go | 103 -------------------------- builder/parser/discovery/etcd_test.go | 19 ----- builder/parser/parser.go | 3 - builder/parser/third_party_service.go | 40 +--------- 11 files changed, 13 insertions(+), 229 deletions(-) delete mode 100644 builder/parser/discovery/discovery.go delete mode 100644 builder/parser/discovery/etcd.go delete mode 100644 builder/parser/discovery/etcd_test.go diff --git a/api/db/db.go b/api/db/db.go index edef48b66..406f44a8a 100644 --- a/api/db/db.go +++ b/api/db/db.go @@ -31,7 +31,6 @@ import ( "github.com/goodrain/rainbond/event" "github.com/goodrain/rainbond/mq/api/grpc/pb" "github.com/goodrain/rainbond/mq/client" - etcdutil "github.com/goodrain/rainbond/util/etcd" "github.com/goodrain/rainbond/worker/discover/model" "github.com/jinzhu/gorm" "github.com/sirupsen/logrus" @@ -86,8 +85,7 @@ func CreateEventManager(conf option.Config) error { //MQManager mq manager type MQManager struct { - EtcdClientArgs *etcdutil.ClientArgs - DefaultServer string + DefaultServer string } //NewMQManager new mq manager diff --git a/api/handler/handler.go b/api/handler/handler.go index 6f7ac6033..6c872b368 100644 --- a/api/handler/handler.go +++ b/api/handler/handler.go @@ -44,8 +44,7 @@ func InitHandle(conf option.Config, k8sClient k8sclient.Client, ) error { mq := api_db.MQManager{ - EtcdClientArgs: etcdClientArgs, - DefaultServer: conf.MQAPI, + DefaultServer: conf.MQAPI, } mqClient, errMQ := mq.NewMQManager() if errMQ != nil { diff --git a/api/handler/service.go b/api/handler/service.go index dbcf796e5..decfc406b 100644 --- a/api/handler/service.go +++ b/api/handler/service.go @@ -2347,10 +2347,12 @@ func (s *ServiceAction) ListVersionInfo(serviceID string) (*api_model.BuildListR for idx := range bversions { bv := bversions[idx] if bv.Kind == "build_from_image" || bv.Kind == "build_from_market_image" { - image := parser.ParseImageName(bv.RepoURL) - bv.ImageDomain = image.GetDomain() - bv.ImageRepo = image.GetRepostory() - bv.ImageTag = image.GetTag() + if bv.RepoURL != "" { + image := parser.ParseImageName(bv.RepoURL) + bv.ImageDomain = image.GetDomain() + bv.ImageRepo = image.GetRepostory() + bv.ImageTag = image.GetTag() + } } } result := &api_model.BuildListRespVO{ diff --git a/api/handler/service_operation.go b/api/handler/service_operation.go index d87072b00..b5a6ab9b9 100644 --- a/api/handler/service_operation.go +++ b/api/handler/service_operation.go @@ -60,6 +60,7 @@ func CreateOperationHandler(mqCli gclient.MQClient) *OperationHandler { func (o *OperationHandler) Build(batchOpReq model.ComponentOpReq) (*model.ComponentOpResult, error) { res := batchOpReq.BatchOpFailureItem() if err := o.build(batchOpReq); err != nil { + logrus.Errorf("build component failure %s", err.Error()) res.ErrMsg = err.Error() } else { res.Success() @@ -279,7 +280,6 @@ func (o *OperationHandler) buildFromMarketSlug(r *model.ComponentBuildReq, servi return o.sendBuildTopic(service.ServiceID, "build_from_market_slug", body) } func (o *OperationHandler) sendBuildTopic(serviceID, taskType string, body map[string]interface{}) error { - topic := gclient.BuilderTopic if o.isWindowsService(serviceID) { topic = gclient.WindowsBuilderTopic diff --git a/api/metric/metric.go b/api/metric/metric.go index e91f40a5a..62de632ea 100644 --- a/api/metric/metric.go +++ b/api/metric/metric.go @@ -30,7 +30,7 @@ import ( // Metric name parts. const ( // Namespace for all metrics. - namespace = "rbd_api" + namespace = "region_api" // Subsystem(s). exporter = "exporter" ) diff --git a/builder/exector/exector_test.go b/builder/exector/exector_test.go index b1cd577c6..50ab74da7 100644 --- a/builder/exector/exector_test.go +++ b/builder/exector/exector_test.go @@ -35,7 +35,6 @@ import ( "github.com/goodrain/rainbond/mq/api/grpc/pb" mqclient "github.com/goodrain/rainbond/mq/client" - etcdutil "github.com/goodrain/rainbond/util/etcd" k8sutil "github.com/goodrain/rainbond/util/k8s" ) @@ -48,7 +47,6 @@ func Test_exectorManager_buildFromSourceCode(t *testing.T) { RbdNamespace: "rbd-system", MysqlConnectionInfo: "EeM2oc:lee7OhQu@tcp(192.168.2.203:3306)/region", } - etcdArgs := etcdutil.ClientArgs{Endpoints: conf.EtcdEndPoints} event.NewManager(event.EventConfig{ EventLogServers: conf.EventLogServers, }) diff --git a/builder/parser/discovery/discovery.go b/builder/parser/discovery/discovery.go deleted file mode 100644 index 4ac58c159..000000000 --- a/builder/parser/discovery/discovery.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discovery - -import ( - "strings" -) - -// Discoverier blablabla -type Discoverier interface { - Connect() error - Fetch() ([]*Endpoint, error) - Close() error -} - -// NewDiscoverier creates a new Discoverier -func NewDiscoverier(info *Info) Discoverier { - switch strings.ToUpper(info.Type) { - case "ETCD": - return NewEtcd(info) - } - return nil -} - -// Info holds service discovery center information. -type Info struct { - Type string `json:"type"` - Servers []string `json:"servers"` - Key string `json:"key"` - Username string `json:"username"` - Password string `json:"password"` -} - -// Endpoint holds endpoint and endpoint status(online or offline). -type Endpoint struct { - Ep string `json:"endpoint"` - IsOnline bool `json:"is_online"` -} diff --git a/builder/parser/discovery/etcd.go b/builder/parser/discovery/etcd.go deleted file mode 100644 index f35420ae5..000000000 --- a/builder/parser/discovery/etcd.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discovery - -import ( - "context" - "encoding/json" - "fmt" - "strings" - "time" - - c "github.com/coreos/etcd/clientv3" - "github.com/sirupsen/logrus" -) - -// Etcd implements Discoverier -type etcd struct { - cli *c.Client - endpoints []string - key string - username string - password string -} - -// NewEtcd creates a new Discorvery which implemeted by etcd. -func NewEtcd(info *Info) Discoverier { - // TODO: validate endpoints - return &etcd{ - endpoints: info.Servers, - key: info.Key, - username: info.Username, - password: info.Password, - } -} - -// Connect connects a etcdv3 client with a given configuration. -func (e *etcd) Connect() error { - cli, err := c.New(c.Config{ - Endpoints: e.endpoints, - DialTimeout: 10 * time.Second, - Username: e.username, - Password: e.password, - }) - if err != nil { - logrus.Errorf("Endpoints: %s; error connecting etcd: %v", strings.Join(e.endpoints, ","), err) - return err - } - e.cli = cli - return nil -} - -// Fetch fetches data from Etcd. -func (e *etcd) Fetch() ([]*Endpoint, error) { - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - if e.cli == nil { - return nil, fmt.Errorf("can't fetching data from etcd without etcdv3 client") - } - - resp, err := e.cli.Get(ctx, e.key, c.WithPrefix()) - if err != nil { - return nil, fmt.Errorf("error fetching endpoints form etcd: %v", err) - } - if resp == nil { - return nil, fmt.Errorf("error fetching endpoints form etcd: empty GetResponse") - } - - var res []*Endpoint - for _, kv := range resp.Kvs { - var ep Endpoint - if err := json.Unmarshal(kv.Value, &ep); err != nil { - return nil, fmt.Errorf("error parsing the data from etcd: %v", err) - } - ep.Ep = strings.Replace(string(kv.Key), e.key+"/", "", -1) - res = append(res, &ep) - } - return res, nil -} - -// Close shuts down the client's etcd connections. -func (e *etcd) Close() error { - if e.cli != nil { - return nil - } - return e.cli.Close() -} diff --git a/builder/parser/discovery/etcd_test.go b/builder/parser/discovery/etcd_test.go deleted file mode 100644 index dd328f6e7..000000000 --- a/builder/parser/discovery/etcd_test.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2014-2018 Goodrain Co., Ltd. -// RAINBOND, Application Management Platform - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. For any non-GPL usage of Rainbond, -// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. -// must be obtained first. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package discovery diff --git a/builder/parser/parser.go b/builder/parser/parser.go index ad7f6d4bf..f0c1c2af5 100644 --- a/builder/parser/parser.go +++ b/builder/parser/parser.go @@ -26,7 +26,6 @@ import ( "github.com/docker/distribution/reference" "github.com/goodrain/rainbond/builder/parser/code" - "github.com/goodrain/rainbond/builder/parser/discovery" "github.com/goodrain/rainbond/builder/parser/types" "github.com/goodrain/rainbond/builder/sources" "github.com/sirupsen/logrus" @@ -184,8 +183,6 @@ type ServiceInfo struct { Memory int `json:"memory,omitempty"` Lang code.Lang `json:"language,omitempty"` ImageAlias string `json:"image_alias,omitempty"` - //For third party services - Endpoints []*discovery.Endpoint `json:"endpoints,omitempty"` //os type,default linux OS string `json:"os"` Name string `json:"name,omitempty"` // module name diff --git a/builder/parser/third_party_service.go b/builder/parser/third_party_service.go index 225e55942..2c3feb0a3 100644 --- a/builder/parser/third_party_service.go +++ b/builder/parser/third_party_service.go @@ -19,22 +19,16 @@ package parser import ( - "encoding/json" "strings" - "github.com/goodrain/rainbond/builder/parser/discovery" "github.com/goodrain/rainbond/event" - "github.com/sirupsen/logrus" ) // ThirdPartyServiceParse is one of the implematation of parser.Parser type ThirdPartyServiceParse struct { sourceBody string - - endpoints []*discovery.Endpoint - - errors []ParseError - logger event.Logger + errors []ParseError + logger event.Logger } // CreateThirdPartyServiceParse creates a new ThirdPartyServiceParse. @@ -53,41 +47,13 @@ func (t *ThirdPartyServiceParse) Parse() ParseErrorList { return nil } - var info discovery.Info - if err := json.Unmarshal([]byte(t.sourceBody), &info); err != nil { - logrus.Errorf("wrong source_body: %v, source_body: %s", err, t.sourceBody) - t.logger.Error("第三方检查输入参数错误", map[string]string{"step": "parse"}) - t.errors = append(t.errors, ParseError{FatalError, "wrong input data", ""}) - return t.errors - } - // TODO: validate data - - d := discovery.NewDiscoverier(&info) - err := d.Connect() - if err != nil { - t.logger.Error("error connecting discovery center", map[string]string{"step": "parse"}) - t.errors = append(t.errors, ParseError{FatalError, "error connecting discovery center", "please make sure " + - "the configuration is right and the discovery center is working."}) - return t.errors - } - defer d.Close() - eps, err := d.Fetch() - if err != nil { - t.logger.Error("error fetching endpints", map[string]string{"step": "parse"}) - t.errors = append(t.errors, ParseError{FatalError, "error fetching endpints", "please check the given key."}) - return t.errors - } - t.endpoints = eps - return nil } // GetServiceInfo returns information of third-party service from // the receiver *ThirdPartyServiceParse. func (t *ThirdPartyServiceParse) GetServiceInfo() []ServiceInfo { - serviceInfo := ServiceInfo{ - Endpoints: t.endpoints, - } + serviceInfo := ServiceInfo{} return []ServiceInfo{serviceInfo} }

    AR-Y2ABV8$H{(pwoEqIewEH5%SI8rL5EK6v(V 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

    sym@FDV%UJ)ABb&*Kb!l{1?CIaj&f|5fgI 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

    Z7Q3Vynb)@@?r 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 z≪FC1jP?GPr`%uI)V{F0eBn&~!d3T$XYvd0 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 }8cj?YUS?CcZm=F&H_@ zG%|rw`Ko(ra^c=Y2H&I|?{Im}QPg!r?`wVr^e7zzWYFAN^*bA~D`_uOpoHfK}l8E__%$c-?!~DnoW$XQ!9P!y) zli5d^`ab@%!uMv2sCkGHke~7&4iwvlbG4UAs`k&_XgEMu;ZDsr{WWyeFaAX4w;^Kw zV}$T+Wd9rf)WR3>g>jRGN&kiE%!S#8h53<%h5f^7Eb+xvlf`xa#m(PWV?iXApr$`p zV>K>OjxJFXmf)<*bP~(QOqUq~mYK4anH!f+jxL`fEF)OIvrBwGWBQ#l;5&ELcb>-Y z=SRO^AbjUL^e2en4}pNg{72)8*yxHlVFmfy{72TR!Y}>=>zand@B9g)(KQpo8tR8X zVY+S^ux_2TZriwSNAxEM>rSj2&Jr80rW@`78=hGk-i;f+qZ|H&4K(W}Mq)GAbTc$y zdow(1GqQ0rdUP|Euo=&~^@nP#2cuh=KUZVrnr=S|*e=N0E;_8nDkE%{v+g{V*m-Wc zQxULJm9ycC3>%m(BJsL1av1#>H9 zlTTei)7Nx6@%m;{^5%yeABw+YUz1JUWho_h{&pCWG6xThc3D0HK)jO zgj#gYvHX7vIXL-UyX9}>;NOrEyniDHyVz_0r~`7ZS^3L4pf3MyA}N8YfLI6AjUkS! z1Ih(bj5W-ZmT2O*dV%zwPDzBpb0MIvKvuBzJ!&tWWqPhaUQR&+ZSg#pTe(m{mq+|G zWsb7&twJSD5>38=)kjx4W~?1rH6P5b=BF3hsCtP27eH$T_X`VY9cr}F>6-H7V~TDD zi)iInz%Xz^LXi%=ruL&FC{hW&mo$+}qy-LZC4t#R%8gDRc|l+(ViRN(ftP$fl*nVr zA+2=jNk7Q7_Ytwb{;+50Di(@tnKfoqWGGSj@)*S}X`~pBKH`goit6#)6f{h%W5xjB zO-Z(=2Eoavq)JhIO^iw)OcM{f+?kZu%1V*`s9H`aMy9lJ zsp`41gAOwsL{G^E%Hx&R)xSO1q_aWtp1;(&GU|SfH>NtMpuonfwU2E;0Mx{Po}{{M zBwe}^ijhZxa6YiD%Q*NFi&!8x72s$?oXtlNMg_6&vNNqdKS0K@naM468sdF>__i{)!F>PufG^_T$e zbzUZar2eWw-_vlvC-I_Eco5o?cAejuU3xzJ^jksDhJ`as1sR;jAW7EFTaqM!9A@(w zWTU%q1W>_}@*M*M!SD-YOh!EyYpdCKRHUQHmPu$S*?~1bX%Z!*&ZMPq6?yqmI$1qj zOjW8o(n8vlO8u*}(D7%|a94{UL&zfC_6PW#?=;=>`YHoS@0?FbN0aOZ9zDbSvEYrI zDb=TN;jAG#c)MBt)a{$c37%v!<*r2@8L|53q+W$}V;*0>G%x(oySbe7B|MbSF=ttM z8XChLXl-gwK6(US7kf%N<^-S3QF*@hPHI81eToS~Yzmw?>0*J5m>wtq4fHTn*1ZFN zlRsZ`%#T-!Rsk_Bom&a6%B;kVflaRFe;HA&pGnn^0yGQ-D@fw11ixee!H+RT7W|H{ z0v?RePaAwegoP?bMFX_H59kZ7Ei$ZZwp1# z@t2)c_3_qra(-OP!ZdRsIQ!=N-lFtWK$ix0n`IyDQ7Z~P5>Si319l)tqITfoDbiyU z#1WLr7l0WR2w*O8e?g-|icHzU3kF2JS~Q>KY7l)Db8FJJx7hfxpdZMo+4jx z1eontTLVBVxBTiCJixZ_WaP?YCZ6$UB^w_$_BIU(NZ?J)&g7{1_lOo@UfUtV^nL6| z!sB`~Ni2qkwSNnrET?K8<<{_ueyLsDezV^+Htp#PXkymYctz0S>NCQAA*kY_gEs^| z&r9ufcm)Uv&t(kO^5mrixEVbqc?OfN7_4b31&;gv_qi6tql^eyT4 z)JhIy(8I(cF&`O0aA{ZKgs(I_FfQI%+yZlz30BHTb(4(X&R-QI1M=%a+DBUfC^bLh z7ePR{lbRg0aF3?4jFzl?P++pj`s*^14TqSXP}FmPDJwkkMU~f+N5+Hk;h1hm3VMxcoWxwRZp;yyU?Bjo4BmGMz@+XejR8fNW1-$MH zZBd?^i4#6c{GUtgBqHLPa6%e3RvP9!BX_S2bYCvj_T&~-@<2lHBNF&K>eYd84dGk1 zDFAk6mev?L(KNzFyD-FR#x7k5K)kUW2PI&z3Ab%@8|3X>t0}$olUoyY zmmk?Fv?LcYXs!wwOyEgF&ZcO3-BQ;fKtu{s^p9)WdWO2ZiyDZ(-UXyOJRz#}o}b`{lXFGzIe!4U!X1iVIvK82tluxFidEHoo=1~7H9 zd?Z9Ukd%aYo$IGyhUCjn>^G873ux5W zW**3i^0u+;H8n571}5n#w`gX0Q`&kLYV@M-DC9kV<1W0JQs4bB*8sIQVNky2oFiZ% zvs8%FrzqPla$F~ki7YxIYvfB4_8a6IjP2 z!Lp?xlSc-5kvzc3B^bSTiE3rBs{pV#^w=XW!vL9UCJe0G0@XJ#gRSNKx|vIFZ5;~j zPwm_aDL2hR-s>8OXWB6joN)5yD!IdDD#vNw12cW^Ru;-vlu8`wx3uCCwI;MaSlMFncx&)@&46j$$IBD4RX}V+GaY{fR8D8erP*VUmezBYmq;bABXUcQn22?2 zP1rzuYk)Tlgz{KWvY)8+6I)*uMQFB1=7%C6S`jAd^(3xVkAk!8-qamQIgFsst(!YQ zZ*^J5P9D{Iz^o3WYF2CFEbw{jwu_J1txu)Jiq@yJ(q`78!sSauDuRna+NZ`P-&WT~ zyICZWy70>yVHN6vQP$GMR-tP3t>+wNoFK^@M$Z*>ylesWl&T1X;k)$uW0NIs8Bt(3 zBtfw-G5#?a4rPA*c>06`-oT43{f| zII}(%7j19h`1LZyP>^E5!oAxsuZC-@k!GYK;vACVPZ`0i(+sL>e3+b?)-BOvJKjv= zP3uPpjkU=!SCs%yVUu$YUU7PckZUfH!b zive#-+TWcA+UDCkPJ+75cf1!Pj;nVR5#`|d(`D_HwRQwx)Cd?;0>0J(6TaeMPMwb* zbk0+Demmc}sMNXqplv0(bHTT3DZ1->N!Mz77ZI5Ns_z1S?jqUig7|gUkKYBk-6g?E zP=4zU>h8uYbsuGU55M-Fkp)Co`kuk~J=3@M%o*=bC&U-HZ-SeX7l8y$5wb*EkJ~`>ZqihF$t>J2Z?x_nm3(bK=!> zyw?95^v2y@*DRyoH%8F;b3b}dRf886#4-^2Lk|9RTs?#T#>oRYSnXAHQpRA~XAz(J zLGR%H%mX=C@cy--Zy|#Y70oV2L)WZ^%6_f`8V-5&2RRtWGTd|^2meG$fK9(?wO6^k z)gO$OtQsD6gnphuiTC)av}YX1!Au`JMp%?S^1}L94&~sCk=gpgI-tFgC6>{@Q3q5M zGz9g>1DSa8*d~e*JoP>v9t)JP9LT{8{$os;W6UEbP3y-_?f)zXn|$H)Kahh}o|4Yx zeYvpzh40kY%i@HuS53YW6H!8$U;j`CWPf!;+J9U=b6lZeTxn!nWq(}lmpY(RDk!^8 zx~EjyjYkZBCM7)i&~%Gh&du+Tl;D4_V}Lk*J~eWw+__WM(PYXqb1D%$;yp6u|3eNI zpAI(py&Swh9e--(p7>0H$sgq48SJUqpX6Zw*@Dd3qK3ay2lUU&!7^9wP9Dm^Sy#s9 z59MIbk6*rnRm?iSYrB$g#${%uY++4=B z#Dq}Fm>a> zxVlTpikigrYl{~^5(nez876B6hjQ@zowXkJ^$p&&PTU%c*?Ks3{VtoNLL8Gd&H6Fg z4d+8S_}uGt&&3O_jlYwFok|HC5kZ@wKjh#>rbxo3@2ll|i{`gX4@n8CC;b|?GDkl| zKx3~{4^?%KSsdMJL6O#1O&eqi&`X>xAZ$H#q<*xRmZ2K=2eUCXZ%#5$n((jga?-PtoH&5M^i9d}!3_=dLF_Nn0wSsAUPdz)8@6YKjIGgO%G7okbYA4V>-6NP1=!tLC9EDb^ z(pCrT6S|IlA`n2YiIeb`cU4)4hme!pM|@oE-zMx3k2|(|X>Gm8X=|5tbt>z`Cr27( z0^!pu!b2Q^&~=Wu<6m2fUH5y}$%!W_BA)VaF>X5e!*6(%K)6a=|A%GJX`dj$J>>`^ zzIFB4Ug^j-!E~{jKoE4^=N{cAG+qtaBPgBTCaCfc5RVtv+y2}AS^0>A`RcEB30+s0 zf4lzQ^mXy`pKclP^FQnShc3cUsvtTp&t$;kmuYdfzjs^=nP{302Jr3G`NE%GMa=!) zaj7K-4gE5JpLJGo;XjT`zr)VAs;RP_g}RM}okbkk#oeXXjE=j@EnJUxzqbo6?*6&s z!bKfKK$L_!{sF)s@s5d`OqJ*EWK*4yqmjbP7 zS)p8>HQQ`CzQ@|}Uw9AzY&J)k`M`0JZ-RN32Xouq14(~u{K2L+voArsVjlTMA<#b7 zBeWR~ey;ZahU1cCO*W}?2w*sLT%LcR`FevmfbZfcR+lfnK^(yUOUH#x2OT1!CA{$r zf1OL=eWY!S9z#cgy-vaVSnt(`sq84xN!W*bX{))tU$_-?TR$Y#tmg5>6e?LMd`x4e zpcLphYwlzVWD*^h$d`qxfeJm1=&=HM8C&(_NX9JAwL+yB9yR0uP-Naz6hy$zYG(8F zmR%+d!+_?vD$=wbr@3*FgiLSy`5N!w*NSiB4>$KK7#koyMm;wsIeqP`ScCUqoxiti{qD}bt)LjH4&^I(!M~l)rJq^!&kFUWafuF~koINe*wcokT2R(v>D%(dc^d zil>~JbpWYT-!l|q{w9a-tzGxZcFzhjSBg7&n%Gnl&VkD)!E@ozVq}SJ=d+y0w5aP) zVGtYo4v+T(fPxGQz0R~m?ur1;ymjx2qFxi&_xWnDO5YQX`yLU4gbuhH)ZS!xQSvab z7bM}$cyitTAqjk(wFKW@-@HhMj-S>)@rlXa{0h4c0X?mKY`rsT;Jgh9_A|@C`oMrd zXdWyZWYLz>6&cUV_W!Z>9zad5d*5ydK|&88Rgr)+v0>tWu69su!pHbe=%H0FS|=UrP$*KEefx{(UA0^6E|w~`Z?LEfqRoQGePmfsZ? zy0bOBe0^yw%zS(ah5=P7JFjS^+O$}*U48CVZhch7P`XQ6KHj-8SnOO2PTcuuLs_#U z)_t-T)ng5~WV(c5+)DUnG*qDP>ZkdIerTgr*}<8Nbia+gZl0x^>sfIHG8i>g7;cld zxKfF2zBt_;6fSSAL?bBBLw#{74zVkyL)x!XRi# z%uy@GP9@SsX|L&Ybp&~2VhsRYFVW0cr-65%)p20JC3YuPEIR?b;OjR9?!!ARtUmEN z?&ATO)^SBFY#}ACZV=GsJn?F{GwV7ouA~|Y=5P^gQ@lXzjt3IxdBwEuSf~sR4n+XL zue#wFF>PVZt5eSOd<0?!Zk%dhU^uBRtNUXb14cFQbU2aBt~)!QmO0X$tN3kOF5+$k zSOaOJ)be^=60EaF;>qr!rRGu3<)QCsexLhQAUAO%wFd%@aO3j0FX3Ut@$zk>$8s)m z(;Br`>>*df9@mzGEp0FqeL*rW1U)OWC0B=Il+FS2-zi!07T zeaZH{6?sWNv4Vy1eSHS6@w903*^xrw_7{h6N;pV~sGU|r(p4qCwU%(WRB)|hNdOFhNIj`Gn{uffs zIc?1W_kzY@$h85|ulr9Mz`^g(f!KPYuI->^;XuAtg8QW;0m$bFbb!c+@>_lNj?fUf zNCF*(t|qGbp^_BRrf%eEpI+E4ePXdfJhXmL^OADa2tmU= zBDh-YYh-k&aC8wsM>xfC+$dI@m*B#Xy&GOogK*rIN}LxSJlGEWO7S}{5$XX%D+AeK zF&`t;*Xds5gF*Q_IJwq32B+a6l6F+h38F^AQ3 z5ry_ZhAi`d$I{+kAbf^9=rAbd`f0(aAvvlX5XaG`L=3`U0}r^v)@c027YG2T{eVb^ z4)E$(qM}|rn*uO^-Lz@W$S+*0pBD_}3b#-u<~RCqk6V8TY59OY!Ck@3wUGGKD~X-e zo09+S{!l`Nhd;E(1(!Ox0r2MTqh!WHZ>{A-Hw7T)lw0LOZ0)*h`NNdEb50-{dyhkN zYEM^NDbyX#)RIPF9RSGoP|e&XD$PDxB|J6(o#r3)RNp)Kyc$?=J=v%k^@x?|^=O*U zv)9^$#;i47Z#WXuIpNz#&5z;l+ZOc_z0*VviEQs>XeT`z4K?;Ra&q5SVxcDvA;`Qn zV1RW+e3FVqDgedNFWjN=tu<*KqfaDYaFQBZzjaLdz#%bzZunUG)BKVT{)6u-cr@l6 zh^{ICs~xhR6k6IG>IK1ot&8w{*!yhTt8I{lH(3C4(oL z*J0oLfHN2`fyOJB0Dl?{u$+sD1Bkv;$tR{xBT&gS=Lb1T__3!GY8Vx~VfF6y)`QU- zXjlL*4;j(%TewL9aTEeXRtP@qP)Qwvo+ zr1H{hOpOIpC!#bFXaE~JhH=l~tBUq3M+{iV5ZrET>6Yu{vZ6f64FdY)^ivxu)0_K4 z^RUcA*oYubpj2EL#1G3bYy+?er>D>ZB-+8{)K+eQBHsBzTOtC|M`aQNS$66g&76kG z>-l9@UrN^C4(=uTjAp!2dF}?S2mypp3skTTsB3zc-seL0Hf1BB=JFcFNy*@soRzmF zbUrQUi@+1$s9_Q4WjkA2#vpWTHruo4nEhSsg;Rz*P zw`dcs7s9=A^H=ywgo~2BAXT`>Px;%&oww_O#O3JQ#>0}_J;Zdc-C<8JJE~qJ-Y^A zM8hLlg5I$Pg+CFOi}yB%MQGnNJ`ZoyJZ^+tY{CxU>uNUXAK$)g-_#@tcsCVn?5pwq zs7Y9_!Ai5)=DvcqQ?tXb1wp^KsedX6`bUV%2hFzRGvbn7(Uv*hmVMlo8^c0E)n1_4 zzLwv(Hz>+d*p8}c_pk_#ooYuyJKTjk++ZCDcn1y|>!xn+I&Sa2-_fht(dX1L5YsVK z(J?aK(Zo_+gdM;KG<1F?57(ie_g;3=+-VsV)y1^zqnSvTk-*{*WP>H2ly&qK*9L%|9|aIN1H7lx7F4B*Fn9*H{{ zL1T%_V@mn^qsebaQ?vReVn#DRk7mF61U?!4vzwZPk~Va#;&*Op4RX+3_cH;*j{*EY za8qkB56}D1ae3U*N8NKL2%cs1yIJE(I zzDX?v0mpBO1vg#84&akPm>9RJK5pLqc>q5?><%NJ2xjYtfWZyExyiLH9k3P-+j{(C z03Xw;ptI8@H{to_TUypmF=Wu7e!Bv_T`Ii$iDcSJY%}!sn%d-UYt3@L@osAIr2OSw zGnWSJ4F3B2T{P3417>d@unQ;SCV#N+VUB4(fAhhOZYoXlOV09-%TK1cU+)N!t$?;( z+E){V+`JGyNfId(gJL{v>_14*IXw6HFj?qkJXXLkdHCA_{I#{t_5IQx1Nb^58H~p* zpY}s~rryC1r(nws-v{uwDj2DI<>~4%#~JUB#cGcSC#jsOPi{Ru(MKFlkkRz%(3=XK z>O4PQtUgtKAoz8S!^?$!PM&!gb1H9+3828>TAuEA^Gi;ho_9St2_T<}r<X_KF{S*1yQ@=iWi23xc>jw7c z60F#N%qca(*wR#+DMjX-la&cUDS-2C+-m zVx`mqxFzUwye+k)^fE-3h^I$KS?VaX9|I3E#0ej_)KQnMBf0)REu|J$q)Nb+68)M& zu}`3~`kq2zA0>qTMJdrwDU>L0z-|Y-1vC1Li9EVYEsWnr4}hGdP~L|Oke=h*{+>d~ zA;wA*)VC98JI_)m-_=sU+2~sAKa}cZCRP17cPTsEkaJEvo0H}RM1m1zg5PA zKzcugS-IvKJjm4Dd*3J0poFL9C-DMTVI)tzC{q%>qAPVo2EDdRZqCrC?}t_rZJ_$7 z#~`kWcT3~bXc$8*iLg$gH#m!s2jC*nV18v|XsV5>2*FWD6XG~F&o7Qmi!8GqVrTIQ z>(UVLuQa1?fD93E{0{4EyH=69j%6EiFFaQQXA2-S(>e%Th;X63b+|(KnvRtL??OBDbVK;a=dqpnG(pdxZqLivS~8Ir00=6s zl6H$-JOcS6jZ0+V)clZ!SX%+`oFW~zC+4Hs%SZXSf^Ap!=q$i#LTzkAvJLX|B!pm~y4m3R^H7Q1UdZM6W(7TBn z`a=2RgU~+M@4u`4<0U}Pw$E(WHLlE=IqQqx7rczU* z;POkLzSz(egrOVGD7&thA+8uc!u=;u|`uy``Nn@FH+(hleYT>ft8s1y0 z0vCpw5z>2Hhn&M5`~pqv5j!>Pr~MDVJfo$MYRJOJnPpxRo<2`@k6FEA){V?9?Fn98 ztmB1Qh_2=rE_3(R(2ZH<5a=Y1bZ!Zz-PNJ_cmcJ(ZV`02snrph+cBSRi6qq|azhUa z2k>{{<5-t=%`66Ftytywd2;XFUxo!V^=6n3a^{qj(=*;JK;^FHjyZPRMP&`vVrj#o z6U0U9b@Jz~J-wF7uP`-B@`|1p7?Jy$IJca4`;W}Njhu6>^ENEMMlYjw=cxmcghh^# z2vn;w;KHUa{*gYb%TD*{v(l^3I>N)ZTNK-&)u+h3^gP+4ws(TtwKnUmON8!>sWhPZ zlf4BLX3}a_@Jn$q^4Xp4bwKV>V-JdFRZo7AOnhvix!d_h2cf&fTFm~`&`}P)>&w-0 zb+jqx3SqyXIgxG5Zhim;Ul?M(_4=@rLZvuh3H+i00tBQfYbq2AZb{u0kLeM31-2C7xj#D-Aq_P8Cc|+6Q)tGY;9!& z&K!6F0Rwv_U00BZrQu4B0cWS zXjeHy^ZY`)mL4@(JMbL7sxsIhR?i9RsK!bYWIQY$=zAC&z6mV!m}N!Ec#^*I^e`LN zvrr=`Vz;#h8>rEex)h_}(nK!!?yiPv=8~SyykLC^BWtS1q}HSpZ=9eogRjDB%Dcv$ z35b<&($}hLF&?<1DEO*{L%I~GjY_>s90wUeYHLRl5c*UA0$fhQ6&5y%3)LM5;=Ug; z_L{@<7xrlAQM6ChA*Hq~F7a-WCbVRIZkvLOYbT42@O_f!EVJO`!RBW-;9a0>IjEpv zxq~}_FV|~_AzEA@m@e@sLy_u0OuD4NVsO8A+^<+IOtuS2`G)jIIb_b`1&mu5-YF)% zZzBr{#6dv3yaPqXxvtKuIxp>$dA0;FH(L9j^X29ChqRI;L|Ci_20?c`X(E-}Ym_yW z12pvm>me45ONx>JC&F_erTxGGK=2i>Cps2DO(~Zve8K!z2;LY3OG$u)i-JW72=sRF zlJ(S`*@F9Wjow=Oi+L$tFVwoHrysNvq7vzG#EYV|4;45-t@H$HUU{lb7p8jvYiR^O zx<_oG8peZX7uTX@nilL(f?S4rSQ03@Cy}yzF?Fj^HnI=Ld_dYSfe#{xukNY15Jb>O z1bNh8BATXryzLde9+I%oMdDIFy*eM!1XY6qKuDuVLZsE35hbzEmy!6OsexBEOGH)p zQAPvLo*pPG7do(d8s+o8q+g0Mp;gtWQJ1ujV(NKu!W%=)6CjbSoskwj&uf?LW#AL(*Eqr;fpt~uUlxVOK;a+4Mxn78gr0$o8aSO`8Z90uZBNquYZqLKFq_nZ?s^D!Yn-(})p~wpF z@QElb5JTX+pbQ3bs2@CgA8Ui&lzQ89!W}%Osd)NP zjOyimv*Z%Zr}t0|3Z}zsiOh|rg!C_)sR4JW)pdD2yCJ}Cjt_T@Y-fw!_Z9+u?ez7m zll(Yr6qcWSz4Df=_*pBprB(5V(j_8A+C;5Ux%NVRUA9+BBOb=|gtw5$8zsrqjp{_B zv50ktt`t*C?>GYvFvc^5WiHtlZW6p3mas%bW01<+sC3NgxLN|lN)CT|K1$z{~D{-NFY3G<`a;v!Q4xan#M#-j>=jAA-Xv;)h+aSXb99jvlp6_#J%+tsFCj*O=Hj&jOvl7Dcns$#p45e9E&(^ zDS`!c0^4vcoRuVXczRy5iqf-Oc4IqskI?!e@bG9Z)j;x7dH|z=J~4G57cEg%Yu=rt z6tUej>8PiiY-U_OxoC?NCa;eydZ6?AiHIp*4f_1L++3ccSQdjEHb|;F!1htIr5*dr z9roar5d-O6)g?onMEU{%m8#Kv^05l&87c``^Yr<-f&xzPRAVmm9@s<=cmY;u8~UdI znV|&w1;U$PEdtyP21U07c?PNhTZ%5TW>KmD*#bizloQM=o9-;;B&cChJ#xdGFDPb) zy2+@Q#H_1A*@~L<61<^m1%_GyM2dXL?yiK-V}w6CY7qDzl?Fw zIAoMjmnprzLXbZO@b!UtL5qqq6b(uV*i<#&(v`c@Rj?^*QN&C%2EquQ8iB`mCG+L;6@vIPYYOx07T1y{=`I_ntr5EOvjtdexy+DH($r8f8*3_ z7xREZST43ml<^|KuwEo3_69ZOwdBWB(^6@|8MyyzPgS8s|mOpn_0AOnX^Hd&PKr)p7furPP{@ zB~Be}XHx2p=gr@x)W0t!BE~$)Iqrn9)X$ij-`D&}ns8C<(^1#v{qAke?p>$u{h02< zite9FiI{cUL2rA&KbXkpo~GAbq*;$9wrjj<zusp#q&Lea1vOFLuc>3@APrfDsQUy&X`C{Y9F9`@Bb+ zVeq$7Y6c1o_`6qsTuOv^a8^q6nUVd6l-l?6u>bE$i7tqBQDlx>dH}w%I`WG&VU>y4 zX_PmlCLPN}7^tso_vSE&QN(!VV@rwr=q?71-PIkdI2o(?e4d5j&nc9)%D>M85Bl<16!{3sq?{;;fYDmlO(?iA?;J6bh$VKdAJKiB#QDVfc|k zk>j#>i%p?$zpuQzQ862NXI8lCfe9YAUtzNRo3!yE7)L)Q02X5>49YeKKrTtbFTlor(=ca=>o7`*(}23WCm zW&z17#4_;KTp~_5Wg!SyW3K&{4QoH&ed91r3^n1vPgFSyUKzJ*+$HvZVE9L#xFwxfCBr4WP^49`n@!z&q6t*ADZ0_;Q zol6Y#&RvQD>|mo8PvnUdZ&IAzV7#C6us-(o<)WQLoZUX?E`q~U)`d$Xhfwz><+(K~ zBNqbmHA4RC-GDc{S130KMD~)<+mi9O95B?cCij{*_Sl)$>=-d&*RMTrUxQfQ+;6nn zPpDk?7dnUo9E7+WU~1Ozy$*gZB?51>`N;oLO7szSkg3DP*j-J`q?dy&B_dl(k!R0# zIVuY}x*&2?VNR{Ycnm8zQX)TU2q0@TJLbk*s3Ifnz6q9=Cn=^m343)SGeA8Yf1Gvq zc)|bJ6S7}fvo|ipR#$ZrGPPY=dmLSJ`sh|&K+_$G|-0yA2yjkDc$BFORq8r*y{) zyAd)xDoE{pgYa()3B40^+q;ZYFtq=?o^p~}zVYX_!i=FDSiLur+uAfcL!SUB+g_A~ zEfAV*ii!(l4O|)YVZVwvH`ti-DUe@GZ{n01S;!a3v^d(4|E$z!YS)QdY!3vUB=0cQI zjOIes^wZ|TG;NmV!eJg)<|A~&jQ&=g{EVt@Jp3FdW)ba9ZM^v2lP!HQ!I$R|1KF*6 zoL3Z1WsR4TBJ_>h;-hSquSA}A;#^Ms5auurNKQ`2`fl6KiT$-cc^-j(tWQ4mqSMuH zC12PsnEp@3*&AsMGB=to+J4<=hN7-*wy=boZnkoyWNx-yEB?CK&eeQvtK;sF=~gG- zLgrT2{k^YS-NN|Sw|m5CUTybEvuAC8lI2~+Z1*WhUEk?fQhl{Epk|P@GpK31x-$er zUEdwn4S%&eVwjS(J8D|Ix;tjke0^{H&Csj8&vpx0dlOE3t9z4h{2TjI?lflm)1K_v z`!l}0-}Yw%rEVO22~jmWn2RvTKA4ZO{dTZ`M%_4E{19$-xRjcbeYpH@>66FS$^Z7` z7IVBkWR5x6U-;`Mw?LYf-<;ecFtlgB+gehGUkZeN_-?-!2&w)PN4GBZX{=`jLd?@@ zERCG%8{TRi3Dm_cjW--Nd|f@@Gf4;@`*F z|K`!{Z^qe2x0Crg)8uU1`r;0^Q-n#<6;O}*6X z-$_^NOjjvx8_0Ip$$*h$s5L(t{1~;9Y4|upeW-1)sB9<8!Y@N};n7gp=uWm>XNLA( z+fdcvP7a(T6NWD{Tt~l~>-jkIMITN3a1;M-UZ7v5F1yS~oBHm@h|WxX-u96$huwTM zNtU6M%;=}6-GbD|S;ngEql0C;g}HuNrUo)&qocb;C7oGjw(VmRhr7i!B-s`yneiF= zy^@y4*;e80bS6t{o==CD^jMUrEOZGhj5+N)T6oP(`* zpV%$it6cZXaaxd>JRIGt+V9M9-fN#cJ>07XkmkbiWv74__G`d$xd@t$sdEDRwGjVY zcXrunLXG`8+OAv=-i~Qf$NhRJXxl20WuzXG#DVLT&OREP#RET7W>&fUPi~g~k!^cGQ~a)9S1Vu! zW;#+eXt3gVbUB3Op^+_w;9J8oA=DIHJ6{dN+D9!L?xuu*ag=cb`|gs6=AriC%-61Z zM)TBx(|4{}XvmD)N{2ygA1^b-EPF=96+xQkGIiWCMrYKEFK`-)zcDYv8?$;r^iDxo zz7h^zR@^IFj6L_7XnHuGo;i6%t3d$|M_bMiC!?6#+@P<0(zL)9!qfva6SJI@O{Fdw zSj|C1;()|s!iuw6mN2g`2dSTs+SSs2Lz)u=jcA!tgL+A7wD^UvDwI{va?#6d;r6@c~{LcJr|hyO2DLWTYJq}=I|Fqo+Tze__Z^li@TN7Y#)PC zt`V-4?Ue{Ge!Ja6uNO)^O(f}gGqjo5oA%BOZekW*0K2c}%?MkfqZ3yG8-P17_@L{( zq1BxbpFxOAX}%EY9df5YIN9APTvl3O9L;q?u!bAH(C)Pe7XVO9V-&QbSCA~R@#4yC zLOnKQnQ)op+-1}09^!rB_f!f%sHc5jZk4-g(uS@q{vMG??)G~!Eks7s;Sh>%IXLaP z1`ACcNPORt9FDPA6y-g_%|2ID&^f&bfWyHS-@eko(I#5FcB4~rAhpC5qvvRKYM4RE8K;IEvj{nVQ{P%9mhS6i?yEc`zC#z;~ky7^>Qv$fafPs)kGq!Dy zTgky(oTvnB{7M)IoPf*9TpW~VGbxM?Qh$m%%rj!GQ^H-xv8Cb1VTJEEH(%2WAiLb; z6?=o`z5s}oW@c2l#jaQeQs>xxu^YoJ+1i<5s-NftVO6M=kIh;}&h9NnPwd?)yJmDb z1UAVE5HTwEGs;AbE!Ir&TYEwJAvbsC(#=W-Ixnq!xLVmha?UN<2fi+5ag599nG?Ar zXNOS_r016j#G8rb{aQYnb{pqZn%dWH7D`NA!2Uu{I*MIDtK_d_&$Ki zrfEJ+K)IxRe8UpImMl}#VY|v0N0ohH}Xbv??K z1N;#!9P$r0!Bs*RCc^w}+k+n+&7=$wwWfG@xk7*trO{(HfXLxc&go=%HO|oPX+$l( zvjJAG)a_Ben^uJhtFP+WV0WRLe?7NDtTE+Sv*%1$VgiM}2DYeMA{~c%EHHa!RGx21 z@g13ZY{@*eDO#)supVQW;RPuKfgPfH2;MN{+7Rl{n``=Q*X}gsZJNj1Z#HgJh8W=0 z7DVF??rE~N#JV*RpLO)r&x$PZ-AweK)x225nE&?^(*O!=M1(a zOdqU-pa@O{ARE-36>Y*wYhhq#=sNUPqeaKelf>vY3dW|44+gR4;=ZN^@OgX~ImX#)chP3NSRclxCVNQDWHCcrf;$fCdS{VUrdxQJQ(4vl28ODb3S?bZ7l(z4i z(_iK=vfNP(29w-Nc{RV|(-7iavd$Tw>k}N#rit&X7?B3ktMe$KI98-YYChSG&*kp5>RkvtHFIoZ7Nv$^u_^6Pm38t zGJuUsQ>Ijz!QOkO$6v_8{sSI}#9BkyJ zXtto z0uc|DB(S93z$jD&c)`N?A^><10!(~pa333jQ2zfWh8eJyVV)}P#G97*FAsbA8fxPw0{N628BJoM*>9yHAd6u zuqh-3q~syq5<8eeJ)VV=IFdU(GwMm$o+FL|&?3yo6K=6ym~meX1nr5=Y_h151j{H} z81fTyHtJtC$h;r{3T;X)VpD#B0*4o;w+3RKniyv>A+waijjIn|vU8aPag$6S(-2&y zUzVRVwWhkJ*me{@b7luSI3#TyKDi12(v`&OrrYKdrh0MdV$>aWI2|fbIm~KcgJI$o zs%U6QE=wVhzsChj%0Jk+eABa~6|iTHK%9EyY%a!laCsHp``AbQMhW}JbXOxu69vv@54E3;=9!qx14cjuz5AXR{ zVUh9lg1q&!WVIt@@0t&fyx#fL6lxtQrFg41qH&EJ6=fas%!Ue94vHf7^&j$s2M%?m z_EiNIjV>D&n-n?;rxUnPWg+1u2my?$NqGswaLI9c4g!z^vyQ;w0@X_;7>R;}EYxG{ z!0!g~Eapqt27Jm>!1v}1{db>QJtSCpREFLOc&-tT>dAbEj*!v-V+TYyr*QoPRUZss zy)0o!8A470uoUnN@{?!zvK)c&e;|kt!glMl*+lU?9DcE;-j5 zp4@%)V-#AW?rPO#WKn>E_d9r1L3y`2QaI(j#V* zF^y_ZgVcRrfS?2dBaIq`RWGpFFD&Qm5PcHU^fTvtgUx<@=bZnu>{ra4ox9(&Ux#-9 za=yQ0zji*h<=+3E{rVw?x2kwI1ZXJxnR7aIw8Z?vIqMbLe&L)QmwGgRFJBqIa^rs2 z{Ga9UV!Y#B>leEP-D)=ffOCShdd~gCIZ02>Y4sTWW$@h1hGpcgr zEc?atF|$7Y^CPOxhD2=kD|R%!a#V;$Nyi)Ie*H2b&zAmZ=bd8i9H?QtD3z(G0P=3D|qRP7Uh`4R==nj zAHVY#Jf*>?zzPb|FA~{b6eomPV(&fdniUtEQ?HuS{6{$FpR!;65LJKTw^a)?1p{zF z&V~nzZx%*9e#lp}A0j6fA8um{_ju(5mw0jJ!US1m^dcr$;E^cpg2%&c!EP;uy+Gi|5$nw!>~QTy6!%drWw(2wTl6yci~HnE_XF6s4fLuqL!C!Ww^6i_3haWt~@#7>q0cZ$@7#tMVD`q z@WyXZ+}*lweq8{wB|6EzAtojwv@QL6`AR&=6`fz?@civN4E5_lQ(NoMO>L}vMd+)l z4yTk0HsiJXL}b_0oC?6WM~=VyCWqR{<-2@koNMn<^-|gT1E(|j%83GI$ijR->Lmyv zPj0EU-7*579CsXlK0`T?t{{3kehKaT5DyP%c z+d*H~ZjfTWx9u^m9dG|hz7nwDHHqne@o$Ul{M#1#7m_>NMgKt9OI|MNeze;J z@Bd$T%l_R@q5SRrZ!r91<@qlsNZ0xS)iHmj>dT+o|5d8~e*&scxq{hJe}(Fj9MgXb zs;AC)U;6>oIc9zD{($PzjAZ{RCxHE1IYAoe465gRk3yw>{0%4I947t22^#4E>Ab(^ z1fZWdfimE~oFKRP#?jY*ffHO1bb|ul{Eibix6D-CborGN{FbWovpb!`O4@&->cw~9 z1nOs;Ah!TrOB#3m@g?H-Jsbc6g8m!|_VfQ7RR53U1pL9$%630N^?6Ul)HA5Adlm2p zoM7P!C$MKLuEGm&))7ZfqIOEmVGMwtS$Pn*RRkcOXHdP2nd5JB0uH=za>+bJ2{>00 zmvS2okgM-*=iOw!)koy#^7=%HYa!xL1XMk$FX52{z8}DqfH){Q+^jZLp^)GSJ`PCq zE{yU4=5d2eV%tE-{lau_=^9p11&x9f6jNlYb#_i^Oct;vzfATsaV0g<~Zxq%E|7{PlLaU~T96e_Mya%-eeayOrK z=^Dok0ncc}Zozho39C5TtCONG3jx1wY_LN1k&`*kougJ!iyq$0`~nYWIE%?b!?XU= zZplGl7F7HQZ}J5YEReg(+#dy~BBUxEeuXmhxe9)t>_rr8af8X}>e%YJn#_^MIXstE z@FX==Krjg;c~8c~VN-oc41@VqcazD}bdXv@VY&-`hi`b*d9)u_mXYgwYB5OWEwUPugF7P zW|@O_6d;Es(7~_XyR=wK?pDN*uV-15Dn#O&M2w?=CzH@f*K7U!I0Ik5ODWGf9Z26W zOGke(&{WB^=vT+;31O$Ok;TG|Tpj5M7N}G#Sz~5St+w{Q6Sf+3rc|R;|IoS4;=>p9VD8S?an?+ISEd$a_bg52@apeX0s(Z>%X{0vF z6N@mKsBtoz+4l3~b4`6xXu!wZQf>H8fKd1}(MGIY%42OEt_awKvNpc;>+G-3iDrhI z=j|Yd{-49W>4=^5_n|#L>ohd3*m5G*ya_xNH(y+|a;K(i{y#_g&ME zPDcz>FR$~N-5^&H9Cy&!>+nT=RXUI(QE+4G*SfUXJTST%?*gBKPC3ov3G9jSRnf^$ zh>{m^O@>q6oADJcuAr%QD6cx62PPjU3z2y|X^;NKMk}h&$gq5qR<$8nhzFuH={OmU z?s=0`b;~^ycj%H%ng9R@(PvyMBNJVIkS%B^(T$4-uQ~BrcyJ403WA>3_=3adbh;&P z%lM|KVoAl6D8(5upeq3b@~Rroc#tp!+ES`&mNcrsmCaeXo<>N)@uYRX7#Iz3nF`xF z;HX(J(^_F~O~k;N)=pI}On(5N&A0&P;&zY(8V+$i1uw$4*^sySEVorGPms853+^LaI_wZF{wZg|b)1)c z9#Z?R%u*hV5a7cI8I};lgvHBiv?K-|+IOfdMf8B2!nSwRkc(1g%gF0o!ml;KB;s=# zH@O`};8vgaoW=G%K?}|T5=xu+D83zoX$#a{DuDR<8*#Ko3lEY6>g`})UH1VQ#zCsx zMEZrtu}9BD4-8}%c1+uU_IU193790t*40D!g@gh~2o1y}tG4jGTIy}08m6-Jgh&N+X9;C`&#kN|7-<)FMcHK!AMvszbO{?& z;|O8r2#lw()B%`ZyAn>ngU3Dvce79)40DlB!#F-|)tgDdrSLK+F@(9(DN3Mm#Z$q& z1U@-5fJkoLL4a@R4(<$3M7Y-zhAY0XgBJi)R6W4DQ9`vOGK#7& zpotoA5*C5gifBVDU{l^4#kfV(Kp_h~5FH6GyGnSHX;q}6lbWdqT63=m0Wko@(kjgs zBPv^oph}=3eK0>4d?@XS^+2GA9XL42?&XyT?Q>ym3URCU3XsbZH4Oud;0& z>itD-QzL1x@H(!yQM5KHs2?57`3R$kKl~oS}Abn}|J3k0L-IYAk1V zgO_u0&2~PB8!HO+zWSZKmTuDPZ0lP$b>$7eCAyY|mj!2;|`7RJQ4jKN-`Dcia# zCv?Fr9?yLB9G|s;c?d}yjKPu1sX%TWYkO0KuoYjJat|tb9v%`mDo?%;#LyOfCCoj2 znaHTldZE}WV>wQPD|Yc*R4Ad%LvQd`I+C8^#M03x9PHN6Tp+HoBh($ST|!Lnka?vL zuV*f%Ln<*=C39fPWc*PUtu+QEU>&7Jot({{+|iRd#s5Tr1AJ9jzm}dfzBHRs8I>3H z0(TkQ<4xSArm}tbWcL}`Zzl^oR`+%&+b#Dw5G&@fd7qQ39G#wh&PN`c0R~+q!RODr z*oY*(O1z$)$1!K$a-iB*lOl%qksj$4)|1l!Fj4dTcnR-AKm7WUQyo#qjIC;>^ z+*=t(!A;BLnVSXBfe52KYLG#Ak063K)5lTM;wre7R>_*DWI{#ts)91z3OID9G&uTs zF;5O7FIZPng^TAy;+T&2)#vy2)RA1ScHufgLtyK%GQ*_zLf#p9+ypc}1P_u5%VZQK zigL!NDgpzaF=|vShq`AH5!m}=cL`|B;Hlyes+u|4=%)A&jOnn^0UmJYWSV@G(aSJM zE|_#wISy4b#(STi@$4o~(MtIXWu%UMxkj>zvg^Z&oeb@ph523@;0M$Zm?J$oy_XJ2 zrNm#$J-D*)WnmBOKAyiwfTBIiLsisXJQnI7uC2sEF(>Q8yLAM69&9mnoE3G~#=lG2 zxty>gK{$J~n0iG?T%MSE{)+nhzvQ8~uU%+Z8t`KkZ?M8kmi{FVCCc}goZuhKL;W32 zaGy&urUly(w{;n3=1a@F`>j|j&lW{%SWIhFMQhA>Yus_G;<*1HL8!qYM@3<9XZ1 z_qk&6iW7FL!dr2_6h6X?^DeDtUNdub(&p*2?pv zBknIbff{qKmDV3{f=cdzivSKy%y3pg_xY?}^HA3>Gv6P%w_W?)%2P?r{-G!Ov6y*@ zd;EjZ4_X%$ufwg1N4n^;NnxPDX?hR9Tor|*c2U!UA??^II%VZSUZjTd~nL-dTD(z5C@NuY}dc5_XD4E zHiRsmYV6ykV^WzMhC5UNOCoYyxblQ_0hF_XGz{jo=Y&XzbT;p7Z*ZJR+T|=aZ~Qe$ zd%(gklJ;r9mN*&LBB?G(t-93Ywp`9KCx$~3vt3BO!(Y3tG)V=B-$8_JYsyorV0O6f zY`%y$*I3(RVkF+y-X*`YW7_>h8?(#tT!rA~UK}OJ1OxG(NV18i)HNq2$B;Z{BypYG zGr5h~Pt3fGG~X|R?{{zb`NoqQ2oX6l9?U5ogqhzmi~ox})Ndv2@g&h}NjYomE<$IL zb_}I|{82@*9>r13Zzb)6b(7yE?S2io!2u8LZ=UpS9A7m1Hk@;#a{OfV_QsUZ z>6hwnVw$Im@u$mYl6GaY*>9NZ3yl9OlJ@_xbmX5|K)2%P?_XZcGw}B>`nO+k@NZx7 zKVm_O{~BYyN9-76iZVy?4g3CS8t`nWyX_A%cK-=9Aa&ON{_cN`F?GbeU)Sp)Qr9*b z&a0YkVE!!`yZ_LL-5(ocI?Sv8@piNx0pPFgXzhgG+tI3^brdgN0kG|8S+f5`#O^*UDj@FFl z@uWZr@=85T)<;xSy5cV2de)MxtphbP1bev7fo(@?>q|H{mmCLnW%ABN0v450B>k3U z1L>9GwMB6}F#E1b#buOPoHMxLSY80Oe41*tlgYvagn)bDvIX2YUL4rbXz#(YHr7W?6C`Je(Mgyo$6a86)iya;An-nYuUr7vWFYZ07dYT$5`cko)$2^9g>InL90gZ=cPMEeX9CVMh48`|0o5A;_{WcrBWT|V-> zSaXakyD9nmC}I58&K$cd9nTG*v@{giIZ#j70Ez8>LthIQ(;<=1Qo?>CbmWGw0WnEG z#mh{dDl>qR?Cd47+1eaPrhM$mEVBSh4Fd4W->*YgZM~#b;k5Z3>QIqpPZVA4_c6?9 z12;ka8Qs$7j}an4dIr!Dh&FA0R3Fm|u^L{$MYa5xJrTscu>*<^*F9j>vYr>NA-Zkn z*B^Il&I3R=EsZtUN;3z~FvN5(jH@nj^}-@s^)m>Z$HSKaXGu=J?31L52-B3e@@{f{ zU);GJFKcxj=F7m|R>SB9RN zGINjOQehK+0s5KM2X-kdCriF2ZeP+!Ya&IysiUG}E>ITpwtrr+dSgeOErH%?^qE33 zb2-hIRbEfOb-HBXWRG9Vc1VrL#ig{U0a2XeH;|GudF6DR3sALvNAw&KBgOwo2WE>a zh>coA!1@$1CY|{~#^!D{D*>mXAi*Cd+&ij2tCq!Q#wdQI#NWsprCYV z7J3UvZ}}pwwb$Bvuf5Mc?>Xmv&pF?kVVKNQGWV0rz|8-5|E}x$y&1-1Uc)B{;8xDf zsi%VGxxo>8`c-H8#W2=sB=Y|CojS1etyg)D6KmrOJ6m(_Hg7r?fncEf%OXs*koIMF zSYz_ejXHC0aaNiR&ylZbhyGRJo*M5~gm!4)9@oxl((XoT;DkB-DW?loRxW(qOptKy zRr7$vTPALi8n%E&B|S-6b-ESJ9V$su)gW@@(0i3MK8%iiE?(>zYR(Lx5mE>{+?7J! zl{EwMZAJC!$CyY2&gEug9MKBIU`6tP=z@4w$4U=%0;pv zUFyUhPY%+EfFO7^PlIw2##ygwn0p|e#BWfWxU2nMypK5EB#PA6woPZWDInIxoG+<=g=<8I z45IDK^vm148;nEp)je4`Lb$V)WLw;Wgu*h~z!3@5q8!1^+h8IQYgRn??GWf;yUhMc z5D$jxAuHY;Z{h&5Lzk|`ojir{(=4t<_SeFcapQwu4pjHqh&9-IkP;CJm23RX~$ zOq2BE#M{0_U^enFo9)4nhyFA;pK39MwJI8MJW0WJ#7iL}+UH45yW8|oBpgT5y@9Q1 z_pTj!QVF2axgJ4areK_C1QI)p4fo4YY7)X;y%k0|1iIaWY=Mgo&4lwNMt7*Gm&Re) z*wwi~kfrVLv`X)K(w0xaZ3}&B`ioLuXw-*MQuFcy@X15Ax7E zJ=)rH*wd#luZ^PGaD;Hj9gF*<&>$v|hN`P_p6x}6fSmT=Of_mFbM=c(D1CGPw_6G4 zrVI+nBSP$4dIwS7!)RhA#~h^2olAk;X`m5bLqACYs8T$RbxwxDb>C@E*%Z70$5x zb}H&HSV0c(^+))Lfb_Tk@2LTr1Ig$U%! zFm4*}T6NzrBF~JtlH^($@n^GbSba5%xxe8&zlj2vl|hv*eUmu`%!)G|!8{p$4xAbt zD$osQyQNz}jg3$3cNKWcNewsyB}44|OaV$hC}uLZsfQy^%|?+q4@U153P8A#*=d^r z%b?tt5ru2)u38}1yb2FA!e9cFm)@x$w_%wkU@vr=BElmOh48r~Xj53A@GZw?NX2Xv zsnN(#bk#$T7zKQj5OvQ{v+mc*m$p|?E4o--SWF%;)uYH5gu3lk*yE7|4e|{$vvpFGJEKy#SF?Grb)=V@JY2Qi5C>~`D+i|@HNgf zjd@d8N45opG|H@SRhp}{rRTE?o~oAiN$U*bORk?TMsNe`iS9l0pe{<9^BmT~JbAJO z4gsL&K{)GSypd#Kp5@l?6Y1(nSz$`a|sRk(=>Xu3!F*@ zBHre77pf-x1dPW1Xs7scQL$v`KE{>FYKHnL1-6kyW`llt%^3U{kGqXF_+<) zOdwbzJm`)|FcF7#rsHQC5a-ol^pps}&?iio?ZbCd@B zr8V#ebhO{K27XBc{+^EZBMp!d+&=ju4FKN+g;~AxEpH(jV}3~kUY(f}{)LVv?hrdT z*|xj?9(1+`a<}JiS_2>X-qD`zJu=3y5(9xhOame{-gAse&ZT^?K(}4~U2DMh*&Bh> zkGJcN(ty9Fqy4=x=FW8zW!XpR+HIIdxpc4oJJ0%;@JQV&kMi&QXbp^%elR)xJPnZLwjLYpIXm{@kBl*~FF#zR8OIs*`{M_`{c4PPczt|1^}+1f ziFKU`$0wqv5EFO%I>2lLyF@zLJLdf}lY-wSphP+v3xh@KzmtykyVk( zh;+0ct$}-oU*Rm@{@rQ7y=f!eX<`&$mNsosKW#NWZF4wncVvvoxjyN1WQ>tB9QHUe z#t0kEAn(l@-aEeytr4E!IU^ zsLjo#^ziSMY@Md4wG8A6H-YMb?dbj$L2|iE71rOw>|YV(f$=Q0;(F%O2RG&3ulss! z%*lUOpWsrO*cf^Geev6Ogx;p&xy^UT%_qtm{9+`ZX|L>9Z&u(pt1~*9a4WQ#n-!T` znfMJ;Wsy&~N&Yt*GEG}5`h@NEvNrV|qxtUTqW8E?Y(2s4%)_^8SofP6)?V6j zXNl|=e%_M>@3&9TKb+Wq)4JEg%h)1v5K^{2zzTbR?9Qi#-IxZduU|Ra(hnjP55Cz_ zU>Z2XB9A3rJ(!U@QPI7xoVCBwa7qGpNM_#~j5He3Bb>aKU{?X5m6Q0)(oA?e7S2z}a zUN^zAPJGeu#$|=Tb%S{PZ*P{pb_nY|_;GwfQW&<85kNR(J@?gj`f!oJg^D^Xxo-9I zmIfH{9e%r=m1S*(z+$-d+mYX&{eSfOckBBuusU^WW;Re_hPC|DMbG z&s$YV)&J(;<4-NjU$X`Os0Q&%@bRY>=Fi~cU~|-U_Pc6(E;XeZ|`2SK1(_tJS ziNzh~B~}z@=sw1d^l|A`B^4m;dhkxv1TbIUL4-7?;0N zu19o6jz5($p_}_r2p$EBfx{>OILY<2;XD#z~{7nzVo4asHuF#!i6SgZ@7B3bhM8 z{}q3NGRfqK_%`EfrpK+upC5%*Uln@8c8I1-v7dk?t22C&U2#L{_nl1NZmH(Fc8>e< zSEcQ(rjsVkLHb=^eXP#CjHa=qK=*t-Un^QQllS6D{43ysmwsOSl?7vO9yLRtuO)cs zT6AR>kmHjHJiQ`joo}zn?zq!+lN3etyFg$uv2WVc`CyZG0Ja5&Za0@pO!bI>;{mro zw}qO$ob7dPqY$Jf?`|Z$ZZzYA`KjBJ`W=JtnVAIe*Pa|N$r8K*J2&4!SVe9 za!hR@c{h2u?@myj7R^YBa85csHhbRc9H7M~nnfXtNog8^NyU{HnaeK72YC!OCg9n$ z3D!j0j_^Qpgv-;C%z0Cu8r%n)^%tkSX@pN3kPeLBeCnKP{lHA)lw!7HRZFV1rYp%? z|DN@l>d|F$+Y4jdSDUM6!Vy-LwIAA_i(8xqLu|h%w_OPrs5Y#zJ?`mzoJOR|Y2nIh zh~!hii?*QbBiJ_d>tKNv7X*fEL{a!AeOktswPi0D(Z^&|({R0}P(JvKv3xVlqqoTD z51&64GfC3T4=!k-!>5$Ekg}OIk~0xCKQ|9ZIN1E7KNABo+tJye?tBV3X#F`)9r!fp zwRv%;g@tSN$2{wG2Kk7M8V8lR$3dQhUv(j2o?o+Xkcz6`N*Rvk9UZgI<)IUubS7kQ zPA=&1zNWQ0pk1gC#%ns4en@=hl&f|)N2DQ9JY$K7JKTqfJ>L6zZly292Mh#CzM8Ll z?oLqEV!n3Zm{cii^+8F6lnt}@k(YOCe9sG*ZMk*LF71mI!5h|8c_1ly@V#G9WFt^* z|Mqb$+X^1vTrs>KB<^s1N%&wdfq>jfXK}2x{aW+9*r&HdPoZ!gxlkA>vaa$TjCvVd z2G2U^51Q+7bbHw@)312G(!1W&{hKSYCLSr@=HAJtw!m)7qw4KyqTL;33P(V`ySja^ z^y{9{em6k9mF?u;qZ-QT*A_?;GHt|E<^4&`9gH=Qsq|*YlW=5^d?ojBU?ezqNSgKL zs6!c4_30sEaQio6;Kf1eBDBYbQ*)|Wjc$6NKoBNDkJ^?id^mF{ zH6$1WdFTp=wp&BcNXOhj}RE zGki8VfT#4Tr193R0y11~K|S(NVK&#xTs{VZrYJiNjz-h+98xV)bXW!%|`u;e2$cr1X4}}Dvk*fAmrsFWbkord}m|QYG>u0t$yCYq!9&LN*CP{&S?nNW#jpB5;9|%3{;_vbh%m>G@d&A;M=f z!Q^voo5V#(`iE);@B33V<2IlZlM|316rCXu5=cZ%abYduqe|^8h2ahrIo7JfSc3|P zC8q-^nK!rm6Q)xNmYcykxuAP^^n@GmCC_A`J+530gOZ1)0T3vcqb}B3$`oJ&dFk;P zd}NLF~%)Gfs@z$CmeZI3gV6BY=sbgPa7 z*kP)=6mbWa6gC9nWI0VX=@UC}Ce|+Qf`LKXOWLF8Kog0G031*fJ0*vvnoU-f06>#0*9!$haEJMrZ^$qwWYp8zsz&+b$lr8vcW#&W5l=2RLHhE{g5rqwo z)bPfv;YL%RxNNfB*qF^6`as>qJiCSLm~jx)I_KG{J94Z&*UrKp1a!)1tL6X$~aOl8hN1LE(FTlP&@Ol_*{-T6qTpqiJX$L#=H}?N=XlCnUY@! z(0e4fxFQfZ(uEg-{A#p3Q8P8vcPU@AnU>xrHF|#uh`&uOH5Fq^@lu2z!LLP~o%eG4 zwx3KwLI5tm3})TDT?7|adD=-WK1s?0Q?Z%LdSt2Oy_sU(|FWTnTI!9ABsrlT2y2SuN6^6eO>D zgOi%!QO#p^!y7zy(HZ4Mg$kLUD3gV2gEnevaHM*6h4c(1Ra$E2%q#Ub)Gkbyq~NrT zPQS8Xe_jcX;T2C~cog2Xpu`dfM9k;L<1F#)x^7x^mZVj0dhAQ7>N)#4YTSWKacbWE zDpR$<-RxR_yqceRy{wA%+5&};YC~v7?&gBdTP;A&EDM5h!8A5N_ACf{I*o-uX?#SI zNw{cvBefMU?ED&qH4xd=9OlQJT-534pn9rO%Nka!Bav2OOkpRHk7b+se`=XVqoG+a7UK!uSxB1^`572H$d$nUy+I1h)g^cRLDJZD>+cnr zbY}ewKK`PG8SQ+&|BDvp-xqxB--x{PqXw~m0sJkX8|~aO`dba+74!J7TA0h%6Ns*v z#oyN;ey4?b19}ho8GIbD^n3MC5^E4+J-^_R?)IKMszF%0zGEtuc=D>(tfGVEcQpv} zzGkj}Sqmcw`5-~_X#86%Q8m+?*eBH7M^w$oUwI^@^Fs?W^rcO6iRhT1P#o+3TP@75 zxTHS}KHToNB9F8%my3JRsf3}Bx}n9eq2J?@1U|nzszLn3B@Jhs9r>Y!xx%Q0NXb6J zCH)qB-2GIh^Qq$Z!ACcj-odA)yML^O@%z|oe|hW$^n_yA{vAY4S zUx-?myNs8d`e(c!yioUBI2gwlGoOJ?-2OJc?me-6K(C!Tu|GCJG;)JjCjUcPnE#^S z<5p9&(NXXr_jSnPDEK&y8nL@KV-h{~=;;S1mfKcoGc#YSlh}r?+?$X?&3Ng~LIQ?U zE)W9_z@>gR;*iKnnv1$O7jsmDNJyJYs{g0K$8(tHJIWV_^IJC-%Idi=J`0~W18c?? zE*US>*GrnPEbd-kY(5ktnqhVzi|;aKJ8e#M94=~onfai*G%$XmYn&GOQwvj?vIGM! zudpqT>n=~zQhf7SPR1>bH7&zsX9uv$$G|IC_)6*%bx0l4+VkaU+{*sp3Wyb-XSf2f zy>h6F2h#DB4M)KT0sle*AA4aH_A~e>p*xuloPOVY%JwGM70-GUd~oQsp7&krWEr(= zUPv12t-&sseO#@C*}Z345f=S^T4l^GdL<$2JGThq^5Sy)mG94z*T%EQU0K$PW!7bE zZ%7f=mp(7@9bZ~CT31ZpDB?e%TCy>Z1?#Y05uMxEfNyAhUR$Hvcv?2W|8%o+d=~h+ zocY7jW&c3L{$J=P4GbC678@L{`}$jX(GzFYrdmrH;5xg3MK$evu^ zuI05|Jg&P!4wnkrt7F~A=Iv$hZKh|fHqH?X=Yal9;H7n>k8dGEV;J)zO--h@Nj|`5xIQ0a&>cs za27=%MkW{UfAquKIKuez4supLNV=|o+4?iS@O+uTn*oU< zPTX2O0Tk*UAJdML0_kj`Ab7h{Ix{~9oRk!x1*4zdj%636X(WecA|LP}j#ChTMwNVK zBv}j_=mA%gQk!OM2^k2GWiQmc6s0OA<4mVPFQzTr3%W1nTD7Ujfj-W z-NW926wRjErEc46jqtt=TG1CG2_;ufh61beTa9%f5?_&I9jLI-Iaw7Pfv#dwPc$Kp z(R#yHC30_)cIFG!KEJ=;{S3(c$t{Lzeq4}Rm;q_+Hk3^sZbpL8FyIrS<0nF&R5B4T zo+>~L^jhr^9(DT0(-*>z*Dh&y88I^6r-JwRBLmN=k8Bb1XOr!$qnIy2~a-v_R+4IcY=0r6Ha``>kl9?3~OK7-y zSek(9Roy;*za=ojDVe<2$YNXLL&DYO;0s>icTAZ-N^FbL)lZt(fp$L{kwIWCu&Hj! zFCV(hEM*mRW^)+801fE=^V6_NkW_sBM?Oe0;gRKK0vnXo3|=ZikoPxb*c%?KDlerc z1_{c-!|Ytn{L9h+>rG?w3=0q?z3 zXtGg7C+AUmA7P&%?0s^4W4XIyX&^OukL+%GYj)6qQ#m?mN=m{5B%r-s`gVV&d(sXh zirsiF>^$Eg0F5Hm-@sNLoLbhsnmx9xe8J6cwohPp=$L{U0k-J;1>@^Zfx&K>btSCG z@!uNd2?I`?%!IOos;iwFx1GFBudyENmVTF2fhE8PgW#5Q`xM{JscKf=XWW@hEg)qv zODknle|^kl1o5q98vpo?7WWpxf8GDg?=8DqqxPeiu&y*M)ooSKHQjm(xe zt_N%@0To8t`uF(W6VUIERUvM*cW|-%qNdVK?%Bmh&{OM2wm~0XY^R2E81Ym=&PrLZ zVST_@ZA6B#44FYKr%`nfsvGaFn4mWF1*JZqdOyPg4uf9FLu_UP4g&h(IMSz^?p-i+ zG!iYsr0{GLt)mK++Lj42F=5&^9>S_d3c8{j&Fh^=tY>w-IrN*^-Tdt!;2twn9^xCH z$!RK+KqDJ#h>pWJa>#6-1aV-fO4cZ5Im~5Dpx$VpP8{GV z55Y27h9NcEjNNc9o4mh7q;%R-Saltb2~LW_lf*Jj3X5?C|>AvzUmwf%U@6-)9kJOGEB zV0*Hdry?^II@m5f=|-L39-1N$y3Otx!S|#B5rHuY%4dL)r zI$4|1w6}mEdQ{PDB)o#y#Bse1EN;Ufq7@`! z85$~8F{jAAl?Oo&U=}6<`e=C-4mOk-8Cj1hk^=8x^ibjQsVEOq>dX78 zfGk%~P@|JJhlL~;FkL|)5q6JXdls37Pbh(f)>n|$i8}?;BV=7H1CTnLc(mgsuN?-6 zAw}Zuy0v|FR4<%dfb_94R{SvIM7!)YS!2oSt!s;)989w>m}LtnYh`G zzD4KIb!E$A|GhLFhJQ?#CVqI6aXuPCt%#*AvJM+5Do>6hz z2V3N`8EXt>yNvZHKSR5-3Hm>929TZkbSnBE6H%c(suG&06C(u$oeG;f!5^@Z4>tUA zb0M*sg`E6(pZFXbDLu|=0Qs6lcLOoi9#6D7qdP~GEM}=q8H(=)>Y~|-+9o42&5HTN zpLN<1iUJyq*YXhBCIJ6@F&(?%yT(YyQ}Hr6&)ufXJ?1ITTq?P-k>(^ASikA@aM*7E zQ^Ls}jm8#L!Icpp=qzWf-NWZhmvDyc*`*-M%T*z;TGeJoq7$Q-h8aY`h+{lmG-s@~ z(Mjp-tfjewJIA9qmqdNWEt-fa;_*~)^`NS>0M1R4@(UAH5P8tkR9O`+XgjS_Z(jb|glpNSQu}fMXBCxdqK|{W`c<+KhrEF~53pkLQOZ~#lklAE=^`ZJa4lsVtd`-Av z)3aeaxnZ}qVgFM@2MNX>1O~n}JS1y`dNl$mjg+q%sYe@WWo~@iZtM{UMe#))A61g_ ze9cURK8?OUZq&$frs@2hriCjv)*N-+5A3)Nwax%kG$%xcW52eCP?+(q3GN1 z{x_gcze_uaHIEdoqngK3Xa3K$qpmG!^hgfzGwn#F({}v>=+hNC=ozEGhCbc>cvI&H z`t-Y+$MNIu;D3QWrS?hJ{SNw6cinWqUdda!^Gu^!-7nB5c7uKd&4aH;H4i-n(NoBQ z8)C1)h;A!l&BOYX{hh%p&_S2fL65PMF#ih z&T!mO&Er=&#II?G&PdMR*F63{?Kt?6i=u|zlTp8=uDEtbSJ)9{J?DOsVwMl7OcEZ><`FC$`(q2>=Kelsr zN1^P`R>R~D@GfqS~#PV%RpPB0G zGe2t{NS4_j&?ntlfhRM+$RQ$*sl6-1jL)7?%JjNA7w0pV@SN`nQ4TRa$8@330{V@b zX1)^p+W6(%YtT%4#{8Y70h_PW*r*R_SDCEP^TOeiu($J*as7`B7hXox*B>shKV4|j zUED#;x27#7pPTQzN_(^MTldwQbg$^Ud{~;(WW3Mbh-I0jzDnRTxJvyg;==1g;48~g zj{NfU)%%~*e$+gc(@xGFF0b8NS=U|J^jX7MifkzBZK(SGB8SkP*l7Foy#utV>w9tH-lmD~rlH7^*)hKU`pvSZn>Mz*2CQ37 zdRs2OTW;xFXAh7b6I(v4tB!;%f01pwGLous!b3s1?GJR@19#g(BCmeg-kxh(h$5yP z>9cmfrX6X7ot3lSGYFRxMRs%krsl!AS1R&L&7&%Pucl$|)x=&sVXu)`^Y~ln)BZcc z59rh1$RS224#tUc2-d?dMCg;=;k55>(5Gd>A)b{$ltZlR5jOuKhnOH7{vTq6Zaw(7 zZ`6ZJ{o5D)Z@R+v|Kh{E=lEaTICz=+J{^vtJS$z6*ZWi|np>x{EdOJ!{8Q;v>GFd9 zLiLvxW1Z!Nga0Aa(*J@P{GZ~5KWFd<8$(Ak`2Rxj!sot=#2I{y{Qoaz@aI)B|7r$* z`{xWksu=W-XYjy}89c{d&EUbHqZvG9r}`2+<7fsy|8LIV`!w0Y0_Yf?e2A{O$$iDT znUU<;$M}(xSHy$@7;QQ~X7-iQiNM7GGO)jB3KFJ;F_(*{JdsU?$PR3uyOh$|SCC^w z1ttI%9MXKi^W$Hja9n}9sbb%KzRBaJ^kNWdFyutoM)CR2kSm>?_p6BF1^Fvty2lh$ zWo~91r-U`jtw;|A2lT^y#jP$uP9xtiY`&oBo!1)-!IUey(0OM!8>8V*5eYTsFEHN>xwCe%$V1$emm~u zRtcLpyUZvfKhQxbN`Ahl$>X6yfM^#3-COGtWbx;*Z67eTn2b2eI^kMoigqN{Lr$Gi~dPrh!sOpDYe{fs#AiHUWu z1s4*|rd>zdR30>B%aLL+Cb~V@Ds>ed5i(DeF8f+Hrb8n9k0&4i@w`isyj_OOgscv9!cuHt*z`Ty^RI3LugRJ5 ze#aLl%k>VI{VcT&MTBck+p7|t2Yj=~_$Emxx9`U^2xBA`vZ__Diutn2&Ohpk>1GAp z&!&)_J&xFTr5hKZba#p3y5N^L+3)x-C`t#g!jeA3=afP2!Oc%3Xu#kSo00K^;zbh? zXL>fMXsolWwKNnA^*7llQ0oRSvAh|;N}VV!9Ge;Zu=U|hP8lxPdd{USky-8W0=b>6 zjRVQKPoD-V>dC`N^4{&j2#;5}d?;=1hiO)zrBv${bf9{MNn;H*g4q`yn~^3U-*@%A zZW7eR;QitK#qTQH%XR!~$R>x{@d9n94oM#tCXdBO-0J#tc2PPRKGofBNqmB}8z)}9 z;FQ{E7x$U-76d_gX0P9<2y+y@SvMoN?A&b0vg)M9JOm3O4$#?VOp8v@siAkn??%`@ zwH=r}FSuUY@@`YV2u@D#D>P7idZ_xX&X)uhNNeJ%9&2T4ok;53vCcGG!u_)HN;A&t z56NKBF$RAUUtW9kBdl`~xd2pz3zFBr3+_tyoNkf0bzQYa@%iT1-LKuK^Ba;d9L=A3UVR_#EQ108h2*Gb?{907#;^hA5J;w_%|^K= z$@Xj3!b#_nm15qcjaK@A7q4q4n^z_$Ia#2);56^e=R03n+q~$qETJCh{7^X4Rexu` z)kLjV2OuV@8~jkBUY7@C*t>Y{NDW=bIieW2z57V;~?Dek)J^T2%kNWCZcy%q$l z;$0wFThuY6kOfIU7j_d)a^1_@IwA;dQx%8aSmh>uC|jj98ci@8!MSq*8cq_v-{~zZ zNg+u&29^@`i)gPdHX}cA9rF#Ry9xd>6&}THs@k~*g@U>}61H!V-U@DN2r@E>4AMSl zE#eSOF~^+}1hK@pdsb50ID5R<43y!wMC2ebFy%+B24DJ3xUuer0yOK!z-c>&KzTc- zZAB3`KSYN61qRToawA6$bZDDfBuw2l0V6<HOD=oQ=; zteZz|$#0!grThgQ0+u&QjWeT22z6tiB^?ZT@l1XuLw0Jwe7(|;?HOdSA2^$5@Isx6 zQqlr3ZQQ;Q>>>f^4~3N?N%}a9Z?ap;#L;jGDtC$zz(Wbt*EYiWN%cRYLwi*so+GdD zWmqQX_`1Xezn`{xD@9u|6Or6*p2TM3h@s)9*MIvge7}mul09e<<|6NgWzF_irgsT| zxh>|>+{i{$0J1P+Y-J-VnJog0v8RDU7O@=ljG#&t$b(6&i?ja*Ry|uKxCW|lxr1h5 zLygj%mh%#DeE89i-T_-!i2VIgJooECGtVH*d(abvpuXRB48OVJCKt^m{#ZP_2hYx< zGpAywCZnb^EYP@UM$$0tOBB~Bj`by|dXUSA-lD#v7*{KyJOi@}!K#{4#6NQO9qdtD zow5p%H=Y@acXL-_3#REx;CLF#0hS2Y-6Vw93nh@z>+h-4i~@SZ!iO(u)XOR(Y=?sM zLqw&Np*rC8z*)C<-_GXtJP4(k zVL&0FG39I)5*K=5UV)j>VgO6} z${K&SD(!62OzPWifvV>0jTZ*;bJog2M~I*>xc6e5Ij1D_@TQg}yMIYJKV~< bOo26;PD#<@|}jMRO=Rzw5CvCHGs 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