From 0766c6480a0ede0ef54cbc1834720a16141fdf2f Mon Sep 17 00:00:00 2001 From: Dimitri Herzog Date: Wed, 8 Apr 2020 23:03:07 +0200 Subject: [PATCH] #27: CLI tool --- .github/workflows/ci-build.yml | 12 +- .github/workflows/release.yml | 2 +- .gitignore | 3 + Dockerfile | 3 + Makefile | 11 +- api/api.go | 24 + cmd/blocking.go | 107 +++ cmd/blocking_test.go | 42 + cmd/root.go | 86 ++ cmd/serve.go | 101 +++ cmd/version.go | 21 + docs/README.md | 18 +- docs/blocky-grafana.json | 1209 ++++++++++++++++------------ docs/grafana-dashboard.png | Bin 131059 -> 233493 bytes go.mod | 15 +- go.sum | 191 +++++ lists/list_cache_test.go | 3 +- main.go | 122 +-- metrics/metrics.go | 6 +- resolver/blocking_resolver.go | 151 +++- resolver/blocking_resolver_test.go | 216 ++++- resolver/metrics_resolver.go | 2 +- resolver/mocks.go | 3 - resolver/resolver.go | 2 +- resolver/resolver_test.go | 6 +- resolver/upstream_resolver_test.go | 2 - server/server.go | 98 ++- server/server_test.go | 2 +- web/index.go | 16 + 29 files changed, 1774 insertions(+), 700 deletions(-) create mode 100644 api/api.go create mode 100644 cmd/blocking.go create mode 100644 cmd/blocking_test.go create mode 100644 cmd/root.go create mode 100644 cmd/serve.go create mode 100644 cmd/version.go create mode 100644 web/index.go diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 7d4bf877..ef0e4f55 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -23,18 +23,18 @@ jobs: curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi - + - name: Install golangci-lint run: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(go env GOPATH)/bin v1.21.0 - - name: Run golangci-lint - run: make lint + - name: Build + run: make tools build - name: Test - run: make test + run: make test - - name: Build - run: make build + - name: Run golangci-lint + run: make lint - name: Docker images run: make docker-build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b3e97a2f..59a45cad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v1 - name: Build - run: make build + run: make tools build - name: Test run: make test diff --git a/.gitignore b/.gitignore index 517f0352..19937588 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .idea/ *.iml bin/ +docs/swagger.json +docs/swagger.yaml +docs/docs.go config.yml coverage.txt todo.txt \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 7620e4a5..574abbb8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,6 +22,7 @@ RUN go mod download ADD . . ARG opts +RUN make tools RUN env ${opts} make build # final stage @@ -36,4 +37,6 @@ COPY --from=build-env /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ HEALTHCHECK --interval=1m --timeout=3s CMD dig @127.0.0.1 -p 53 healthcheck.blocky +tcp || exit 1 +WORKDIR /app + ENTRYPOINT ["/app/blocky","--config","/app/config.yml"] \ No newline at end of file diff --git a/Makefile b/Makefile index 79d97dd7..29dc2491 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all clean build test lint run buildMultiArchRelease docker-buildx-push help +.PHONY: all tools clean build test lint run buildMultiArchRelease docker-buildx-push help .DEFAULT_GOAL := help VERSION := $(shell git describe --always --tags) @@ -7,18 +7,23 @@ DOCKER_IMAGE_NAME="spx01/blocky" BINARY_NAME=blocky BIN_OUT_DIR=bin +tools: ## prepare build tools + mkdir -p ~/.docker && echo "{\"experimental\": \"enabled\"}" > ~/.docker/config.json + go get github.com/swaggo/swag/cmd/swag + all: test lint build ## Build binary (with tests) clean: ## cleans output directory $(shell rm -rf $(BIN_OUT_DIR)/*) build: ## Build binary - go build -v -ldflags="-w -s -X main.version=${VERSION} -X main.buildTime=${BUILD_TIME}" -o $(BIN_OUT_DIR)/$(BINARY_NAME)$(BINARY_SUFFIX) + $(shell go env GOPATH)/bin/swag init -g api/api.go + go build -v -ldflags="-w -s -X blocky/cmd.version=${VERSION} -X blocky/cmd.buildTime=${BUILD_TIME}" -o $(BIN_OUT_DIR)/$(BINARY_NAME)$(BINARY_SUFFIX) test: ## run tests go test -v -coverprofile=coverage.txt -covermode=atomic -cover ./... -lint: ## run golangcli-lint checks +lint: build ## run golangcli-lint checks $(shell go env GOPATH)/bin/golangci-lint run run: build ## Build and run binary diff --git a/api/api.go b/api/api.go new file mode 100644 index 00000000..240cbc7b --- /dev/null +++ b/api/api.go @@ -0,0 +1,24 @@ +// @title blocky API +// @description blocky API + +// @contact.name blocky@github +// @contact.url https://github.com/0xERR0R/blocky + +// @license.name Apache 2.0 +// @license.url http://www.apache.org/licenses/LICENSE-2.0.html + +// @BasePath /api/ +package api + +const ( + BlockingStatusPath = "/api/blocking/status" + BlockingEnablePath = "/api/blocking/enable" + BlockingDisablePath = "/api/blocking/disable" +) + +type BlockingStatus struct { + // True if blocking is enabled + Enabled bool `json:"enabled"` + // If blocking is temporary disabled: amount of seconds until blocking will be enabled + AutoEnableInSec uint `json:"autoEnableInSec"` +} diff --git a/cmd/blocking.go b/cmd/blocking.go new file mode 100644 index 00000000..0a7db01d --- /dev/null +++ b/cmd/blocking.go @@ -0,0 +1,107 @@ +package cmd + +import ( + "blocky/api" + "encoding/json" + "fmt" + "net/http" + + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" +) + +//nolint:gochecknoinits +func init() { + rootCmd.AddCommand(blockingCmd) + + blockingCmd.AddCommand(&cobra.Command{ + Use: "enable", + Args: cobra.NoArgs, + Aliases: []string{"on"}, + Short: "Enable blocking", + Run: enableBlocking, + }) + + disableCommand := &cobra.Command{ + Use: "disable", + Aliases: []string{"off"}, + Args: cobra.NoArgs, + Short: "Disable blocking for certain duration", + Run: disableBlocking, + } + disableCommand.Flags().DurationP("duration", "d", 0, "duration in min") + blockingCmd.AddCommand(disableCommand) + + blockingCmd.AddCommand(&cobra.Command{ + Use: "status", + Args: cobra.NoArgs, + Short: "Print the status of blocking resolver", + Run: statusBlocking, + }) +} + +//nolint:gochecknoglobals +var blockingCmd = &cobra.Command{ + Use: "blocking", + Aliases: []string{"block"}, + Short: "Control status of blocking resolver", +} + +func enableBlocking(cmd *cobra.Command, args []string) { + resp, err := http.Get(apiURL(api.BlockingEnablePath)) + if err != nil { + log.Fatal("can't execute", err) + } + defer resp.Body.Close() + + if resp.StatusCode == http.StatusOK { + log.Info("OK") + } else { + log.Fatal("NOK: ", resp.Status) + } +} + +func disableBlocking(cmd *cobra.Command, args []string) { + duration, _ := cmd.Flags().GetDuration("duration") + + resp, err := http.Get(fmt.Sprintf("%s?duration=%s", apiURL(api.BlockingDisablePath), duration)) + if err != nil { + log.Fatal("can't execute", err) + } + defer resp.Body.Close() + + if resp.StatusCode == http.StatusOK { + log.Info("OK") + } else { + log.Fatal("NOK: ", resp.Status) + } +} + +func statusBlocking(cmd *cobra.Command, args []string) { + resp, err := http.Get(apiURL(api.BlockingStatusPath)) + if err != nil { + log.Fatal("can't execute", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + log.Fatal("NOK: ", resp.Status) + } + + var result api.BlockingStatus + err = json.NewDecoder(resp.Body).Decode(&result) + + if err != nil { + log.Fatal("can't read response: ", err) + } + + if result.Enabled { + log.Info("blocking enabled") + } else { + if result.AutoEnableInSec == 0 { + log.Info("blocking disabled") + } else { + log.Infof("blocking disabled for %d seconds", result.AutoEnableInSec) + } + } +} diff --git a/cmd/blocking_test.go b/cmd/blocking_test.go new file mode 100644 index 00000000..efeaac1e --- /dev/null +++ b/cmd/blocking_test.go @@ -0,0 +1,42 @@ +package cmd + +import ( + "blocky/api" + "encoding/json" + "net/http" + "net/http/httptest" + "net/url" + "strconv" + "testing" +) + +func testHTTPAPIServer(fn func(w http.ResponseWriter, r *http.Request)) *httptest.Server { + ts := httptest.NewServer(http.HandlerFunc(fn)) + url, _ := url.Parse(ts.URL) + apiHost = url.Hostname() + port, _ := strconv.Atoi(url.Port()) + apiPort = uint16(port) + + return ts +} + +func TestEnable(t *testing.T) { + ts := testHTTPAPIServer(func(w http.ResponseWriter, r *http.Request) {}) + defer ts.Close() + enableBlocking(nil, []string{}) +} + +func TestDisable(t *testing.T) { + ts := testHTTPAPIServer(func(w http.ResponseWriter, r *http.Request) {}) + defer ts.Close() + disableBlocking(blockingCmd, []string{}) +} + +func TestStatus(t *testing.T) { + ts := testHTTPAPIServer(func(w http.ResponseWriter, r *http.Request) { + response, _ := json.Marshal(api.BlockingStatus{Enabled: true}) + _, _ = w.Write(response) + }) + defer ts.Close() + statusBlocking(nil, []string{}) +} diff --git a/cmd/root.go b/cmd/root.go new file mode 100644 index 00000000..11448db4 --- /dev/null +++ b/cmd/root.go @@ -0,0 +1,86 @@ +package cmd + +import ( + "blocky/config" + "fmt" + "os" + + "github.com/spf13/cobra" + prefixed "github.com/x-cray/logrus-prefixed-formatter" + + log "github.com/sirupsen/logrus" +) + +//nolint:gochecknoglobals +var ( + version = "undefined" + buildTime = "undefined" + configPath string + cfg config.Config + apiHost string + apiPort uint16 +) + +//nolint:gochecknoglobals +var rootCmd = &cobra.Command{ + Use: "blocky", + Short: "blocky is a DNS proxy ", + Long: `A fast and configurable DNS Proxy +and ad-blocker for local network. + +Complete documentation is available at https://github.com/0xERR0R/blocky`, + Run: func(cmd *cobra.Command, args []string) { + serveCmd.Run(cmd, args) + }, +} + +func apiURL(path string) string { + return fmt.Sprintf("http://%s:%d%s", apiHost, apiPort, path) +} + +//nolint:gochecknoinits +func init() { + cobra.OnInitialize(initConfig) + + rootCmd.PersistentFlags().StringVarP(&configPath, "config", "c", "./config.yml", "path to config file") + rootCmd.PersistentFlags().StringVar(&apiHost, "apiHost", "localhost", "host of blocky (API)") + rootCmd.PersistentFlags().Uint16Var(&apiPort, "apiPort", 0, "port of blocky (API)") +} + +func configureLog(cfg *config.Config) { + if level, err := log.ParseLevel(cfg.LogLevel); err != nil { + log.Fatalf("invalid log level %s %v", cfg.LogLevel, err) + } else { + log.SetLevel(level) + } + + logFormatter := &prefixed.TextFormatter{ + TimestampFormat: "2006-01-02 15:04:05", + FullTimestamp: true, + ForceFormatting: true, + ForceColors: true, + QuoteEmptyFields: true} + + logFormatter.SetColorScheme(&prefixed.ColorScheme{ + PrefixStyle: "blue+b", + TimestampStyle: "white+h", + }) + + log.SetFormatter(logFormatter) +} + +func initConfig() { + cfg = config.NewConfig(configPath) + configureLog(&cfg) + + if apiPort == 0 { + apiPort = cfg.HTTPPort + } +} + +func Execute() { + if err := rootCmd.Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } +} diff --git a/cmd/serve.go b/cmd/serve.go new file mode 100644 index 00000000..2a9e1c7b --- /dev/null +++ b/cmd/serve.go @@ -0,0 +1,101 @@ +package cmd + +import ( + "blocky/config" + "blocky/server" + "context" + "fmt" + "net" + "net/http" + "os" + "os/signal" + "syscall" + "time" + + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" +) + +//nolint:gochecknoinits +func init() { + rootCmd.AddCommand(serveCmd) +} + +//nolint:gochecknoglobals +var serveCmd = &cobra.Command{ + Use: "serve", + Args: cobra.NoArgs, + Short: "start blocky DNS server (default command)", + Run: func(cmd *cobra.Command, args []string) { + printBanner() + + configureHTTPClient(&cfg) + + signals := make(chan os.Signal) + done := make(chan bool) + + signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM) + + server, err := server.NewServer(&cfg) + if err != nil { + log.Fatal("cant start server ", err) + } + + server.Start() + + go func() { + <-signals + log.Infof("Terminating...") + server.Stop() + done <- true + }() + + <-done + }, +} + +func configureHTTPClient(cfg *config.Config) { + if cfg.BootstrapDNS != (config.Upstream{}) { + if cfg.BootstrapDNS.Net == "tcp" || cfg.BootstrapDNS.Net == "udp" { + dns := net.JoinHostPort(cfg.BootstrapDNS.Host, fmt.Sprint(cfg.BootstrapDNS.Port)) + log.Debugf("using %s as bootstrap dns server", dns) + + r := &net.Resolver{ + PreferGo: true, + Dial: func(ctx context.Context, network, address string) (net.Conn, error) { + d := net.Dialer{ + Timeout: time.Millisecond * time.Duration(2000), + } + return d.DialContext(ctx, cfg.BootstrapDNS.Net, dns) + }} + + http.DefaultTransport = &http.Transport{ + Dial: (&net.Dialer{ + Timeout: 5 * time.Second, + Resolver: r, + }).Dial, + TLSHandshakeTimeout: 5 * time.Second, + } + } else { + log.Fatal("bootstrap dns net should be udp or tcs") + } + } +} + +func printBanner() { + log.Info("_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/") + log.Info("_/ _/") + log.Info("_/ _/") + log.Info("_/ _/ _/ _/ _/") + log.Info("_/ _/_/_/ _/ _/_/ _/_/_/ _/ _/ _/ _/ _/") + log.Info("_/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/ _/") + log.Info("_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/") + log.Info("_/ _/_/_/ _/ _/_/ _/_/_/ _/ _/ _/_/_/ _/") + log.Info("_/ _/ _/") + log.Info("_/ _/_/ _/") + log.Info("_/ _/") + log.Info("_/ _/") + log.Infof("_/ Version: %-18s Build time: %-18s _/", version, buildTime) + log.Info("_/ _/") + log.Info("_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/") +} diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 00000000..6e093b4f --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,21 @@ +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +//nolint:gochecknoinits +func init() { + rootCmd.AddCommand(&cobra.Command{ + Use: "version", + Args: cobra.NoArgs, + Short: "Print the version number of blocky", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("blocky") + fmt.Printf("Version: %s\n", version) + fmt.Printf("Build time: %s\n", buildTime) + }, + }) +} diff --git a/docs/README.md b/docs/README.md index f73ddf4f..974f1628 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,7 +10,7 @@

- +

# Blocky @@ -130,7 +130,7 @@ queryLog: # optional: DNS listener port, default 53 (UDP and TCP) port: 53 -# optional: HTTP listener port, default 0 = no http listener. If > 0, will be used for prometheus metrics, pprof, ... +# optional: HTTP listener port, default 0 = no http listener. If > 0, will be used for prometheus metrics, pprof, REST API, ... httpPort: 4000 # optional: use this DNS server to resolve blacklist urls and upstream DNS servers (DOH). Useful if no DNS resolver is configured and blocky needs to resolve a host name. Format net:IP:port, net must be udp or tcp bootstrapDns: tcp:1.1.1.1 @@ -165,11 +165,23 @@ Download binary file for your architecture and run `./blocky --config config.yml ### Run with kubernetes (helm) See [this repo](https://github.com/billimek/billimek-charts/tree/master/charts/blocky) or [the helm hub site](https://hub.helm.sh/charts/billimek/blocky) for details about running blocky via helm in kubernetes. +## CLI / REST API +If http listener is enabled, blocky provides REST API to control blocking status. Swagger documentation under `http://host:port/swagger` + +To run CLI, please ensure, that blocky DNS server is running, than execute `blocky help` for help or +- `./blocky blocking enable` to enable blocking +- `./blocky blocking disable` to disable blocking +- `./blocky blocking disable --duration [duration]` to disable blocking for a certain amount of time (30s, 5m, 10m30s, ...) +- `./blocky blocking status` to print current status of blocking + +To run this inside docker run `docker exec blocky ./blocky blocking status` + ## Additional information ### Prometheus Blocky can export metrics for prometheus. Example grafana dashboard definition [as JSON](blocky-grafana.json) -![grafana-dashboard](grafana-dashboard.png) +![grafana-dashboard](grafana-dashboard.png). Please install `grafana-piechart-panel` and set [disable-sanitize-html](https://grafana.com/docs/grafana/latest/installation/configuration/#disable-sanitize-html) in config or as env to use control buttons to enable/disable the blocking status. + Following metrics are being exported: diff --git a/docs/blocky-grafana.json b/docs/blocky-grafana.json index f57f07d7..4a760aa9 100644 --- a/docs/blocky-grafana.json +++ b/docs/blocky-grafana.json @@ -1,4 +1,65 @@ { + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "Prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + }, + { + "name": "VAR_BLOCKY_URL", + "type": "constant", + "label": "blocky API URL", + "value": "", + "description": "" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "6.7.1" + }, + { + "type": "panel", + "id": "grafana-piechart-panel", + "name": "Pie Chart", + "version": "1.4.0" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "panel", + "id": "heatmap", + "name": "Heatmap", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + } + ], "annotations": { "list": [ { @@ -15,9 +76,27 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 1, + "id": null, + "iteration": 1586378460183, "links": [], "panels": [ + { + "content": "\n
\n ×Done!\n
\n
\n \n \n \n
\n\n\n", + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 0 + }, + "id": 42, + "mode": "html", + "timeFrom": null, + "timeShift": null, + "title": "Blocking status", + "transparent": true, + "type": "text" + }, { "cacheTimeout": null, "colorBackground": false, @@ -27,7 +106,7 @@ "rgba(237, 129, 40, 0.89)", "#299c46" ], - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "format": "none", "gauge": { "maxValue": 100, @@ -37,9 +116,9 @@ "thresholdMarkers": true }, "gridPos": { - "h": 4, - "w": 3, - "x": 0, + "h": 3, + "w": 2, + "x": 5, "y": 0 }, "id": 26, @@ -59,7 +138,6 @@ "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, - "options": {}, "postfix": "", "postfixFontSize": "50%", "prefix": "", @@ -84,6 +162,8 @@ { "expr": "sum(up{job=\"blocky\"})", "instant": true, + "interval": "", + "legendFormat": "", "refId": "A" } ], @@ -113,11 +193,11 @@ "colorBackground": false, "colorValue": true, "colors": [ - "#299c46", + "#d44a3a", "rgba(237, 129, 40, 0.89)", - "#d44a3a" + "#299c46" ], - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "format": "none", "gauge": { "maxValue": 100, @@ -127,13 +207,12 @@ "thresholdMarkers": true }, "gridPos": { - "h": 4, - "w": 3, - "x": 3, + "h": 3, + "w": 2, + "x": 7, "y": 0 }, - "hideTimeOverride": true, - "id": 4, + "id": 43, "interval": null, "links": [], "mappingType": 1, @@ -150,8 +229,6 @@ "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", "postfix": "", "postfixFontSize": "50%", "prefix": "", @@ -174,367 +251,30 @@ "tableColumn": "", "targets": [ { - "expr": "ceil(sum(increase(blocky_query_total[24h]))) ", - "instant": false, + "expr": "blocky_blocking_enabled", + "instant": true, + "interval": "", + "legendFormat": "", "refId": "A" } ], - "thresholds": "", - "timeFrom": "24h", - "timeShift": null, - "title": "Query Count Total 24h", - "transparent": true, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 2, - "format": "percentunit", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 6, - "y": 0 - }, - "id": 34, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(increase(blocky_response_total{response_type=\"BLOCKED\"}[24h])) / sum(increase(blocky_query_total[24h])) ", - "instant": false, - "refId": "A" - } - ], - "thresholds": "", + "thresholds": "1,1", "timeFrom": null, "timeShift": null, - "title": "Queries blocked 24h", + "title": "Blocking", "transparent": true, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 2, - "format": "bytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 9, - "y": 0 - }, - "id": 28, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "text": "on", + "value": "1" }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(go_memstats_sys_bytes{job=\"blocky\"})/sum(up{job=\"blocky\"})", - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Memory allocated", - "transparent": true, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ { "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPostfix": false, - "colorPrefix": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "ms", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 12, - "y": 0 - }, - "id": 24, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(increase(blocky_request_duration_ms_sum[1h])) / sum(increase(blocky_request_duration_ms_count[1h]))", - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Avg response time (all queries) 1h", - "transparent": true, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 16, - "y": 0 - }, - "id": 30, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(blocky_blacklist_cache) / sum(up{job=\"blocky\"})", - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Blacklist entries total", - "transparent": true, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" + "text": "off", + "value": "0" } ], "valueName": "current" @@ -549,7 +289,8 @@ "rgba(237, 129, 40, 0.89)", "#d44a3a" ], - "datasource": null, + "datasource": "${DS_PROMETHEUS}", + "decimals": 0, "format": "short", "gauge": { "maxValue": 100, @@ -559,9 +300,9 @@ "thresholdMarkers": true }, "gridPos": { - "h": 4, + "h": 3, "w": 3, - "x": 19, + "x": 9, "y": 0 }, "id": 36, @@ -581,7 +322,6 @@ "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, - "options": {}, "postfix": "", "postfixFontSize": "50%", "prefix": "", @@ -626,83 +366,103 @@ "valueName": "current" }, { - "cards": { - "cardPadding": null, - "cardRound": null + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "decimals": 2, + "format": "percentunit", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true }, - "color": { - "cardColor": "#FADE2A", - "colorScale": "sqrt", - "colorScheme": "interpolateYlOrBr", - "exponent": 0.5, - "mode": "opacity" - }, - "dataFormat": "tsbuckets", - "datasource": null, "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 4 + "h": 3, + "w": 3, + "x": 12, + "y": 0 }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 22, - "legend": { - "show": true + "id": 34, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null }, - "options": {}, - "reverseYBuckets": false, + "tableColumn": "", "targets": [ { - "expr": "sum(increase(blocky_request_duration_ms_bucket{response_type=\"RESOLVED\"}[24h])) by (le)", - "format": "heatmap", + "expr": "sum(increase(blocky_response_total{response_type=\"BLOCKED\"}[24h])) / sum(increase(blocky_query_total[24h])) ", "instant": false, - "legendFormat": "{{le}}", "refId": "A" } ], + "thresholds": "", "timeFrom": null, "timeShift": null, - "title": "request duration (upstream)", - "tooltip": { - "show": true, - "showHistogram": false - }, + "title": "Queries blocked 24h", "transparent": true, - "type": "heatmap", - "xAxis": { - "show": true - }, - "xBucketNumber": null, - "xBucketSize": null, - "yAxis": { - "decimals": null, - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true, - "splitFactor": null - }, - "yBucketBound": "auto", - "yBucketNumber": null, - "yBucketSize": null + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fill": 1, "fillGradient": 0, "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 4 + "h": 7, + "w": 9, + "x": 15, + "y": 0 }, "hiddenSeries": false, "id": 10, @@ -780,6 +540,411 @@ "alignLevel": null } }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorPostfix": false, + "colorPrefix": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 5, + "x": 0, + "y": 3 + }, + "id": 24, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(increase(blocky_request_duration_ms_sum[1h])) / sum(increase(blocky_request_duration_ms_count[1h]))", + "instant": false, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Avg response time (all queries) 1h", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 5, + "y": 3 + }, + "hideTimeOverride": true, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "pluginVersion": "6.6.2", + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "ceil(sum(increase(blocky_query_total[24h]))) ", + "instant": false, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": "24h", + "timeShift": null, + "title": "Query Count Total 24h", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 30, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(blocky_blacklist_cache) / sum(up{job=\"blocky\"})", + "instant": false, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Blacklist entries total", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "decimals": 2, + "format": "bytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 12, + "y": 3 + }, + "id": 28, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(go_memstats_sys_bytes{job=\"blocky\"})/sum(up{job=\"blocky\"})", + "instant": false, + "refId": "A" + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Memory allocated", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#FADE2A", + "colorScale": "sqrt", + "colorScheme": "interpolateYlOrBr", + "exponent": 0.5, + "mode": "opacity" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 7 + }, + "heatmap": {}, + "hideZeroBuckets": false, + "highlightCards": true, + "id": 22, + "legend": { + "show": true + }, + "reverseYBuckets": false, + "targets": [ + { + "expr": "sum(increase(blocky_request_duration_ms_bucket{response_type=\"RESOLVED\"}[24h])) by (le)", + "format": "heatmap", + "instant": false, + "legendFormat": "{{le}}", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "request duration (upstream)", + "tooltip": { + "show": true, + "showHistogram": false + }, + "transparent": true, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, { "aliasColors": {}, "breakPoint": "50%", @@ -788,14 +953,14 @@ "label": "Others", "threshold": "" }, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fontSize": "80%", "format": "short", "gridPos": { - "h": 6, - "w": 8, - "x": 0, - "y": 12 + "h": 8, + "w": 6, + "x": 12, + "y": 7 }, "id": 14, "interval": null, @@ -810,7 +975,6 @@ "links": [], "maxDataPoints": 3, "nullPointMode": "connected", - "options": {}, "pieType": "donut", "strokeWidth": "1", "targets": [ @@ -836,45 +1000,46 @@ "label": "Others", "threshold": 0 }, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", + "decimals": null, "fontSize": "80%", "format": "short", "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 12 + "h": 8, + "w": 6, + "x": 18, + "y": 7 }, - "id": 38, - "interval": "", + "id": 8, + "interval": null, "legend": { - "percentage": true, - "percentageDecimals": 1, + "header": "count", "show": true, - "sideWidth": 250, - "values": false + "sideWidth": 300, + "values": true }, "legendType": "Right side", "links": [], "maxDataPoints": 3, "nullPointMode": "connected", - "options": {}, "pieType": "donut", - "strokeWidth": "1", + "pluginVersion": "6.6.2", + "strokeWidth": 1, "targets": [ { - "expr": " sort_desc(sum by (response_type) (ceil(increase(blocky_response_total[24h]))))", + "expr": "sort_desc(sum by (client) (ceil(increase(blocky_query_total[24h]))))", + "format": "time_series", "instant": true, - "legendFormat": "{{response_type}}", + "legendFormat": "{{ client }}", "refId": "A" } ], "timeFrom": "24h", "timeShift": null, - "title": "Response Type", + "title": "Query per Client", "transparent": true, "type": "grafana-piechart-panel", - "valueName": "total" + "valueName": "current" }, { "aliasColors": {}, @@ -884,14 +1049,14 @@ "label": "Others", "threshold": 0 }, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fontSize": "80%", "format": "short", "gridPos": { "h": 6, - "w": 8, - "x": 16, - "y": 12 + "w": 6, + "x": 0, + "y": 15 }, "id": 2, "interval": null, @@ -906,7 +1071,6 @@ "links": [], "maxDataPoints": 3, "nullPointMode": "connected", - "options": {}, "pieType": "donut", "pluginVersion": "6.6.2", "strokeWidth": 1, @@ -933,14 +1097,14 @@ "label": "Others", "threshold": 0 }, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fontSize": "80%", "format": "short", "gridPos": { "h": 6, - "w": 8, - "x": 0, - "y": 18 + "w": 6, + "x": 6, + "y": 15 }, "id": 32, "interval": null, @@ -953,7 +1117,6 @@ "links": [], "maxDataPoints": 3, "nullPointMode": "connected", - "options": {}, "pieType": "donut", "pluginVersion": "6.6.2", "strokeWidth": 1, @@ -980,14 +1143,61 @@ "label": "Others", "threshold": 0 }, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fontSize": "80%", "format": "short", "gridPos": { "h": 6, - "w": 8, - "x": 8, - "y": 18 + "w": 6, + "x": 12, + "y": 15 + }, + "id": 38, + "interval": "", + "legend": { + "percentage": true, + "percentageDecimals": 1, + "show": true, + "sideWidth": 250, + "values": false + }, + "legendType": "Right side", + "links": [], + "maxDataPoints": 3, + "nullPointMode": "connected", + "pieType": "donut", + "strokeWidth": "1", + "targets": [ + { + "expr": " sort_desc(sum by (response_type) (ceil(increase(blocky_response_total[24h]))))", + "instant": true, + "legendFormat": "{{response_type}}", + "refId": "A" + } + ], + "timeFrom": "24h", + "timeShift": null, + "title": "Response Type", + "transparent": true, + "type": "grafana-piechart-panel", + "valueName": "total" + }, + { + "aliasColors": {}, + "breakPoint": "50%", + "cacheTimeout": null, + "combine": { + "label": "Others", + "threshold": 0 + }, + "datasource": "${DS_PROMETHEUS}", + "fontSize": "80%", + "format": "short", + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 15 }, "id": 12, "interval": null, @@ -1002,7 +1212,6 @@ "links": [], "maxDataPoints": 3, "nullPointMode": "connected", - "options": {}, "pieType": "donut", "strokeWidth": 1, "targets": [ @@ -1019,67 +1228,36 @@ "transparent": true, "type": "grafana-piechart-panel", "valueName": "current" - }, - { - "aliasColors": {}, - "breakPoint": "50%", - "cacheTimeout": null, - "combine": { - "label": "Others", - "threshold": 0 - }, - "datasource": null, - "decimals": null, - "fontSize": "80%", - "format": "short", - "gridPos": { - "h": 6, - "w": 8, - "x": 16, - "y": 18 - }, - "id": 8, - "interval": null, - "legend": { - "header": "count", - "show": true, - "sideWidth": 250, - "values": true - }, - "legendType": "Right side", - "links": [], - "maxDataPoints": 3, - "nullPointMode": "connected", - "options": {}, - "pieType": "donut", - "pluginVersion": "6.6.2", - "strokeWidth": 1, - "targets": [ - { - "expr": "sort_desc(sum by (client) (ceil(increase(blocky_query_total[24h]))))", - "format": "time_series", - "instant": true, - "legendFormat": "{{ client }}", - "refId": "A" - } - ], - "timeFrom": "24h", - "timeShift": null, - "title": "Query per Client", - "transparent": true, - "type": "grafana-piechart-panel", - "valueName": "current" } ], - "refresh": "5m", + "refresh": false, "schemaVersion": 22, "style": "dark", "tags": [], "templating": { - "list": [] + "list": [ + { + "current": { + "value": "${VAR_BLOCKY_URL}", + "text": "${VAR_BLOCKY_URL}" + }, + "hide": 2, + "label": "blocky API URL", + "name": "blocky_url", + "options": [ + { + "value": "${VAR_BLOCKY_URL}", + "text": "${VAR_BLOCKY_URL}" + } + ], + "query": "${VAR_BLOCKY_URL}", + "skipUrlSync": false, + "type": "constant" + } + ] }, "time": { - "from": "now-24h", + "from": "now-12h", "to": "now" }, "timepicker": { @@ -1099,5 +1277,8 @@ "timezone": "", "title": "blocky", "uid": "XMTgFM_Zk", - "version": 28 + "variables": { + "list": [] + }, + "version": 6 } \ No newline at end of file diff --git a/docs/grafana-dashboard.png b/docs/grafana-dashboard.png index 798a95de88fec3e0e06b3c1ad762a39eae7d7722..6e3e170282d327d2a4c898b27726960cbd69d37d 100644 GIT binary patch literal 233493 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%0D>j@*I7f$oLfN#kecPdrn(j>;3|%INg%X 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

S}*4EKIjI2hpZf)HAj4G| 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 z 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�Bl_9NDUsE(e_7pe01TOU0H1X`7CG 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 literal 131059 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

eXVleu@f|JlJ`DI$C!p;1E+9~8eZ%@Fn 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%0A5}+IS0%6_=GuMAa$29 zebQtB#{`(W007R_mMbiPRUg0A9OH*w#hl$($p1Bcsv>z$q~_)FjADAbK3Mg zNT284dN#8jCh4CW_%>9;6$A*1l%ts(G!gLIDf48-9a1P4cLh*qxe^uj@ZRH1u$*LI>!TsatV98A&l! zdkn4l-ZQls{{)|U&e%M8<%}Gv&+ihz1o0B2s)X-%n{@qj?7nN`hW6MzQ4yIeHlSrwPLVbE5YMKBpB#d#Wn+X^4 zBP!5RDaaABKp$|aGXDSAL@W_%(AgxI{S%e{!O*jGUJa zv|oP`;12$Qp80=EuNZbwe_r(e{d*kt|0Igx{|gQM-^BXgrvEorK~07KB%1$M{0aZ;u;j`@HE{QnI(zW=BBYm^POsO2?i{T+|cAB6qHg~1b&;^V5F#YTku_k=sl}2eLfJ>x{}t(?3G?w)2c$lgZOF2cZ)X|L)A&Ob6cIt1GDE zmB|3WbjlqOZGFwh0IuB*>|Io4o_A*!m~Q!9#m|qg<4rR(n(*HORms8WkSFiBw2k){ z4YH-l^|U2lA%lPpv!}?{BWlBg?!R|!)Zl!G4Q=jqRp8r7x^PYymB-s9hAf&Qc)RgK z3P1Rv;~3%6fea>OpPSsz2XFsn69~Rg{4h-kYx0c(kgy4vPwsi@^*RU*y>(e(Utxv2 zsu_Vit!0tFHTE)WL5?&KTmxA5sa>4+Zpa}TeXL@Jf<@B-4#0R24X?1EfJ#M}O6RkW z5ZKX^wU25U%Aww|W&pAFv0i@O%r@C@uD9PtZ2=13U7?Ek-7Xtc2EM=XCCzTZp zF9~o-p{y!vejD)>>3JIKu~N+J5d)Q(iBKjQ`Uk9+LQa1hgB^+(PG6ouE5n;)WR!VG z3xT)k&u(umVlSDB#W+ODI}6sq< zH0nt9dN@;$d!1Vb7T#ZhR1d=SMLhN^imBJWI99p8a}&$z;%O@P*zY%{s=hfNlY=X7 z40-}CReRnKYk}V1=Bl@Iw`Lin#JX~i170RPjsH2lerFcb`!f5v?q)`entr>dxz6;D zJ1Bn{C{BaEA=UHJ_sf>IOXq8ft4#ghHE9<^G|D{9vwXi@+}Co?0LWPYBjw3lb_fM( zH@u4`n<`{X70fJkc9mA$)llAlW|_X}5BwP#olrD|C85x^T#O@jcNSO93~bv6cR0W9 zE+?Gzg_HAI9IvTBB?TTP%2GcokBhin{FJWnx}JND{L5YK(I>Ki3jl-!O{+fvd%BqM zoGq&SS}C)gxQCH|9jYv_M)*i)mbDooMb`S|;FCy2o1z==E1n}{ef!{0`P>HWh-JVa z8$;Q_P}u*u-frHxc_u%v6p(SUvy2|NX#rXOS*WoNnrwx1{M#Y(jIh`0(f;Swxn&GlbzH?Y(!As6zHfXbs!3B*xnBSv&~ zka<5XTQszYfkG^f#&O$*m5LsxS{`}WjI>3p%CSDWul}lt5^`{?X~FPb-sqVAw8xPH zs{ku0XCCy?vp8V-o>0p|1V4#Tf6jzAV0PATqQ#*n&;{|5wjS8+$phc({QbCg8Td9= zeHR`FWbJs*UwF#f+Qpn0qUeP_y%_U~>3rp(kI;#wpVB!j>H1^N0)T^L@Ls`RraiM) zTwliLQY3zoW&R1}y&cJsM{iy*{=)u&GnP4BiHYsUx(C!6qBuGcnHwS`(^oJ(#Z|1Z zvclelS!;cNu&2)3eJ6%MSw6EH{X(PA&*vvQ_rF%kHhN4+#a9`fwCI)9KIs=A544TC zs)G3%j@A+OX2Hs`0Zzx0Q|woJ-Z=X(!}QSjr;zvDUc?Cf=VYh_Fsy5XnPi1C{Hn5U z;X`%R^3c@N?0r7RTDzL~UBM_fE#$`OV6mizpHWNkdiUy6wZBK53aZ4#-l=P_TuhW_ z*TdCrmi2-{)a{{*-{9`sPPI<_x~Pk`l%e)_mF-L;msG9;PhIwlKzCb3DJfE*C+#P> z-L0O7UukRQ+|e%eKQR5>kJ)@FN*Cq#BSE;JrF2urMcTNV7H-doNy58 ze2(;QJ&ZhFU;ij4zBp7*Lv^A zG+6Ms6$W$S!0EhQ-xFf89k>0@{GE*(V2A|>LX`OZuD%8)l_)cLZycYAG@ZxhmSF*e z<3;W-$??s)#NOk3c$TyoV-GDt!w4(M53m+G{1t;D6R}fg^lIfZvE!{u5qrHP3xh4@tvFfX{lV1*`BA!Hapa;4qu-5<*G2FO1u?J|ya{Rbd?7Rm z2_m_qLR;(g!i^(F#~|6Xg3z_d&033X&|I>t2hHJh?16<$sQmRc9_<)orT;m+P(*YMJ)z;^YV@-krrL5W$NWkv(0aHL#T%Hf4g3+Ys zWpL|4i!Ro3)!nsm?uHqAh|G68Jr<9sSnwLv5YDX@BV4Crk4;^(29eeQ(5HY)lRV8W=lkUD++<%(`#u>sBSeS07aQL}VC=q!i&!bM-uU z%x{*jpb_pnRJt@=xf}-ogi3NpWnGh9i^G%cX@@JkbT3PP+@PHcIgLMz$wJ0w|8A2vC&R-8$^GOgwK^=8p^iKJf%hFUzYfe%!zqem^LmWj z7K6;TpF0M&RxdqnZu3RRC5ekC6eozWd@F{7lP@S8=*agnTkp)i0{a0ALQphNQRy<= zhJWs%xI~rdk->4^?Y5*@+B^ondDsix-G-BAXEtxz8z%{mL=RpRPMUMa3z$qDA@Yqg zXC!2cPWvY=(7?_tk{| ztx!yI;htPTf_TRe9jl4g#CiVZ%0wsRsUD7+sq5`ZYeD1V#fzOz19i{uAEq8zNN@ua zz`&<8Cv?5WH!zZEN3F5%W)uWeQrUE~AecsjA`UNsEg63gDPJV4z))wu6Af&*3Yw9+pihAe%k$6dp+51)&f5~`t#Owml)7!3`u9b z2xeE2IX6ly&s#^wEH3fsnVFjPuCHu3;4=Rz>X)jrN9W~30tiPG_Diwa$KGB$$BViE z@y~%Gz3IY%CcD+~J;VA27Y_RPc(_!u59m`Yi0XxL@hG%_8e=KM9KQL94cgs7* z{cUbK-E$>tgAD7`WP4^{AWR}a`y%|9-^KB>5Aw-m|&+p^bww9$kya zy=@ZFTO*yhzu4Z^2B{#-`l;{EP~RtyLI#dZ>EOUb74?1J7J`FniAS*$2$*(#nChwY z0nPdIo?7^Q$ma7r^r{9md5Wf=jchlXZ}_YBm?fZ);BnvuWA^vB=~DAqKd%u4?%R^v zQwJ(xEyJ~l-kuK-=WVTw89rImetCVhs(pWqO;`2wDXrEkt9iX2$Tj+z2wgM@b%_E|E-34-2dI|zZ?9&6|hhb`#<~tZ%?TE{C^sR{xH@2 zzZJbFaI_iXK|xqQQSI|XmplKv*|!Vv>zEIi963Ahym;NXseJWcaS{URt(lEjf|6gVX?tCB&WzrwMc z>^XQMAA)ft4J3CyO@jMD~C6iw-%(!k!U?5ydc!(A?^F5Tq%j)k1XH zB!x{ca(dzqe~_V~5r=MzNRCs`ECBZ5)|`VCLL`wo$s;Yq7j{4t<=8)n7=I<`e(3)A zoXXBLq0oCQ!9_c3{9Ax#fg+TM00Wyj=<$QcI|ghXQYBJ5OX~zmhBy;p;b5_x0t~7f zyW+ZD-mb*&e+=-EnrnABcN7X}XyKZIl7wiD8Ed?b)(@vr-%m1@VPgL5-klaJ4PaSrCsnj)AOUH5mNOqs|{(#Lo7ta{Un ziidxP75|VOm*lNYnXE)ED;~=48d~Gva_YYp-kX_l|I#>=;7wCXpr>~t4Hxc`I9p_( z!Cl{meB}wG^!WVH=|m0GL0KLWp3!3+zy3RBX&s|otP|E+_#@g}_MQ^f@M&&HcKFT@CH1I<-cniHZ};m~Dz z{WK{gyum%&KcO&&mkYfk@{e`O=tv`ZN#Wfn0a=M5Ew@cZmLs7>9u*aVZgx?lELwJ#w^f{>=?IxZn%2Ogee;CaK% zB)q7pqTwanQYSwBHzsn$=Y&n(5Xr06n|kxJ*t65s(SRHU7To;uq8UGxtYhEis$+{! zDH_L8iq)ShLz)pg#M(8wkJPsLpj4LCF^U6^{|-2<8R+_-U#6nYjT4n~l{q|cQt76~ zK^H8(d&!NC;Hw)(ea_J9=M&iB-^qzFA?k<|-d8!L9Mb0im~*SH z%D3gx?zD>OWD`C>Bo-qk%kN-0gzu1v1qsjX@~FroArD3Fve)X(tId3-ah=DmJF7$i zsV0tiArEO|j>tL%((UfrEUhEkGpaMuePx}$9_7MK5p9W(7UGP=mALRoavb z?`08>J7bQZCj9i`=p)=Q)CC+F(h{vioM10MN?B55c+)mr+$w$$GkmF+2w>KD*t5E) zYk1A4{qDd@*_4!#<$JIQfo@d7OZAN1=Z(PBf8@jNd1?5QgDzXm-#tg&QHAmYweqq{ zloY?&=;M6()C<)u1cQB$xehX^*wE4g85Daw^~e^p8*pLX#8BiHHU-Kf0veCPS2G zKAM%bp|znYvB{4oW-yTc|v3D z3(g0o-A(Ns%sm11Po)t`l1azXC~ka6i^l2c)bQ=s6KB5NF(E*>V8%5RugUA5Z*l&;q7VC$VnYp7xGePo?=fs z8S0GR7cm0s%h-LsLyHaq^cEgGC&l2D&V48*k9|1A8>|(}c&ufj5Wu}Mv)LGY@Bgs+GXe*Ej&t1AxSxb8*$=NgNbC^-5@jzQA z_(kKsPSwvDwF^ls&C1+c$iQ&KgMo`XA>!_BA0^=VGNdES`ikh+=Rr}&gNxAe32p1i zxrjo5+2mc&*RpAI`)g@L=9eDbyJ$+u7*0vKnlw74h$vD=2Z7BtSF@6ab!s;nKb#*CSt&vwf1wF7h`G4ehsS1^P_% z%T1@Y-gX&f183G1TE#TfSXP0D0*60o{RWIDoy^q2)^@=bZn9QttcMX)LS>bAZRM(vbJrtzCgvEIrhVgIV*yV}&u zo9UVSk+Ss^y~r)<@W0yw1_pi~t{?6hViZQEH`R-VtptYMT1yf+Gi=W{ucLg_>mb)H zzZ21iLea5s6maE};HfZ!F{x&~#d{yh3up>Emoy~_6AHmSM^GgZ&hP&pDc|A#l z>PY%E5~&m7CVNhFg*7TkziC?dkUkb#-Qpb{fws51yni1XNE$gA^@Vc0v;Q)CuGoAK z;v*UAPh@)Ub-i0Y9I5Z{s}j+l(0SzHJ!&<-P2m+*;{j}GzUtly9WNDF$zME6$iDVr}30@pNl$P1~g!Lp~a62)0mCF$44 z#UGqcZ*LA)4%M&=F!_T9aopSL;H3eyVVr~#X(0p(WP17T4-aBx(lFvQ$>g!)P3-}L zT%6vNOZJ#wPjMD%*_jNp*wEI4vLe{m#eT~DmNuJpA&|16d6;&LnJBXk*NV)8xayJ< zYC3}s?ya45um8j_Mqw>tLJeaX2wXWpQf{xQc(mj@CGu~6-HxYG#ec_7Ap9sal%|?6 zupJui`A`api8|NEVa#+}Dm9_UFsQUTt)ZDZxYF0|GN9+J#ea zdF|o+%Of^Tq5!M))n*5uZF-d)bTR&vsE1$8=uw6HcVD5#bjQAmClMf6+M7#3_?;0R*UP=_bJ$;{k9=2cw?3HCZZSRI=4m zu3Wg$xL=GuWE8|c4_U+u7t9iaebEty5jFmS(81(d=Yd0 zZEyBUbTp;Icb?wlnbX(}n!kBqQnKaqIIe|!CdVkI^XV%@82heZ?Io#T9fap9Yx_`=XwmJN{&B`zi03c0N*V|V6pcxPKRnsm7K9z2$B@s!@R^-; zRScSL`{1wnWr!r%a4=MwT~`;&b`TJxC&*joc9kNDwXc%TAwX?>eut)48AVAf0$ou< z!M4nbpa7#0li|a~$fd$|srsE$g63J@gi=Xg`9$@Hl{266;Q+Fm%HTTTh=WP$gzZ$O z&{a~c1Qq_57}O?S5PwHkFj>!oZf6S^48yuVnaf}Pa2;@2+=Rh0R*TI+i~jz70Dqnp zOD-wZ+z(_P(=<-iYy+obICbS&@pPEX$;}_EDISLW%!M`Uo(Xtgjx*R<;hme&oph7B zZ+-~vo55`sZ*Fq7Ks+2w%6w&2JrCwj8)MUd2L4?BGd}{qbY&l^=H&Fr(uK~*ec&t!xb=oqNfJ$;^u$V9 z3G~$+ODfTzUf5Fzwi;I~?P~Gn8&vM}{a!~y#TJr$tc=D-L?=CX9uKT7WCJR}$JF%^ z@Ro`cVgK~vnj@i3eiQN?woUQO@j>zpB&zZZq2ui^cq!L7crbaat0qY4t1q`j{n?)a z^PO*c;!#()>zz#WwT-oSf}hiPACF+>WsW$nSf#B3?X8WB|oood^OzN6@Wp!`(`MGH*rKe_tDurmzB-{$5;OnGtuO2}< zu_s(2I0R<7dP1+urX&;r;_cyAGqq&V={F`B7G6n7g!h7LKq&x`(I3so^>#m()aL!2 zBLyq8w8mPYn4}e@s5&%B%O3HlFo2_XXIjgze~mP|+>gegJNez#_tz8d zzTbVw0+FxZd%(c}jEwW;Xpq*veFR#k(+?N_G1pGK0`D6e7XoBRh{_*cE*?cXJdtE^ z%M#)Do3H*gFU%R@rlSIMt8t#!Vc)B87G3t9QhVMfG99<`{r1sO3Uuw}@s-#w1T-H8 zwlv~}o1&zqFHL&NR*Xm;(E<*jaCxtD_SpNA4L?Pc7y3NoM@DZ5_e<_@7H|Wia%u@JCCi#p*nm?HEm7{$TzZLTMdr3pw$YU@UFWU zBP=rr@|b!BhM#BQ%8nnN__M z^@`ZzeKlyKgx5;MuWa`r(62W}MmZS3W%?()meVj!)$IpXE|%zF^F}p0Dak4QJ@${j ze0*tXxtCZ*p9zg^9^Pjd3Vt4HKDtus(NE<$kMk{##KmScTZ_B#vmt+9dC8~qGG?`X zpMvQXMSX47m6S|Y)LLl9|M>d7-(kER`J{**i)KErV({6r_psQ+D5$}!ej!xX zx;4o_*5R}MKUjbwO`Hb;oz+E;ioi>5sy}9lh(~_PB3~lpJR)EN34Zo}K3qA%!r|;! zK5p@S70l(G7z$tTsCiKNd(rVJ_H4vBz(GRAqd)3dD_{8LrP6Uu!F4m3Jj&7Qay9$t zn#BnXN@kTu7mZ4pU_EumbTqBk9JNSL+ji;cI^eqn-oo86i)L+m$Xq?`E7#C@^6Y$i zY5?-M^N}@WXsa@ppWiu0{mugNA%+svm5k6~%NN@S@Cafs(a6>BY=z?%d{4)0)+pye zw>tzq{fj>FrzXQMnR9E22` zO|-k-n{@Jg>U7d|SxBS1cFlL(ghu=2Kk=tO)EtweCNtu1yGeP>&HGuC7w{eo!#@ZZ zCUPGyI=o91l%|Y-^I_<|;#|8ANYlP~4H<<9$~zN4N;V-9t5U@Wrhr^);iqsq97YTz z0R8cc)TT*$#+G}a0l&0wz`vWT-A@K*aK1@2C}6uuI5V^$LX7;!zk6vFU!LD-8e+iD^04G*n6K}i1uBq`A%#E}86 zB&rEC{lX(=;t@2+dB+?wH1av5;o_K9;Y9LDfFN%&WZ1q{KKL^SD1LtADMx~Xq8AWB zF&mmK86h6@Jf}Ojc-RMNWjELFwvlsi_^S*IBs4Aq?$h_Uy7|C*!XizY1>Gqw{d4CSn+vQ~kXi zK|?jK3d$8U7$~Mn)mIM7c7Chqrm_M|d?~Mi!4s?j+S9OfxycQmT z(oo%H91Fw|lU5=QTLGiaJzojT&+tvns>l?~!qR zTSXwf6JBvNC6^3~ZL{$a8V-!(vb06iXQH8x_csP#) zE1<`IVkDRCO0MJeTO~*rBNl6WY4QB*Zaf8B8uP&7o+pKowivC6q=`a(CnKm=Dgjo+ zqszFgfbEy*&g0Fcw&gJ=C{l3dMsRzJDC_a5YRX>}pH)L1Qvx%+?_-m(MZ?;wer|s{ z?KeO>K5@)3Ac`OZg^GSM;uWu*ub@+A7WN;Jm{@{3 zgRSSeW`N#?&Y}@=6U;1KOk6%uNy6gR#y_&=6^u5Wb#3#o)GpO2@+DTk{9(h=5{vdl z3y)a1ip>pOI%hVQRy(a^2TIwuYCT3#jzjY(p>8|^8p)K99e9#(j#FbAagkd%x# zieZek8jT=Ehh=#ko|D2WUe4^S%-1T=Rt8#mdW-ssXB z{<{qr7iSo!&96v}$&9!ZZ9$-&?;SqAscvMNQLE7ibQliM4CC<(Zj*mDXLM|Z>2syx zwPu5e7~JwhAZYdaH&yNKYdQcx^zZca3p_*=YB|=`UT4u7Rq7DsVD+e6E$y?~>>aKV z=o}S`#l+9pknxc-S1g@ekV|^o7*qE0dDF*drTbe?B$iebjtj4;u5nYL%T_E5LAGWG zUzj!};VH`&PQ!goU3Py+TuQu2*wUy3IPj7B(NlP6sMQGN-MFkUbL$zE~`joQ#akkbfn=jyf@RU4s(UJ{)WUD`)N9W#VCf%SqbsE zk%n+BV~+Up1lM+~!)&BfG6MgX9S(f6*Lm-Y)*UBlm1;l+AjO2wL04^V^0Piebg)Q5 z4fawsA*$n>Yte|TOp!`|X~q!i!i!R(YudUfgkvWZ2fMrad>jwr(#iSlCmVP%$p$4& zN(pLg?;WjsMvs>-D$KWcG?y>Cc2Z$ZT9WbD!D=4!S>?0KGNNiupURrNAWYuZ)N21p zQXQLqMS*zpoCJ`-%j~+XwNS&D(L-op|7L;Y*e9KyId;PeX zt0zY53nvuz_#H`!*?CzZ(bMPW=%mT9@s&r89oP(q0DkV()9ZI` zxn=33#&+M5iYvQm4B5-dB1w7Hq_R*70CvS=TNWTkA6CR-~8$q}?$b<;KT>#G}PU3s;%ra7l<@$!lS#%j6o)^%i0qbh6u z;tbP-357PlCo6M8LQHb1nK)W`q_&}RLVVQW>dyIVZw~R=1A3TYOw3z7$9|?^(#pk2 z8EIm7cjbvQGz$PkUP;uco%>HUc*=8>ny4v@7tPVDMWcygl$1=!iNrj{7>lJ;Qc-Mg zVacO=G#`D}>-6wH#{i7sjW2p{_)Cw)&JQ+u61Wxog9D3`yYfiw& zBr!ixY`0k52mpBR((9KVJ5&vTTWXpCVNIxE`qW9%GoROcgA-L@Rzy89G4&E4>@WgK)8J})uSyru&n>?jF zQc81v&xc=qRoyBn&I{~A77*e$z4OkFb~n@K;*nn;lTbdXNJ3%&pq!Ekvt~`m3OQUu zQm9wNb+vVmsy@D^L|u?c(|?(etEGwM<4z}+-2aW_iybzv|355nuYT6E{$CE2_)-l{ zpuRTO$LqiI*axjglL{j7i0s+m_Wx)J>vF?|%Vap!`0<(p`>iFjQaa2_wXSU-&qWv# z@~5@!`79!TK}$WC5EWe0<4lP*j7qUYNMxH||80}iM-Zs?_+hIix#P&kK{C==bLg!% z-$ID)b)K&8(z`e(vQ}cz&`hCYNQ|!5$jvgzpx#pN@vWM~pPj4bR}^ixjnQ1XaCy@$vF%(fN#J!eMK9drPC&)5v3V=%c4!dTAp`lAAZa zaDoZH;aB4@s}xa4qf&XC?z0o!kxzF)WU5T+t7+)9ceFk8mlwbIw)*Tmt0HBr-vc~{ z2@yw0BBk)Bzkh8Ejp+8UiTN2lN59`(=g*0kW1gC`WMPESWKK?-mKkDE6_n+~Wu`?X z<<6?DX|cC9yz}B8tJ)n&!+Xn@y*X-A`;$v?Gv8Is<^zHRxhST zQ6M#CV(fn)3j&o+o-#MHGJ3+TAE0fAT?}{eH6MO&f93#YCeKWd2{)LMrcKQqt$OKf2V(%hEIn_WYU7uU2!N+O8Piq=+fV**ykpacpKC-| zpLfMI^QU@-z&DD=O3tVc!`w9KhgO^4$B}?k6iNKItD<@QOnrNeZ)j4=FowP^d)#>Q zAi6#wK!`ZCrGXHSq}ddKF+^&RqmCY~^ZesfEpxaD69B#*X<)n{91LL66|<2`&pGj9Ck{N(PIDnn!r-`$cnp(rMZJhbCb#^mX5 zzVPP_2f8PP;BQx2SU9=`vuVIeaj0@9))o}$2=g)HXHXW;N4M7qJ)$7Ef zGe-_MI1vPX&ZxBuufJJ8bAoJMSdFQ5Q_Vl$Y;nk0QY6)Ae=Y~q@38NB^7nLa_t2M#eTPQ`}mA}S8rE#Nm=&zyl5k-jn11pB}Z&O z`S-6IMB+epLtwPv#yfJuM4@pRZU)U;yiCpd_Vj2ch4w}jF07cC-con6Ni37LvzTab~JX2#3Ia-u8c?sk#;zl z`d;7XRqj+)7Dh z?KNjy00wic9Mim5E~SX>hN@l$h~V&0-ra60EglOhpCVA|~?cE3a$ z5tY1VLBZ3ny{8!-l~23ujqMfyA}TIkgc+JaQZeshk&?oV4eiFLNSTNL0M_TS`v{%( zTqZ`KSJTU7#COj`TsWMNB%s&9S2y;2dPv`$wOpN%rwY-NV(~@44nmc0zFhUrYls}O z&I~-m&%UcTIwO4GZ|Q36{rHdHkElo@##pV=F!)D|S5l^38L5i4o?YR;e^U={hB$&h1HApMw>t zr6lrsY<`+hYgGt%SDyn!a-~wt(td~AuTrZ-B;j;9R7w?$P9U$xA(5#F&goUtNCa}A<57n{ZB%cn^K*?e5P-T!&D zOXn6D7-^Eleclg*5DL|HY^#ptT3^82nd{JRg7B2k-_scmfhu477dSW#qQ zsZ6CNL?TCP^XCgE6WWlWy$qRJvU>d-V!(Qf@v|Er{L1H`N0b;9T00HbJQB!av}i?o zM)^RSrXd6^RhBRQv}4FGBPP!@CiF=So)&?r#=V61h`ARTF=G@!Ky!$DN2m?GidNyBp37)*ug z;!B{Z-FoKWHxE_fRVPik{-!#l8v14eUc0}orpr7obbzlH%S0N3Vnm5i0mI3%K&2Vx zvBsbp)SVvLR5ct|QopCeR^iYZ)dPIJR3*`b%UPBkX(It+EHGl|4ST6?92;U3LzYSU zAM5Bj9?K{c6D*0-N&Fmkc)1^%Y_=Z!O`B^tOoIq?dPhTYVGJoE2YBVWa4lv5jidxZ zug4>}ZH62kPXJdk_4y&%B*wouk^#UJBB_|1Hj}Mv?$}ZIOtZl_42Pf~sM^&KnPM8~ zN`oPMoY7J{f^ymrLN2#kAlNWDCIWQs;`~^x8$``zpT#*$qZ$KlJldW;Q!~Ki7J@)g zImWtuZ6nH_PN#5G>9F9E&#E62Vw3|&2p0b`ad-?O0_hagqExNJ$KSQT$1pqzg?0NZ zeh(wp3{Z^XpimX-;>1BC=$qpB|AQ0WXvQxVNrvXLDDc}@iE?BOevS|1mUT`XX%r1) z7UD68NF)|Z0fs9Nq2;87r8#n74M#A>A(11mpq?9@{R;(L`UL3URJs9g-VivfF292& zL_?n+Oi;+u*u!)D0A)Qv5+RYAktRl2fnp;JW22fL!If!hqiUeu#bce`ug-2Z|_<-y-f8N3yX5}YV zRUYh9q~3GKx=5L;s*jj8v253#>V?-V_Z;6<&!t?oG_7Ff)r)3L$%zUM$(y`#ZaLZ4 zSl#I)5%@JZ53HG7yNH4nY1c8HK*~jr=NfE zMJ{Dwl-jb>Dp@$S^tX4fIr{Z`x}xP32|?+p833K8kjM#>#+9yI5KFs4WXh+XeeUHA z-$f^D|Mk$Tx%1bSCCCAoYi=mp|M6#cFUtM!+fxfGZtQYmuKbo9X=`6(-s~s|@a)7n z*OJwrg->0Q>FcmtEOTcTzx#FDn%}IPxqN19OoX?m@tIfOu_iB(cI7}Qi{lqKNTu~H!f=m6?nnjbx z>qZB~;vz|6FcfonSjn&rYRqAV9z+E(Nf8h@$zx6?M5eaC_Wt*Cmp>F9n~@YQ;yoR| zdGL16>8)KM1rN-QzxSpk+cvzVFIX}yB_Sy~cKyT4tj8;}VpT7%fA+-}-wcn6Yuf&@ zC~3;7nK@j5rp#fSw`9%a(z0Y-Z%S@L=ZSqUy!Bq6hX)`tG8AwB?wL0~sVzzJ__d|i zuUi?R6ORsxDGai~943L>cJJ^tEOWGZIc^Z~F-lBfE>H#+nzH(uhwr;{LB;AcNyqGk z%NDM@`HuVUE>G1;gQM@f|Na^IvD}!+HN|wt{a4QX`n^wQ&cC&*mm{+(CPm1PbEerd zuSqmE8WR>>wf0JRbXFS_bK4XDkMnl27z(d^@QypyG#ouisM1P|^oFBsZz?pXKrgm;a{G^891>9&qA}xl2@SyT3i&fMmuy9{%+W zi|4Tzb9B!ed)iZ?B0K@wAQ7R;kNW5~(H&&|Y2gL(!m{TI1Kb+{Pt44s&=P{gnf)JpeJ_p7J*gul$ z5b3Vy8(%0~R)8-~F1YQxzkUDzULz0yP(3|0kG)j?cm>7d=&et#dHyJrPF=P8-9I?9 zZ@u@n4Avj464TKUA$``vgc*aq@5nn}E&R((3UHi0(P3?@|MgvK0gR89l+pltO4H`* zMLh5%31VfUlwWq|Td&_;?6H26e|?c<*9V^kPnndis@>famzlQXnI*wjyk3yz{P;ww zM$>cE$`77-Zf5%zFGwWqAHMcj?)2;83+EmB`gt%tSr$h%a2zR-4cB-R1+Tm5>TPe` z!)HG()5N*OGTQ4w06i8(mWKG_Ne_p2^k%Izg{anDb?vr)K6=ur3v_~UnzH2p03ZNK zL_t)E$iaDGxRJCnp|gF4M@~r2(V6|nj}r4EFHBpApijQ`$l;Bf2?PK{Q{%z=uifz0 zbGIF<1I&5+00hef>vi#Ak))+fs)z$y$JDj=O66q3j?akb!qRa+U{BkcTki#c>+gA< z=j?^i>ON^&l@xEtxzZBTpN`1 z>V~&`e4yVbP=g62V2npp>s&-27*U6UlG2j(Z<}H?{jSitDGu)X}E2gXFPt*=jAh&fhpY0z>so#{wR<*Z& ztMkI-f&sdZ96z64!}~n`(7i9YuXsk}_Ds6}?L0rTchjc$NxxT9+>Vc{eZG*}9(|T^ zH2vib+e5!g`1?C=RB!#r;*^;hx7t9W3Jd@HhPOQp$E-N$?l)fVXsG_z))Ry*xSpa5 zW%e^Y?w223T3fkw#hR< z5j3PZmO~?I=fg9td$#%-`nSq**{$cA5A<1k6hZn)`|o#NJH74r*D=#>y7jTYbk*|^H zp*+j`Jhi&@!VTJnwJNKvaU{<)?~MK0D#^Y+HL97 z>qEM%-2iHpm;o}>&eZV7NAY(bjDNAPhz$&$zpL9YASAtK{&YKpN~tN=>A#%IO4V6Lav%_@RJ6(R(HdM)iNs0>CW1U{s4$yLwH9bjfQ zK@wlSxV`C+Wtc9;V`0|4Ie(zl{RmF)sQdnn!^B9^qnPpW{Z6e!1Vu7 zb&IEj{^_2_Zu`^5Ki_kuLu(8YaaL#jM-f;}B_#a>nA7ns9Fi0}x^~ zon6MdEFB=z8Pu2M7ac=Q?`e$L!R(GzGK#@4O!ez78Z?7xDuj99To@!HXk`WP|u)#lw<{Vb0JiG_rx8E8+LhD6m#BL{=Z(0RV(ZcJk<+ zbGIR2IQcau#3+fNs+%s39_V^c5$Mh=)y7k<;kcNq=E`IPc5@O0R5$zO%8|umrBX?e zq`+;aR52~6PuYC1{Q$Ey@1vd>-a^xZk4e&w`pt@FCF~ZuPqyG!< zf>dCNVxbWz21qcu1Wn48Z#_y&hk6FW7)NJ>4Z^dC zp!IauNVDgKgnI!3$Ie~32%NpHfs0XPkSsh|U%R(;=w-1=WJ=HvoMJqWYrpT1gpebR zVgen8$+DOBzOiuv6M%w(*-7eww=yv(smJ%*6hrN+3Q-fkxjIBl4fHZRKK#$k_7>~N z>K7~)i+`@Gq|Yv1bN_8~%S+Wn9~)D4^OXxriwc<56L}R^Pt8qgtUiHtY3tUlj#4vc ztlW%=6AvD(ox5_0=ggrFDrLp|q`Vnd&6!%7Y1ZiTCNG&$CiZmIwf7=~2xH#5ip&!& z?wJ)6Tlbt`BoqcBCVNtGf~cms7XS#6ytI6pj_B&>^#fp~A!dGg!HMcx1VHKIZu-?N zGm6sNYOAI!U0al_Kiw(6YJT3Xqt&9}Nn=8!B&U3Syr`kgr(1dL+N@~#v14^W5jA>6G9NGB}y_C11zw>045#v!FCrr)TPe) z80~}w=>vbg&q*Kori!IUR@$gkD*gFs6Pw3Rx%SEm1>IHC>YA~1_58_Mt+gi;rY=mO zx*L1hxijXl#`IgRo*xl}P8>coW&TxJ1?7w8PoG#?VhpCtVTnhZd#+k@O>w&U%*hio zm#s!kC*11D$))2@ojyH%{wg)o(%2}gxVpIZWW$IbcUTsla^1D7^rF7n<{naPzV(4y zr<6|2jF2*>?2;sHbzR#}5eV?T*OR{8n@4c`MwlQG#-Vl;N0)&xC z_G)IEHlriIG;P{`Gn-})vIAtYA?#tmHrN>NE!&bTYkt=K{xA@dCMhN+vGF}0dbGmP z_~<_Ox_jOG?%o%ce#_lAj?EwD>2S`!X65wB6N<-<1u^KFYZm3E$2687?GcBNk=4fy zzhT7{th=_}=D`w-TX6NPG3lp{mX5n@MS{Us*XI0Q5-~}Z1)*`|H7Ims3#aro4p1OMU8qb4Q$L3CfeVujqe_fV@eHbZwJ5OdkQ8M$%lOG94> z;PoATZ(q_mT21WTi}YThKQBY{$zzt}_USE7o6GMO22oM_{E=79$^F-#pHG`OV^s0n zG+oC_o7$FMvoJh1dhS&#Gz^m%pJ+CPRetgN4t?gLnPX!UGPb?;z`9!L#Ov3*cc3#N zHg@6SuD^9vJWGp<^74XrW8$Hg_!DFvf*MrRLew`mhoVh4UvV97r+J#EV? zkH!yQXymZO*FUuC+Lu21rX#=&i}H9i!!BDeCs=do%>I>cuIbb3Lt=vyM@IDTHLz+X zXG%(+b}QQIyOfr}bQg3cQ&;=p)lYAlzIe>zH(lFf^FICC+p2YO9pC)r^D_6WC36Bp z=L9CfdCjciH~;bPF%z$>_sFWWaXChLdzWs~=xGu9dSmp&dGluTf&LlE4;3?tW!T^7 z{pqNUjG>~f`@!SZm&QJtbpIa{r_D~e;dU(bPgGLIaP1`JlmgxPs~90Ds|kR5z*YQU z6*WGTKKGHLK3lS~(VY0yyB`S7YC*>1ZhG@SFaNdaz=41=eL=cz^JXVjww|*2H}0-W zO$`MAiq&kcXo!zWE(&2cAFeV*$G!f>8^5_F9|NVPda9gl=BOB1=!xg)V?J2_;X1p| z*IQ+ouF^kmsywp~8Z{pIqO`Id5Cs6VQuW#E|8#j|1oEygcDnsOPH(*RmRq7)K6hKk zjWRPQozk&-WnSUMO8C-QvUT%GI{=*6{NlRmFeBY{^rS2}nylf``k3K2tX%y5S2dw> z18A6zfJ&Ax5s7&`xT=Xi|A>Jk zz9X>-p>)KVz4i9kY_{XD$oL<>_D)@7bnDSC+tz<+S4FB>@8%=+l?w|o03cvE!&iqI zqpjgG#;hikMHH=!Q8Nf+&>D=#cW?M~?I9*P9*Hdn9YJ$5jTrFsNx9AYcS1^5Dh!UJ z8xgHq|K|H6Rz0DU8r?hqP?oslN#ipsHaxrippV8K0dJ>5t$<4fe-H0$@9C2wMqi%G zsr$_cVhm%h&It<9^(p98f3$U=ZKVf*G{bkgunAULN1g4g>9k=JU%h{RYk9RU7*Q0Z z3l5_Zl{M?(71Ohi@88D_nZT&byD-ltWQYlmkS6tQPYgV*7dVUoZF+L)s?~R! z5>iiXed*&`cKPB&#G8W{Z$@%xd$S!&va`1K(A!^n!bfP?j`~JVS6%h;Wy_xY*DeHd zk1R!M%pQ9uLP%oJIW-j{IJa%X2vOfI20OhniH7bw4P_vf!xG&y5NOl{x&`e*gH zD2ArdFX2EKP59Ew$L;v&`6i^L6|}e0_R;fyL9C^%;kcyKD}!~TN6pDFcrFczS+sEI zgtt$}tSDG?`{H1ox_@eTNTM-od~%=OBJt9xgN*~NBqaf_DhN7PUw@xzye6LM-HM`X zt`8UzoQ}ZizdS73I}P!9d`_MYcL^BT_pJ>?jSf>`z##G+1t}p8SI_rnq!I8QZ$#>d z>~V=ydj|m8{l*)S`7^Y#I3jOER{rqhsKnuuOtLK1SJ!oW2K2NHmiUn~#=pB}r5{BY z)iebV6p>~T?OQz2m6azI06__HQ^wEdE}32qL0e7VChL@1#pLS?MNj_>c@v8w5{F0k z>1?NfM>zgj{eUY-gzg$^I9FoN%rZ>YpOy-Rr1B$MR;*b0;@YjOk~?edk8OB-U!6-8 z=o&hc^c16JX%Tq^j1)cv>vGF#h6^(&-9CKycx@2)&AA0L#?9*Pk24~N%9>FC*zJ%O zCu@wV?+ge@dxB%ZT#8C?nb`ajS+w(FzF*>n%BP=Q!usD#ZOzXZ0_8- zp4!6+6R#W@!EWEasj`E<{HmoUf7P3ttBYq$yL`dSEQ_lJta9blJq>7FuU+VRSY zu&_AVSF21M9;)EmI=Yinh8-xG#%HM480Zulb@=1Ynzw(d5wf2LObiWVzo}$r+0NUI!ZR29DpUs zvTRq6c#gz`9gRY301$uznptDcHCN4Y*Bt+J$G*&>nU@vE?OFe^U<`GgI<>L9J2%}> z-X>0+x#jHzl#s3n*p8m4#^(g;2I-p7Ub;Knnd1`sv=1xDstbdKm?vvIZyUNbr*PGIUqz;IuIeoaw`gmJG8ZSN62EO+f5e_Q0J@tj73e{jYW zA$M!b_DAk<)to}qg;YS3j{492)}$y!pQa-bf=_pJ-}#(FHSj!%Mxz0mIrrBv=-U{3 zz#CAg6@Gt!rQ}YB8xUnQnhO!8GnqILG0m|w<#u#< zcwjX;HRfGD(O@!gy=SwUvX)N@dwK0wvR_bW6hgpHvkDqSk3gw8#0Pjzp^!vDMhqp3 zKr=Lj0s+55q2zr$tKxh;-4dFCh}1@&&ElZ1d@KpOSw(MC^CPg>?^gad-$K79C~T0QudlX`e~?LN!c zoW7kVfDn{b`>%Mc9bM4r)mXwINyh1GMr(rlHngB9wBwyar5kGoUvHQ1291*A17234!h%m?R4m8= zK~Qp>$K?_zg10%Xx2kT61OB?q$TlYnUMT3bp{0` z^1w2ZAG4~n0~^8b6%nU8=Tvt|l3ar`wbSWJOQQu3POwCq`ufJ2BTb+Ec{i)OkSKurRx3n4!!~DVv(y>mZb@@E~Qj?HEr{=pocwmify9fNn>02{5fzJTc^JFg*iFxf`b;evZD>Vx7Tm{T=IIbB%Zqw2GO*V#xq8$W{=Y5rKp$-wUPk= zFM7DSwoN28n=t6eOXOaCDExx$bU?r*mEQmR$XV7bi@c0w4EWpqX%vkZC7m`lE;c(n zEYWho7wNWp-+N>u?-$7ZA`Ci1oi;Ic{MGpvd}eIGE3{O#AO5_;(cB~PGREJP7=siV zE_+I1bVist%5cHSF4}53*FCvimdGiZg#YPZrOd26W~lvaWU;oD95g4TUf4MS2q9}$ zPH1-Si0f{3)STjdUcgwEL_{+Pfh@^mN^V&`+xjz8d9UB;s%aGm>F8Yu1Oyo?6bc&2 zBBpy6lZXN@0i|FW0L%w?M6)b|BuS=eN)%-ZVLvYdAeEBw`2~hyxzkfZ*kCb>u5NeW ztS`qpy#)ojTmcM#gRG&vt<8tg08|$snnEB7JVp%5Pym2sDIiD+1qZSu$iOj|=8>u; z)%?Z-J<~_(F030S$N|?*E=xJZpNG%HL=jdrflZ;W{^Gh`3?RZF9%xwN;fdQN!=J z^~O=@;S~*@g>&caZjo%Nzgd}+7S(w2aJL^h+Uc9_S=CW- zq`JOYW|SO*y4%~9tbRB{d0=;`%_C9~h0`vd5PRTg^?>R*6`}ES7G9mfl-2se*W7XE z*lg?JZ%QOuES$08#%mUc9Ve^>vlmYqQC)JB2~q|8mtg$+P(@(YD2+yWfmWcg&A%I> zfdo39i>~*HI;bBe*V?K(H~;-0tsb0CMHUKXEx-BNDJAA(06dq|-VbM2f?sBGK{d2n=%N9*qzG(iY7w_HcjhL4m z6c!$H-*pR`_kI;=X5M*b>GGvF+w@^An;%+N?pwTMwT;J7moL>eRx}&4|MHLLAG+ZR zHYDxQe?6CzWE4@bi0ES$?!zupNc^NQ77 z9geZ1Qy;nWoze4F=EN#b@!@kXTa;$LG#l$qm;Ayf_6zd>G=(-D^o7S7FVeLIy!`ez z4{@f!8kV-Xhs~WBebaUK1m}(nH&{cB9H`CFA=)`(i(k0@TG1Ny>LYi3{7uX8wO2n` zt)HBtx&DTSMoye-4i3*5mK)a5T39$PF-98}so%E#<@L4NRjZ~%TcZ}Nyc=nZR*QA= z^idyPf32jB3DFILNi*zkn>TjCk&kYPh%1gV(Et#fI=U!3KExazZ*jZXlzFq~1uHL2 zi8UU!9p6_7&|O0Rp)*E>oSQAUU~03FFo}rhk#aul%J^7u?BDihNrTP9naC`*<}cGb1oDW%13;&XiiYmIzo$+qqFE)1YB1$&zJicY)M6s897 z`{CM~i$is$7e73L>{XJI<3eKn{3RH+K?v4v^RC<3eF5E(+b7krAxiZ{NuDB0^1e?> zoz3n6UVw!f^|=ze&aBU6snZoDEtRt!4Y6t;zWo9I%xV^(6<=)Lvf`i5s$6aUAfsBr zFq*_M8IjGW+SS3{Hri*RP}NEM(wpZD3zHgK8~~tD>UO@mMT$?B`R3j2>V?_Ch=DKG z?V0`0XVn2)r+W|t>}3yNMjLR8RG>$x-~dtcXAIwJb^Fc$03ZNKL_t*Z*+ClF*KcYF z1lqk`Uu3KWE=3p>z5C75=1SW@yD;7>?0EaI;3XR#2*iw@UvGK*mFF6EZ%6&RZ5iY6 zw6xNbwHGiuK~b=`%=6^h?tvbSz<9L9az{estqBol9+6jv>Ro3V$qrk^vSmw2|htBu$=@v@n}%u_F*;^v>ct{&II3(_DV!i)!(aJFh@|*DL>T$#wVqj>jMc zTC=j!d~!FKSU=COz!Z$jR`NcXq97p3l86!J#MY7%6_FXKk!Gz*mVE=V8Y4iwy;B!i zMC(l+dxthO{N;bY)Fmmqx=#p>Mt!hRVPzttCXI_|za$lgF+A~xv#iG7S1oio1((Hg zF_!iqgev#e9s8nsfES%4%kv__Zu?eW5w|5q%rz=ck8#V&{lVF`cH8g&_Jrhha>3E@ zQ9+(=oSqYL$E|CE^NKRN9lb9+da@-V$?EOGR;=xkvA=P1*obA0wtAo$0Py>ICaj*y z)KmhXFaGgnc=`mrj7AUB-f`=ih}7W;)_`+Vd!#j{vj}LuO-gL|c1VSGfa%)D6OTGL4 z2TnHP?pv;FJF<6URby~?BJC(Uaqt)wmT~Kiiw}PNX+@7B)PJOji#qlG`^rf3sTOh0 zjM?E*)9bH%6dD_MaP!w)DwB!sINStx-EvcN<*u#!DhK}N6U1oiyZM=y-`09+#}UYy zZa((#AD?r0)V{`Tbv94S(XycU5sE;~p|a{rbsvq$OKsI1u{jYJkdFQ$SW!5-sdE2& z$7yb;2Du0qI))jFshz%W8jQiC9(*ix*l>*dXUZN?lw<94j}>fDDb81r2*L5Xz^#94 zZ*$0lrS^R9LeaO0K|thr5o4C+XoUR%0TALi4oiZB5yvtBSl|Vq8J4CbS)wUg5+y(& z2qFMdD40M%pc#f`XaJDhotLkH;#4_Ah1IPwjmD2qH$5(ATzZ2qwM%ZzR93W&bW? zQi?7tqQAPm@>7j73?*vic@0$&KzW`2=BI5or#y&i5Bjgix4kA!GYmr^1PCzC@cqV#B|o2O}->U~S^Gj#e%SAAu9 ztz$qI5Y=1jDT<~j1PDi&0YObP;%PcSg76fka0cv zrz7)n{PdnbYpRL=G(9=hZZV8`cal!GJ%O` z(rQVA8#hMRw=%{!c73}YPkir_O$!4dF(7%9Pome`R8}UDRH4J@K93O80^9}np1lEF z(EwF&jlj&Ehwn8QTgfT{>}HzYc|&vY_Rz6CU6PwJ`QdL65zvr)YrQ`Pa55!IMO%x~ zQyr;V3X9FlI(s!6f_;8aj+*T#%crk%>KDA$V#Ty!G#w>%$ov_dRSIwZ2_6IuhN!Cj z#WNm`3{kt3hwER*!+CA%tT{s7%9#BY0_K7%lf}Sz0^ROl30EEvL^hM$T~7#~3ge^h8%hcDgLYzdTn%=P47JtmTn%UJvZ!_aS7Q z*s(6HdBauOZ3eQNwf!m-=kbzKFuZv1&3@*M0rt*Ko}^+$dTs0Jys0vy*f|*cWtA4@ z*GE}dWv)CtVr+%tPWUz_uSv`NltRo`-QVS(*ET86%CjmJSASZqlqG|3=IedEPm@jI z!xKc>B>Lh44C1SX+|Tp^mkJj$8XpEZ95Dse>K&KY61=bRDb|yI{;zac7%iRf$RN&} zY=J{&gVgB<5)39vSv8)ViydR=E*kT4uI+hWgpMgZKd?;@)v|J!3ar=iUuW5Wb)QC9 zUU96F9a~zus5!-C`Tp`et4fJ2SCx*6lAwCK*p6McaJ+kPar`4I>+(?xS0hq%XytS6 zPx1BTW4HS;GL*tsx-f~wZL$AVV6TK;`2NGLnQ+za>?|l5me{H{nHiu!!Yo$135gc{uWX!6)W!}NSn^ME_G_ce_Q3mw+aiVV1si?FvQ^^VJ6MLn=2e-y131R=MI!$Byp z#dvx1Hq>+({pgTf^n_%NS&|*kFhnP#`Y^Xa_Rpu2nu6kUr9!$rXSy9syBZV5Jmm8& zs)7hnd2SFmeigJ=XY#Vv6$;z>)dE?oRYbXBqaGEX2f`-(m^y*y1EXi?w zSpHv(0y~#a-0RwtXiaDRGE?O2$v?*e_aUHt8fIjR8uOj?XJJBWHsQ>LQ4ugPkW3+G z=E)&BX9Kd+rcW!KvKbXmc1nisp01G)vyhZ^cfoe{xN5%MGkV)HzB<9dlx&p0@sKSh z@${u7_gOSU_RV61!}`>d-E~}2c0{N-KDf#DdBTBx z05{yLmISSwl0}s3jrx}2D|nI6MhYvhy^%)>YC-kYjkcY~@G{AUgul!_=!9_4T@I^4ZXG8epNKW1VG+&T+eOF_--K! zM@1}wQtjXM{bCdgF;tJq)4(Po9j_aa%BKY9@mepdF5YL$p&@)3L0b9ooWw?0q-v?x zFsoz7U|B;>F_TR=LQKqp;%G;K=_T_I9AC9$U7D2FfbrvhN7>b$Zpz3_oJ=FJ4Pk;L z13jA*7b6M@>j%hJ%rZ>SBPk6Bc<$vV!L{>MTs;5}fsNy{T(|7rhpc>Sw+8nF6peRz zd0PA7vor^$&Jt9Ebk;wWkcEtVaQn}6KRv9sdJ;1NGZugvi1`kvM%W$w!5ZBrp?RR? zsu7jT?_s{s(?k=Tp!63YL<}j$BC`~O@+Oda&NloU7f|x6jru`F$O;>t@;o=ov)qqs z8+9k1<+f=8|EKs{1qi80;*9Br&ULV{9@z(|(SI*P3ZoeOyrfwMz+cOP4$}qSjv_Dr zJ8W%!_AFiy2Y2ixQv;1IZ;kJ$dMfknaQM{Cj%KxYhG@o*%SS(?tkJrE=jVC4 z2-$B^qnE0-wcP%?MQO9lLAY%)il&l}+`5~qF&@0}?YLW0>h@mf8GY|^Q_HxQPqbau z_T73tnV0+CpO%~IdS2!Ej%m;4`FO{$ecyQtwN^a`&_{<&ly&PeCA&6uf4mUHaPNJ8 z%%SK*tCD!||Eic|fUx#D-loec?^=^Bhx>2uGm%meQ^FLfTfB!_^f2hYi55i|K(#aMmR`}1OX;LPU;Rq;}sj$EXpe1)q-#!&AvqtJ; zF$(=#e0;HP-oCl(JzK*Q1Dg*_A}N_#c4~;@5++213?hOLk3xQnNG!%@pG3fQg#-`>EZTVTvN?A?h`ksiykd9HfpJ*}%#BERK3`z*c?Z+`0Ra@EIxB?18lr#{ zdI*CkC4cmD$?KagGm!sOKY-RkYwc8M7o}{rPy$vk+0pM+DCEb=qXg>@J1z%$XI=Ty zjPI_`asdKWciU_f9{u0m>Vwx3(>YAUqnXUkZ?o*|^^)le)c+ZNuo}OO5@*;M;6*I! z@1j@xqx+|L>X@Cwy==WL_-2a3ax`$gr%}3L=r(JxeB2#oPuvbH64W*8ytOaKW0v)Q zz)vx03{&IFwcjd0a(JBa_N#a(DX0#=Z2a?#){{Mm=maMxS~@sZQu%nKGk9DX#S;1W zMvX9cATV|-&Bsxb2=Hu8nG{h9q&+h1t7GbN9>$PMMkN>(mi)v=(h)65k|KVFC!}zi z56q}tWXZYTJ1Qdy)c41PUrW|2;(^jHR`W+j}6&?k=)TrSHu*Z~LpBu~l53Foawt6C;tL zbC<=ndQ6e7OiMUAfJ z{_k^yP2vBov5y|||El`aXObu~`=4g~=U#U@78%wx)c=$FpBDYcRQzv}S@M6XB1HVZ z1R?^NN~KR;j7MAv1e$id zgK)$Y`EWFWauic4f%fl)dypUmI_NHOnKWwfR*ZBq=_$o~yJNg@IL1J|W`c;q5TO*Y zgv@KC3RGJ+U-&*Ms%YLfFaUA%$_eS8``-8C^frAaueY0~k^AUv2EIq(>!<4<&CO>W zbX3kG|BT}9?pwl3v+mbh{&KDgbUI!8yAh!7h4p?x12O9J^Sc|pbIFhQoa)t1&m55h zam)k`&~X&sxBi6SdKiZUobebg5DZhR5MxWL2n`}GUVr9aB$CpjxgKjBa|q%Ppy6rl z7a=&RfAj^X>dw#s?u)kglL*Zjk*ZM&oRw1!=-a(JYKzRSBFde0!5hl2yU|M%6P+$B?ne`K<$sQcp3u~$ z6k5*8)A4}kw%as*gt1h$M77qaa=5KNKe(zt(1 zl!v!pZ$QS6jzQ@COQod4=+hZke{pf}b`x?Y#>nDj;}Fn++~~BLeH0?OyZ6@{gdAc- z(~ZS4QNs+$;s4E`j1c;IVXO>uxQ{gG>l=!qOXqR6h{`4jNoF`f6j6~bHGUSScmJhf znJjaPys%#)i-&Fs^_zp&bs@2q#LPC=Zec`WzXZK#_%~*T!JMgVj+x?Uyu@n1qvH>7 zp`tjh5IT*?&_gUyVdwRv@}q1Y2J<8uFv>{f&PW>3!hBOgKWWOYC?yy5y2Dcuj9VCckH*1F1QQZvWn zzP2!6*Ga_F=;owP&&X1eik zbH}LvD?nkjRy!io=&YJ!fr*A!GTbS71p}Y9?eS=M8NbD15N?>=m+Q0KovcV3hTLfL zJ%iuVJb8npj}WI|yzX*9RexcOGV3gU7(Y@#TQFr3%EP^XZjo6tiz6g(mwj`y?pjZA z32jbzn%4WkMK08GsAU2#Iyso6!Md)M65P`O9fzm!OoAlG^Sx)Xf}*`cSwG_RdD^EJ z+mWE{x-A`C%|@tDsA35siUgx3{V&F(y20L-ZiQ;?(9HmvKv|5W+O(y$kbWPSXz09YDrTG#= z#eU?F@!-am_q$5o>+^@nEjt8GO(x^sD1xPJyO&#R?o@Ps{xNSOeazN?)Ocv619MdrjG5CKd78q}tlE z@5c^btn=QajcJM^hWBCOf^E#=93-hmQi>LXhmGXF_ZS38>w_(A<=;k53>gYRh`_PB z4B{aGfD1P+U9)Oc(~x+~h{W5?V2RKBakrX#PbM3&%;sm$JOLp9Kr2z#-5Fe>va+h_ z@gv2!sp_Z)vg8OrJTY^B>0-71lAoT6CNkeQz8Ga-@kt@iR|G&PPQ* zO3vcC?ld3}r(%rBK}-zi5j#dDbdb^r3nDYihJoR#ZeQF2XZ^fR;%lM9Py(e`Bv}2Pxz4ti zJWDcElx((n0s+Hp&p5y8yhaO`N=-_^C|<6>l*CD*9i1vs+jRR=_ms^WLn+`VdfR|+ zBoTqBgNR|wVwNOn4GXuI?V7Vaw}M|~Yi;eCY~wLrnFnSY%iVBuMZ>i9^6VIC(?+Je z3)h@lkPv}+uwMI`)X%zEi{#<3|FhnIP}c3#aJa0{DeC8O{n*CXDY*q}8tXW!;_)ji z9rXscTNNsggGxS!O7ZVwoRXX@E`;#<1^l(SzM-jXW*dP!7A7 zg`&FrW|>kHtH*4eg5=UXi2^1iIuT%|{-qu+qkedz1aFegbiDnX9iQLMuY_s|d*Alg zx)KRpCbtq|ui3(MCf8p}?xmAEAfZ%nDX)N(;(f7SFzogTOvtV(-d)YsUmL6NB^Sn( zvENr$$-KI_r6_GNHa@<*9-J0A-W$q)0Ifw5_u#IyJS; zwdv;Um2Mb7eXbzjp|&6^z-hJ9Qg!P!15FJ*XECV0U~+!`^VahmA@K^8kuY5t5JAI&6^ExF(b9E3pJ}Req$DGpmqWa5G;`9->jnxlKaTbho~)(t*~b;S zuI#M2Ma$svt44lh=c`$wdOen*cjZ|vw{2d&8dBId&6(Z#qQnpt3T%Ks1T{kIouO&uv5UcDuo-WRV z>rF-yM>T5qgAtbBofMSr3)nk8tsvNDtJ~&exdLpqJti1E-%9tnmpgB+O3qR*Bs6y4 zyH{6dPLnsYkjxA23|bJj-5=FEnVEkXZ;In6!ic*zH@P&a*_J^c6l!g4dsrNduxM3u zdTnF)=T_SHSK@4W7M0DHMUG?Ur06q*#?nf2ci3;ne2Uj{Dq3yKA235+8eih$1>4$O z|1TDxZW+JYqBwjH5(GcG{M;_dbM8R`Dn2=;PPoRJi-EX%W`1@_(ea=v3vS+2dRL1^ zD&vEE;ZerDb3HS`+M(-i&1A>SSbpx}cC=Eq@wuK|_uc3(8K>``2=nEoU*$Ik1sToH zlvs`AcDWs7t_N=Q3lC#bHB3t!wY#ZWNVU(eC7N*I%;c~YoDb2VwGDXN%Z89C=Lo*@ zGXai(@rLIcP8$yze~0#j=$=k4Lz=BPn!+h z2l}{evyeVtoYivj`v7)*4@uo=Im3(_q2F!Z-r?Vw7&%?dn1+B%mdo<@qrpk7hjqk? z^bNc|!o`KOGq}z*P8wps$-hUhmfK4V{Eqse3YukB~lM{5wbDgJH}^@qz0 zANkbdu+Ix!h98l+`$o_{J>>K?v*;M*EXoS;?eZP&h&xgAj*k%;h$X(q9GOGdfZUU` zXO-q(h?4K~=C`*dr4QAs@1h!J$*(70C=57_WTtwD{}@gA zL&Oi8_@#=eD}g>b@#cv#SnNT$M*6ygr|`BMFF1dOQhQfV77sY{Imn>MYxTn`{2U!u zF&lLk54S*73Fweig`aJq|8c-R&BaE+$^U=X479HX{AYXWe=`49W*`drf4#T=Oa4FJ z+W(XMKX1(oA{&EI4AU_C`29`Cf$cLmkZ}YP6bcjC2nqxM3`*MjEiZ-+gs2C_0IUHD zhy(3m8X+cx{s-y@AdNEyz^>Vm^U2!Sf<;6@`AQlvfrI)P6W0>?kphwdvp+?EDBmV@ zDdR+Q%>b|okf?CT2$&#Y%F;-|e^v-MK3(GkkpYIerSmxgFB0)UVtxR_6BTUELX*;E zh||g$(p<_oU;#$LI{>B;6hPh%8O0>w^65G&Ap#MaO`MF(G+48WHgdz}*}eJx$ITgw ztK;_-fx3`|rDpk+Ap={$N-bGc=#2eV{73fn+$}Z%UCyr>zynXmsBq>a-`i_2h>yw%n~4ULqLYOfP2p zONoYx2hamZfPIp!WL4r+aMD4pP?V=83kEDD3kdl*^$gzw#XtWj3S~Dbme7u8`jdMf z7X@mSb$P&5DZ?bK1LH*%n-$8pVHv=naTR?Vp`|1Y5ol3J&Zcktund#4StC~gy3XQU zdaupam$kLV7c|PggmcE$Xq_dIpIqD!a8)tnkYsHTaJi);p8i}@jq-sNFq@GCu;iiU zYwrF#hz~4?(hoP;qJRv*w7bu8-n=Z56_cseOo#mrfp;21ef$^I^Cc&u5<<>A>igo& zbqjsk)4jT9Y*3+ughuSzEH9zt4ApQsyDpOQ-fc~mYz)gZ0myC||&u=hqd@Ei10LZjB4(CgfR= z9>}6Ms#4#Eb8!PjV)ffM8*uDytn8Y~_8xf;>9mWd3gqO~KlD;3m6a_GP?1rHSrQF; zDLlOkZ;W8GwEr1J7>JZJ(Tf_hGSLcSIiUt40&em@f@Sa-DU_0pKnbNdc2I)+W;SQ5ZfI7I;7poKnQTwJCLyU=fr?X$t>)&g)UuPUVw2Y(EuqtEMeFRJ&zFKZCN9peHFP6`>$D0Rq zmx;o^80Y1%icXx!>E8?3L)RPCxhN--bA&0_LxN;Bek5$X!vgW~hOWHZ%8uGeiW$lW z4`mGcsdtdpU>osQG#ce z*v5b!^`REmj%a~A6Eq7|OGWWw_29Aq&$ODZ$|5hR==xC^`@(+Q1+KGOueWlhZ~J7n zz{;dHumO(_GHz#PWL(Sd5o75^)0iZ##C%GU+3QymshI!`gXUNZE?H68Vl%X=JgOi( z%jGni&a7H9q*77ATyxDJA`3A_KNv4VR`4=3$}6sz&G{)jW2~{SeV3S*i1;)^n*01YZZm1Y;3ZH0^TAhKA%?eh;|%Gx`uD zdu_RnLXT6O9kPjapmBiE&VdV;um8q=qB3t?KbT~7P8TMS-d?m1W)7rM2vv0!N@7y3 zV&>`A0iRfQZIpTP687ThAk+^89}g}jp@yd1wV6RO|40gcYLCB3!gJ8#9v=wW5zHoVv_ z@VtK#o#e+rJ8XMs!lv$G2CA6;D>g!^JWiEfLArEKYaeCSiE#zUkj+) z6VbvtGC*3~vw2X*_Yvl4opdZ!%s?b!!y8H_6`2n+A@%(0GU32qV9W`9(j?$5K5~r@ z=sjH1Dx(=m0aj?za zBIfdb`ADK95y@G2R#&8=icYz;RRrCcKc_N;d{ORht>z->ZQC9!uq;xcmpCuiXkb)nnkAk`WGbyd6uXn<0 zjNe7LL57KR@8_{U3Tk_RJ20)@O`vkZ8>b!ZW=|QD3$tGJUBmHj} zxr*dZY1_FA~ zM!X5!0n3Kyh9HIV;`N3Fhxg!sW7awDGEEO@INVDU(Dsw1b8d=0dXH*&jXkj2Fh zo;FnB5gNfPpH7Vvpea4t$20Pr*F#2(Ee#427)5VghavQD#t}jKu!&>PL-N!nH0%L> zatS02*aoYE^g$TmdGZu^(652v*+folVK9D%nEu@X*s?(k-ADzc3T%OLtzC7D6AFD? z+KJ%3O;5EQwqjADW;qM&n_|<1uN{oE1`p)>i5bz+#+T7BkTy5m@8H$(R6;0gPDv&} zlZBBvs$B+ad6r;*YV&*cqYRjatApIaf2mo*Br23Yd+-49J9vC@z8pd=wn5kx+rKV&kjJlEN`P{F(Et*~VQQ+SK+e}{2Tc%0aH zYoZS0$6y6-d@E!K;GJ~CGDIK~?hKE%xqERjKvN_sh8&_4tCY)=B#ShQlnV&fs*4oM zSuL`J^00K_jLNIJ6(|%(=5ir)-h(m+w;-H(&Lh#rwoYn|Gs3r@E@WtwT+V z9>Zed46uJtI^tHGz!qYr5ENBM4@6!tJ{L!W9~|3Yr)%p-@-L0f3(2)Dn~c{lbqsy0 zx;nBt8YiDfUjtTG=j)41&S_4^DMyavLv`654*&g_OtgAnl61`3QbU2^9svdmKomYw zQV*}1rjKJ5P5*$`F!W&LMxxa4M28RT%vUQu5)CXpL6z5Zk4s7W%L{3M-U3&rzl4lhUnDF-Ea+t8tmRIlWO+`nQSTxhnuBq9nH|$#;61hUSV?;OA)Ih zKW7_7MwqUyY|%iHPb3rLv0+W5A)M>BVU6#aQ9_dbLWHt)yS7RI-jnyLNyJMU%Dvry z8gX^s24+A70LXU}Vhk!B-dsG_eR}>()hW1nx2#gjvHqlI>&3EHrK0#pqr0}nFPU!e z)f5NHrp5;6{1Q~xKHchc7}A(42HPYJvizMzP$U0#O!2L!z@7c(d%f{ALQwy5<2n6h zUh{*!N_&3~b~N~<65I6x&v?k|HQ)OEzBC5${dSK)@b1XW^n8q!XZAHsffhUY{uCvb zY-nK>$o1iq(VC)l#6X+vHEJfS*X-TUO;9-C)Og(a@#OuyVRyZd@txj%ef4s(ErX-F zAm8}fivV)n?Q2e2eo^yBf#pLe`{k@c^}RLzuej+ux7OCn`?mPT&3Xir+Gh;fHA@;n zr$-m^tpE z&v(72@AVw;xSH?m5xhvjXXY|hz|1{a>;5k>XggoMN0rdZsXC3#&6KIR({~*; zDj0GiEKkX3L}4j)g+)ZZM>`i%pGUo{!fzo;BFR5MK`bhwm{jG+DQMszkw}E7ut7qz zZZ5^th(b{DMS#9HbrGoFi55Ynpg)U5%lpYb&fq;k1wU=>Xbu2qx4(r9HCa8k7Y&yPsO$jnlH(l)(@A#`iQoc+-LM<)lu2SRt z?4CA0y0>34EOlOW$6;{jvpH}pFH?bm&hA~-1{?qt+VtWDtBxj9?{>F)X5CwMT!?SE zEH!-w(uMgyGBfz*KHo0l_Wqqa>S2k@YbnOH`-^tOj)|hQ%ZL66ptwNbx9J|mZdn+u zX=-X_5vuL2WL4T-nE?TnnO5kGY5917kXXC|WCJF@Q2{E^JW2?FM+7DSt^ljP1X!TI zs}mBDCJad^E+)f%R#{SFDvkz)p-L|=q*>vr7gAPjZe?})0WT1T3S+^um>~k_;W~#bIejLu>h>Pfu=TtbgBugd z%G7xJcu3CB_4v4TTka0d^N3`vXU$vZg7%|Lf34!P~sQ;eublTfr6q1PI!c+cID}7DwYDkIsKz-8Q3Z`)Y@5qFPy& zTbrSELs*w`Sw5xGbsLZmeDAu**?rt7dS2}NvJekk*Ic!nhCrD8W0a*VVkvN1SUJfP zXSYR??>6pOCS`g*is(gqm57butl?*zH}g~2f;()$VktgjO%zmZm3*$nBnuhW%+ih z*FWky3{9M0d*H~Q$k8zQZfO|TyQObP7wh0L9|y=yDQtUx^*Twb3+Lk62sZP1)C?N5 z-y~aREPIbQp|1oT7)|aaX@YJ~n=;4DuxUs3)uGv%0u$ z(@iuq+xqUkj(*dm{u$n*n>1E(t=48|b_CB0l4qJ^vGFaOx3ZH5WG^bL!JGV_hV?u1!26Z{d9`;BcUUur?Bz9`6=^|P;oB6W>?%mYytp*`w z`}vt&fD@8jRdL}$K`AO*y9U>ycVuN;>){zaToz|&+o6`XsA-S!{zta?pqOWXP@@1M zI$eeBu5!O-&VDsK6NO&MUN+d#QU)hbMa+6!qlWMb2|OmNrlzl92zJcC3%rj=1Y*Q@zwx4vL`u zf_q@7EX`G~$$){biE56h3HHwlbONk$Q3nPd!^lPv1jVal&vp= zr-{70B@gkgB9^%L3da`igCTFJn(i<08r%gTxc3^558(>$A5QO|HOJSxIDa z$3>pl0P0p0NL3W#;02RH*;>`>0f@A+%3B ze3z?NI!@A)q(XD%-myBTw7&2|A7RLNeyly?pMv9f{U2a}NZ;-cH}JFjCca$zFbaHd ze!Lw6;*H0rPR;iD>BXHBsBo_x3vRSnp__7qICon|wk-WD3qDbyLN`11jc7X;R~r|P zc2-uFj%~^EF&ubjuRIHOxM+bS&ln|R`9Q$zZw73rLE>F?QcTzvZk{h$IgaX(f{2gJ zzx#J4?UOch#LXQYJT(uMUKxhFnT$Vxt&VdHe((2YSF<-*NKw#a=WCtX7R9#PA)3Xl zuKsIFBh-R-TZeEV3sEqJz!F`?>Z&!I$6+PcGxejLl64RjlLhO0m^>^(qiH?a~Wx;ABu9K38(&ou1Pel);l^b1)g(Yx3uFc+-@Gh4s}mNSq7;J9;YC zYL91w<5GvotXjzjpL?y_*XnmeLmsywQ8cAH3QJ-a;E+Z%c(>|K+ zy>T<^Qm*_Tp*Txj&tv*k9L&XDcVB8?-PuD0))v_0bm|UcQ`yPiYmRaRcS^C`_a)s} z8t17T6qfy-Nwej`jXgIWu7?@6l^KqY)0uZurE3TXMwC6Gs{M_vQ-6p4M#0{jia#7# zU$;^GaeT-HVoj8(+Gw#ZH$((EJ@WCfGM>_v(uANiu>F)aW@eCYZ`l!NNC=a5CT!wj%7;`x=hMA&Y?jFLps z9MQzY!xFTRfUeX4qzK7vl^yU~I0yvK4*l~m4d#=zMbC459gdIwl$>g-q*sOG?3xPg z)zgm8-O#2QkL_Kivfigp*0b*KSHa!Q?y+gTHKEQ{spmBZMobyle!Up8_&k))RxiGd$#p5z|)O+aSUc^-P7+R1;VD%fAytx3JES#Ga(J&(6J9XwA` zO)zRr3LwSYqlQf$_QCe!f)(gAivT$|UI0()CmVytE51FgOCbrF(x)2K8~@DmPwr>J zpb4-*AR<0|{UUYXC`F+N$9l{V`}ch3EF^zHVeJX_-ctTz!XQm8&7bgB4;eh65v$Ru zaT?G#E^f`uE2E5HWFfIA+(+-IC>>VeOx7hklfUqZLej)Rz=47!$}v=a0HOgX+FWL# z1b1QP&`G*VO%48kyYRo$$42TQOp`d|YI=W!99(m4mJ8#_Wdd8IA%R4T(j^a4r6C6~ z>wz6fS)AGw*=qlpSQ?IZP5Ike2+S$$p?>j9CL1s6Y@W7G7_-+=jM5hZ3~7f%FLP)e z;Fmb1kfD{-*sQOcyiu5jY*KpQ>06#=;4sr65K=Q;6p;({*?kCc%!th_RB`82U6~?;dD1&C50CVFfTRhg%yg3p59%{H?4 zJwKC987ZZJ*2NwZbr-qOz-NkzKYfsuuf}3U*0KCTm*e?U(7K%+Bn@qwU7H^xyCg zXT=#sxip=~J15-rTAq>Zp z<8ukuB1$nB<|5_C9`bxu%8J~62t&Y>-_vMY4+=p@I`4on@1ZHBLiGNseM%x+2IGnm zbLLk1N@u>urwD>mzTrrss2DNMTf2R04W!)bb&oIi!k5hZyBiGAhlP0BSk(!D_vl4XkqSU1maLXbrMdJI*^Y+}2* zF!kgZn8=YjWKL2_M*Z-w)FmW=hTTvNhS;xJ8JiAEHU20-W(_{;FETkk=-Sre@JGsM z6R7$4WVQj`6P(6@V#oHxp4k3qGGvk0y7*?Xg-0wV>Qxk*>>`~bFg&xrdoVcsmqCCa zaUlS85)7L@Df(2dieIRQdHMm`jVF{jY%;eY#3caz&b_xo--zdj$X9iEH9)<8&iX7yjO<@AV8UI6fK+A6&c^lD zOSe?icC}VjRLomBG6;C@hUpvx>JXI7JL}^90Aj0tk@Yjx`||kfdv@?BYgBA0Kc9ZD z&$#@HEKq)~qEN1cuc%vU8P{$v7)`chT7~7!VhQRoVpp!Jl$t!lQ$Uq_6$xuu2N5eM z9r~~z3o1y^G5X8`lHU)-Ib)qNLsXYs=nsVlww;TVmJ%)*H4uROz?=MSx{G-F0O~A; zRA`r2msc&D)hobChCJ&=1jj4Q>hrJIM}nyFf3X0?6*M;WX-L4Fdo|W~rYq78BRFw! zI(psaPox^MmS`F2gWG(A_7_kLLSR@Q|A@aXkE&a8OwNN*oMQXUA}DRmE$-JM4tR6s zqNf|m_&}I;Y&G5>IY>}oenTv?H7>Mi2VQv8uk7EziG{${x>!nC$QDp$c7!M_ga=US zMeWye3}KQid=B3845i9P0J@%Nq8`O~r|vZ(Iv;`G>alsWN$s~jzq4Gzqnt;t_%_xzf zD6W0lnV8eA1ZS=Y??8=Ky(c7Yjn4uVgm#y}LL4bFJUsF$XNI?~I*yb4%Afp>(1=7> zH0$#?ci@f?rVUoItsiKo4Uja;xfGG2?mn9R6sRt^H_)3j9{thfq{L@3^@$w{i+e36 z87yiAtPN)j>T)Ka1ikJoG${v_!;Kg(wDyG+v!E1bv(|Rbt^ZXdbYD$_wMdt z3m<28i(za(HorF5H5vHx3^EaecnzPg79PdAtsc^?C4p z)LMEsIJ?I8o^-fr^mf}Q@a?KMc^!U(@v(PzaoeTGA86E_=}1%i%=LPodTS_ntCwkg zh!=I$=JLI$*5)RI`}~m#?Rm!(~!o&}E9yGKs!hwJ*VyWt-1bdms6;~Jv z=VTy`q(D9S^my$A=`v6-eQC=>#u~ym_p+X+Ft}Ik;T_4*cf);@QmH_QMBic^S(e|qcPaplqucbo1j1X zul3JVW@hDtbjqwj-KsTw$z-}dI%wWFK|vS}yNQ{sZ1SYd_{fMI$7Nb;HEjE4Df^lg zTgm28!|ESdPkjXiSsPiF>T=NILzCmy6Hd@vk%T`7 z0*w6zP25=;?(S2Sv?Y^AP8?3e(|*);R?>=|9o1!A274PBU&orQUjkZ$;HV+foeweR zbkElsTy9&jHf?)*#pRE)`pcbnJ=XWrRVz(Kh8;$0ohdS_$fGUiZLglLs`w;(Cuj^~ zJ}AcILCA#IGa`v;U_r5@yrgz-wZ8Meqqzg^u8frOpD5kqQQvx`t`L@nCrgrmhaq2X zj+WHTHUn~Gjzz1*m(gQKweBD282?HYNW_RaHE+I0^3>~Jp4-ZOo`W#TwX`}w(WPpn z8*kjLDlR{Oy_(o>&#^m7N{RbFJ{v}o$h2$iHSjY+$g?_qM#Hdl$L@lb=Lv^CRqA;A z?M9Dp`@Ch5e|CPm_J3glk&v8Cxazuo#S~4u`pwwJ81Ca6&!l$X>!Ky|`FJ%p6OBNY z1O_vNy7)NAM^G_W$IKL zt2xipso#B|JjS^5w>&Zx^giy;`_}JZxK4E#L?JvJ%VK`~;L$e&oDHljUgbr@qj*i{ z*mMv%LLz@6{JR=mBpM0t%u9m{3Dsa0Y7gtY2Ym7-t%=6DWlYr8?uX+7zn_U?lQuVwJtDwoYIuZDnYrM6~KT{7TBO&&a6dgAVOpyNp4>2 zD>fAsR$GQ8LwXp-Xx5}Ee*-!oS-oBPQGN`DNt%g!R(7kk7B&ks z%6=&D<4cSqdf)q2%uD0tq{|qQSkz+q5xju92mxDQS%F)~XwW=!{=23*Lk70XI7+}D zhIpLJ@#m9jgk+qyQ!*qjy#A*d-8Vuk${gkyh|$9=)@U& zlGln7=uK0HZJpD{U!WiWQ2`cTPi+-#Cy{@L!6|(0r*G#Df9QN^IoyXhNtGYlO`Bj{ zp}}aE|8#b9PV;pX<`yx1Qqy&dM(xv0$CZEV?vmo`+#W&<_2sGQa3AMHF4x2IovST_ zyV6kr1j-uSN{RloR~Nweuh?dLPaFn1^YTpn&A*$YSa!n+Fuij{3M^M$`2PYHH|fYT zES`G#*dCbS0D;st&M+Pli2=|-@P}SQBe{g3g-9J zw4OV0aP{7*G1D$UnDsX{kn=`^U#sQx?ntamFa_H8vt_d{D8jodTacz7Hm-d6d+X-S z7`3S>;XZbKTX6m* z4pBd4a@m*b5A_=ryLzNa$DwbrVkUw4`BcY_*652{+7{XzE`e*4C5lM4~9;*O`Q0D^l12meq-eE zuZB`U2#$rmC{T0?r-**@=i?u8y!fg6Z@-Sd&IE~}ptns@kL1X)yoeG0bZgTU3$OXj zL-(s11%S@VFPH2O%(&_Y`<5+g%u%z3j1G1l@C9SN&QjlPze5NR%GVh#o}Wt`(&fgA zKlC@JMMxoftd z(u=0&n)IfEK|>j>y|dl_&WFoQyyLP9%ZH7gIF>&Q0OwwHcH_IB7hf~IUzKT4wcNp* zbBE>U=U;U87}1qi=Zk@bE6BCnR)b4s}&EcP3f6F6}y-fN3z_6yt zq+ob9W>E5bBSL7)Cwn}#fipifMF=XF)Z~;pi^t|Cf0fQ8M7tW~r8U~oG&l6dn@j%k;IGzf&besjkfmQ%UUcc@4HW4tw)tnz4Q_f*t+?!_ zNrOuAbE=nbcTF#9i_(b}@?jViIwqG{?b#PjF&Qm`J6a$D2w>v}|D5%wzoCYY(@@>C z!9~S}XuT9yvCfsHw!Qq!({mSIVUOR$;FvfC>RWSkpkpL(F#fV}CYlf&70C7Y%Ve0SfY~V4aw7tC@ z0Cm8Aj(fLI_5lt$wc#u(!>MPk^L*&zkq^*{iR*_{o1Rp}m^!!gSB?RH^p#)n^$Thy#3uZA^VU zSjf4C3R&|lWh*0xF32x)8O4o}=((bs2NRfPZm2(kyVMo!9#z4i9) zG3QRqF_2H5e|Aqmykvew{odtOe#hCPOz(ZNnbGkZ*VN3MH>$F#vbC|p)6v`&>KC0t z5pJtHxM{;WB^v#7#U{P0Y(yr!@y6yU8Ul zeI$KzMx{>eteYy5kNqQr>MEPpy;9j*z7}TDf#r?E<_!|`$)?m$3M|hY+K^f`^@xZ4 zb$Hzl`Ivq!Su1^2b)*az3)EntwYzqBBsCJ0BOUFF-&^J?DQRu=PMSV7xPR5_EB5c( zS3mvyg`NAp`fz!p#mOxDvQCIr*12U84%Ibndgq;wy|H*a5)8D~dt>x){lV(S02gaL z+~`H=rf!GpeADKi+flW4Pdsy^#mkn>83eVjzQ0Y3x9_gnBUne#;O>JB9o@e1G|n02 zSp1vm4lcRazrdnN`G(i(JHKe_y>xsE&DEYEQ;QgmNnXtX)5cxxsg)~1VRsE)y-iwj zRK-47EpKY01iSjBMM`Nj(t!YLh^K%Bp3{ju00aYm03ev9 ziE1Rw0)SCK2%&gfj!P=TVx3Vy2tZBv6gWZQWYBR4p|-ZpSWGsX4Q8_u03yL4LWnh( z5W{hp3Rpu3q7nu`7!d>%vka#b5kjgY0|iBn$?*sww96kkorR4MCkmd1X3aHxxW4U+ z1M%~w4qEd58yYqWI&(`?ef93hE$KmSk0kQ265u?vK{TdN=T!JHm0^&t@dA$x>AL__38;4XNc;8V!d3$j2M+wB7pP zd9OV228IFYfut|BQ|>V5g4?IFe6nj>iL3v9Y-ML%pm%R$*xW%gudYZwIvebaEWZD9 zHI+hV1Jq7^Cz_@OL!mUC+sn%h56#a?e!M%Z&VQ{juJxu7BO0CYqcNlAlqFx5FgfT|}j65I&B5x3QJ*Bj>s}Uij0#5uVYHsO>#buL8Z#EeyKqwGI z0N7weEXx8Fu?7I)I0gU=8Ul(K%!wiZC@~2DqInHq4?9e0U&=U?P`X!%NZ?nF|G`jB&|QS&C+upMP1Hb z{%&hmwY4wk$}MvxIbJmK&OsTe21b**b7$An_dRFKFu;I(KP0mxgAOEoZhDhYUffp7HTH0tyQosLrK_I4ffWOO>wXw(BhM~C;! z|86WE@pN=McJAu&XQsLLN{?FtYYyVRo*e1dhyls+*8!Zt1e8Fc^(B1gEdQq)X@Igq z0re!$cm1A7uOm?a5FK27WphrcGkMoMBhyS&no-vG)*J5JDYnQi2?w_mdw&5)g1xKDs_Z9no?>$RaG5`jP`{PLee!2hJe%9 zgIf5ALOWfG1stI*8dGm*5C8=VV#RU_bU5$a%QZY?So>)g#WCmkOsj6uRfa3&= zF(FivBzne;H+6auBdn^bEXi<+awHuu0Dz*YYD%`~JK8bzjD$UA0(E8}oOGpbjvjLe zkpt0=1pWz-XmzY(rdT!u${Q8mN?J(?MQO#3Oel;j=6ghT_J=n^=Dw*a+5CF-q>D!< zd74Qnb>wGgae`CHt&GJ6!bk)1bxY}2?RnPZT~j$KSAKZdkjeMO&For!aMYYKlHBPe z1)5#zIJ6;!z$ii}5{(WlssZUPK?2{T7yTA#@W!|Mw7w`e;Ec@Soy~eq8_w=%lzk=Esb zooVM-5&)-_O+JQO(=6jY~|NJt}B@9@U<7-ltI=j5A#c31!Ln%E0sxu}1{UUJJdwG3dr4z>klD|D< zb{dmZF++wfy=FVo)fQ2~>df|cv>n-1*u+_dU^A*=&Sm8x;C5>aNpQ9}T-lwTHdkgg z)zn~6W@&)W$l*}GVE3h}$J2rI4yTC&04418MWhT@j^b|%6SK>%?>}1xrS%=&W}nD& zoJnMJOsv3SIC?mFg1y2BHaExmj={LSrYjbTCs`?oFfwH5fTjoEtE#A)qEeu7O#uMC zAYz0Fp$XuPF{PBqib?^gimFNy0I-4p0GdjuMgT#gAxxsx0zxRk=tO`307|?tN_35( zfCwQ((=?1UO_L>w0z^Uz00=q;Gk`F|upFhJDheP_6eTVx2x#J%mm&-REX(v^=TD+~ zIyxMgS)E4`K#{|4>Fn~G?3p^Yw|Pd7J6>+ckbwfF02Dw6hR+IbBb0j8=;dwCB;KTy z#=?N`k)P8gZIr{nGCj}(w^uRr8PhyxVgenZWWgu^#yDNFZ2&-vI>wD1viSK=BkJ%Q z?ilpZTdRFBaqPI^uhO@~Xa=tnn1RDb0II=)n|?WCP`2W$x_i;9CMTcnPoy*Q$u~ek zfc)+N+h?m_<-iW()LGf#c*y4oXy&3keMFL0 zZT5}Te}4Cip2wcQC*ZLTFNUbE{r?_%;^`$zpZw9)($w=Vm{t&AM>f20-P%BQ`YVz$ zdBHUcrjC>Yt&czUOa%Bl7X4q2UEI5QnW?10C~2FveR1$mlP@6kgH0pfZh33r3o&1p z8jXUcv6>pL-Y3`WvjrQ=P4Us0g2=I$VRRhhFtGU+eqVdM?DYLpU^Q#zCr1UW9pBQb=a zV7LnaJT1{!Sc`}KT@BkQrIV&#fe;D=J<)i8P%Kjc02n2RfHt+XRqm_q8*?7K=!d@^ zU#@@ZFE9P_nTNBDoK0)}*FJLA5Jy+-sz;t*-n-d@$H8bUM5{djg8=|?Im>;{i=OFR zivSt1@Qm|XJ>~%bA@DQ;AV|#yU#AkDMI6@y6i*20JII6((t5)Bh8fK18C6cDOc6>? z%(g+t8y!;uzkK|WgYT^vHfAt2jh&EfwOPsKKYw`6Xq&fw<6oay!tvkt3VVv#So6kP z{^oz;h4bwsB!fNOpGdTExF_8>HLWjG_h`>HD28QH4vT(M#f}C)B8Ggs5PA0TR|;IE zV=FrUdGDibhTyd~-Lv%Fw@g!ilHKrcwBYhVQ?`M-Gb(c{7Qe9iKt!2&OUM4|%WpgD z%{>U?M8oa=phqOsIXtIy?Q1trS@1}+V_1ctry_0J!iJ*hb+F~E!-HfGtu-Y0WUkpSbVW<7Qty zKD#Y9fA+GsmQTODfYXS^_NHbXuYScWs5@cfkcKhVY(3^8L^5Fk0q}?k6A1zAkGr?E zwKnd9?z?1K1V>p6J(@H^Qt0LpMl7F7V3fq2=l){Ef(oGInC(^ExfJ{T}3vX|{>iV1G zZHIW#e$^lDao4U^8S}ggZ_tUco3}UJbsm{FXr!n5d3N{%GcLX@cSI$hpR?n$WmC^T zKeB6OzjEqSpbW1mfDpk5A;cn9jjM!bv?uQS!?i!X+iA==@4Tu1`gC(Y$VlJ}#*=tV z$IUlu&MP$M9SdPFO{>3(w>G7KdL>j0Q;kCEbhbw9h+jP9EIiKcglK5zV-NXS{8Bs` zi-aY>?hpc?dc9GnH|hjUC#sZ!Bq2aRG*tu20=0=E0JP`00Kj5(7%X~C!FtS50KHBE z06D72GUXX;)SCckoUjyt#f+ZkfKo(s01%BvNGwKGLKO{R6qhBSz+$8qIZ$|DObDo= z5`z@5vdDq=O!4mvj;xh%!FQC(r0W~t#8Cd%6E5k0h^Mb+b7i&Uy zUzK&|Wp&s5A@tQde|l+o@yqYc9x-bMSgf-x8bXNSxxv$~V!g5T8#hTbjgKi9vk-}O z6i@yM)#<~!@{wYr2*QuY4+$tfm~gR0_8D@3fr)x%Q$$O99~d!gI&TjtHvgElmJGAy z>AOvD)Mz&PTKtME#p6++NQx3lsWUg5VOfEbcrH#UU`zo4A({phV{G7g0N_mq0MO|T zdYyrAm?bO#@Vp8DC4P9&mFD@Ed;%}d$92J=qA_7UiQwXdE=nW#ZPZ|oMQnLFe^gAs^?$};(+ZAL(>J1 zsv1>#Li~$SUu$L$1`~}aQ7wgxCGV_%@i*>&XLqZAppv^T!St)Qw60jO<%5IF4|1e6 zpZhm#h+cEW)Rik%uH4jl^`)~ue(ob;;Ra~%0T>c*YYy4UONtIxuI>k5RE{V;+6_>j z>sSxQYO0o6_}H4g>o2!fn{C~80VUSalu$97=i?97Up`~F>$QLWxnR~0M~)co2zs|{ zSXw~xG5Ko3}>y}mFCaN2%U-`=4mTzk@51KsQ;i+HeNA~EX!6S;z zo~@fUN@*Q4WNrU=qY(Xv~ns(WBv{RBujEU7Dp7}I8aKX(FnsZ zDkm$fL@C6g6cDhg!eWdV26HR`NRk8qkw_F_&{QNxSO5eh3INe)EFO!4O2XkVP#UEy z1pq|?RRT(Z$_P+A7ME0w0i*#&2t`5>3Y11!P;oRCm1UU%B)S<2(ImOD;%~mY{DScX|L<>0tfS_v|L9d$CVl6{r5DYwSpMR3L8g~aIgfWp>Ymv^ zR3sX~l8HnEM1s`U1cU;@6aWYz$6#o8^OMRQm?(wC_hk()7Ly#mac|_NhdcV{t|_5& zZ=F~+u`tQ;es}PVJC~(YN6-NokQ0qfi2V4u3k{Z}%F+=+l`E>(zfsvo_7Wku=r?C& zCtV}he4u^Fqw5B~!~scV!K(U$&o`mu!eE$T*8c7Orq7r3QSylvrPn`szR{K(SpkB* zs}HSxbyuIepuO^FnnqLt02C7dq$)C{ln_h^1_V3@0H6{|fR+v_%+1LGfX!RBVT|Rt zqAD7~fLRIvs>%WY&taCqgwU8Q0YYqoxCt|mNH#?X0C)x;VQmKr08&^50AML#$}%j+ z^8gTwCAg*7gdfi!0ssk$O`c;}HYLIt2%$6Rz%=qmWb}lNN|*&X4jm0g-$#HDoY4O> zjgIM60%}iAx{Gs!jwrbLrg>1TLviM3BtM=Is!3!3j1EXDODw7+p9V@P%`CFVI}}~t z@Qkt|V|Dd_fnQa$fp2g?QeDNmI+8E5qlDy)pVYYYL&W!qisg@Yh{hh|x@(G-7DyBT z7>2>!n3A|tXJm3LmpCG4Sr#FrGkhB&deRP` zC!ENq-2wd(Y>lDOt&S;6w&6mijV;Y&0^vR}QMwGllr;MtLMYT3VRQpUKLe7|!m~`M zD{8dqlRQYYIE{Rt(WjXl2E9d05*#B00e3jn=2PH#7$8CG1EG}4eRizbw^j@w?(Nh& zGn0HwYvCZovVAj$V9T}eVzTYEsYX*##e|cCX$E7Q9BpSP6pqE}0l;iBrQm{5zQgv1 zy`olZ_mBIQj`K9#D(JtKCHeFK03KFJL_t)h#t3%TN(*NqE$KV|%~j^#zUb=ZHk`QPC)jzI5>3&ky&-%~V`4qzBdd2(?ys zq#9rnMRA}VXkUn?X_6$RYC_Fzj>l3)}7GKvOUhK&jw*xT!OqK35c$wee-6(bsH z-0exV`P7LgPunAeB#Ce+rHZ0Js>UEs^?-dLgpe~=EA~`~^V{)gdIU5eCPc*#23@7qTEEdNc&wwWPqXZ1h^HHC-2lIk)`NfxS z*}tdPL+p7Kj*M(e55TLewO0Aendw1cmzkSsGMiLQtFQ9_Kv|KCWf?#m!U6!*a|8f_ zQAN=xMie6r0Hjz900fhX;du;{rxXA*5C8z9M1vrZBn$vXorDmTB_%GYh`~CW9RPw| zK21>=gg6X32#Q59rI2Bc zVnkyxITDo+!y0pP5P-n2iX?Lw2@C=Nl@ky`kx(!m4ifBkfH!2mbl`dvdQ*JAGfye-C;{Ylobqi--`!WdfKH9laUo=5)-M zdF4H7R1*!v{D&h0KxaTwUt0HgW8oh7$_$Gu&Kt(`YCA4-mVW5e;vQUp!0!%fQp&~8 zBtpAX@E(12si4r~+mpAeX~U+SqRuMCrM(+he7SaIRF(Jd+P3!dWsNeWlmZ2!fyJz= z*}38KFITAm?wW0D)~wxC8)~WEcl#}m2xU`?a46lE9Fcs*uKacH{!)!`HZ#v~Mh3LM zzWY^o+Rav2BwQ?SVPq45slv`xRAt6N?WiD~v8=Xik^c#dOOhGAKr=Xs9rL-x>~ zDA??4uk*JyP)gqX$BQi?KLVBEgjhJ-a(KT?`>Z#8{}zh?D|bXD4LAJ9v{6c7_o3(; zJ9x|V$!8aaKYCyd*Bh1WnnY&bSdo!!Nj{qmAymJoRdjw|zM}z2YcV+Z<^%3wGmOa} zEM*RIOuTIPhBtTjN+OCHA#-n>n0&wNgo;&fs!z49^pwEQDvW36aou7D^pjoTSDOg~ z06+}}+xWB2ZC-nyIQDn>q7psF)Hc#YFHykENB?|f-n@C|jhxNIZo zA3DY`9o1DiV<#j(LHSc>6ZDwElN@rkG>u>{43`@R`NK#D+r%5P*I2x=%hk+;+=7 zzp`)M)1~$%IQhOrMlpg7d*fX}_1nh;!rC(*`Ckr{74C|9YQ3p8lY~%{jK8!wse?($vvqbqH!f>@SkFi~Rhxa7z(*>dv#@X#H)&fSM&rgUF& zSg>>i-J{O_EvsXqwlNd(HH?KD=1%lQS_@`fh&$Uwhi0{vv;D}*HLUsq;bfl&VcdD> zz<6Ef+%dgC@Z^cWlXp6cvib9-Tkf3{U{`La-P`sb9XW4Hz~7p3hkFRX+)cj{DrRPm zc&KocB0Vv*TW5K6ghc(w2y~2V>ub&Bk93&FN1EIxsMn9Yf4qJDkw)~#-UH~y%#KpQ zLpHO)9eZm8p63OT0>TWY&^4sutShd)2+N&u74`a;a*}8P$8pzOb4_7kp(u)>P^h}P z`u+Fc{||AI6ehhtrc3Yt-Z^uO;iQ&NBd~2>@a6p(C3A=A&BF096n1@eVBJ4=v%1sV z(uhjOURXML;pm>i%J$mMckcQ^bbjBPXAVfZi0sv_eR6><$J{do(a4&&x9?wBf7*VR z642(|IiY6<^Z*E<0~-#1_53!>rd)ecTZSd$>#fQHGS!YumoRv^>+pf*A>~CuY8g@F z04Z{?r6t(z_Jt(?npZZaBvaV3cAa9(n>>Dm=kTtBe*Nr;Ll{Jx4)3+(j})b@jT^Vg z!1RM9r-E+E)N$UrT@A9U5Vy24dE*D$x3Aw2rHo3{g7ONJ)?QtAoGn4qv|uQdzDxz2 z*>c`d)8gb|IE zTble5I_^J{Kro0gJ`>V=^vw-=!h{J67cQ)?uiv?Ir{C{)xm;7GOfeV?|M8>vaEf^U&6(`i&jc}o<__icm6Cth@SGCIN$>W+hPtnw-O7kPR%O|*&boE%sJUf5 zoding+IO~Bt*jq_I0KSKGJfHZ@#l@`sasDpvi-BF^)Kxe9X&tyA#nEXlLn8=@9A}# zqJ8qj>h|iCi;PlAtrp7wwNqb6x`R=mbn>D<6`ghVx07ZQP2Km!vb*^gDu(D205lvU zkGNOkgZjF7<>f7W@b9Fvt0nNbLYPAxwakyqa1H`xv~%_KA$HX4kv&4 zh>;^tbdGtR|LISE`oRYueDcXBt*x!mXtb`bZo`HRSy@@LX3g5LVZ*6Dj^_o8k7Ljj z1fvLG?Ot`^biLEkom~|^T;+eIG0S<@=!{I$sczMgmoa2!VMmKM8 zvx-LLp2iFWJHns-c@t-3U_b^WeWYb~=kU43oX|5&i7?73bq=1A+fwb8!b*}@mTI(c zY}Q4;p4HRS`NVe6R@1q4aTQLk zovM{20f4H;gMp4fz$f=a%P6IGyZyw`Kl#Z|Fvc&w_#(@)ixw@?G)>dAzx?Gd0Pw&A z4}ARb$J@4TJL$)zeq3{npXCgS-?2-Tcfs}RbI9skI$!K`f{`PGj@AK68 z>8TkP5Jnj}riqsfFBp-7PwV87Qo8x0-Mf|^f&qIpAZcdpVbT@D$Ic&mnt>~o)K@ld z`DkCz6aAJ1Ys8?Oa!17lLvu=9r~QXMe|~+#PIt;$$^q5ylMv2PtC_|crm7R~eX!*0 z^XSPUj&Z+FUHsTxGY>eeCr7KHDEV@0=*jm3oxyM8tru8y(Nyt==U7Yggk)@^s?nF1 z`gdDO$|e+I76U*$BES2`WwAht_Pf&Q#FH9*+Fz(G@pp*3D5dc;Q!Bk*f8y=lci(-V zeDcZm?c0yNvuM$x=bwMRqod=78*acDzx?vc=?g{yz~iA`JegHqAildIw2mnlIlUM& zJ#!!sLVkD9+a5f$xzX1aBpOLHufhznI8CLK3No_H_FU_kENE|w|BXAB@z#Ml`T~Po^Z>hSWA&}_(oIo+P^APY07AfX zXmp7y7nPYP}UAvn}1J+*?`XOFUFTXrnlxA|XHX%|o71%YEZgb>GJ08kW_ zQb=$yC7f6QAe1DwsYI|zr2qiz5lROj2_`3u0e}($lmZ}(FaRi;l9=cOC`#;LMAM)T zazoS3={gba2!i1E`x8HBWMtfY^UabZb#!z9KzsZDZ|}@w4=K z=3K6vKCRh8N0aj4J@nEW@9sFz(ECb7&g?a{tPDk}61CIUc{!VQ5eqLgg|fY0y)fR)c#rYWH4ld1sm#MprCSdyws zibh14qJ@Zwkzp&Fu{h+*ZEY>N(dMfE!-{hd%Lg zkMk0v*=#l%jSdYBm4yG~zxw(0CbaWY5^6n3Legyf6wsPp_n&8?@_r7?;Rgnf3l;y<$_F%NBP&+}5qF%Uzx&O1<%c(asm=W~WJC)eBH1|rJ za{zQ*?z%4LbIVA%%ZZ`uIIiosu3PHgN=;Z=sY#r3PEdMgM&O)ERVX-d1aw`;bsXlp zjB_G#9ETy6?W%z3;+h})#aB$nxW3idE8e_m1?>3k`0B1}s(itgX0iY8dQ-TVseaD& z4b;}wu3fvfr>6%1s;jFvZ{ECf=g!hcTefW3wryKH9$)Z8!1^ID2BK`Lj0z z;`lQU{e9cZ*R6?`N!a>JJ5xV-Ij5HQ#KW}9bDZXH5<>yNwlI?^*sdLIZ?c%wToY=j zi|V@HC7Cg~uGR>Jef8}f4Q=g#P{480k_2fGn1oRYbrG2;+KMd7vh0(X!pL>dc11z- zX@)3ZsBL9+Q+s_hQtwyl!d0!GS>4*)JUtzY&CEJbb~PwOznmY~H6nJjv(XJ3H)pvh zyR(lx_k!Nq=^lCe?PF7m`#67YkNo0`F9rgEyY9LR0LI71pMU=O(*FDJzkg(8q_3}U zc^I->CA|K`o_wmjD#aCZ)|=0~M?m1=QQ?>=YuB&dw~OWF9ZAP?+aKE_1-uD*kBVpJ zgZ=w|@ksHP|NP*ly=y;X@G=-T7((x$`NOAYgL1jI-qWkwd%IVi-VSbP|FX;gAe+f2 zrqkJc!DXV&1YJ`NLsJwPKmZgpP0@7O@cDfHfTrt$089W75Cjw$3JjTmOc0nTpol0S zvbh)oFmfy#Kyu z)~s8fOJuKZi@vk>okdSWvOuTY*Vngc)22J_xTC45NfgCfZn4QLV4CL0@u7S=i2!byHPLjc<){Dh z{X!j|pomLffvF@PH*DCjZr!?QG&(vu+S}XP-{1f7 zC#sZa`g7>GzH!qxHj45k_LOjk?|$)v!`qL0xdlCz6Xa6&*RSmUa_1%2qn2sE{$$VS z!D;WNcq}J4!N1)b`Qsb?ms|i&B%J#mn*8vjQxSuhfH*(VC;{Z>d~E`NASq(BKFm39 zThSnjA^`v(=X~_o2p~jP)JU>q+fF`bA_5lx0JxbW+u{gC1R~zrx(*Q~MgoHCxapZ0 zM6|375tlVXRCOXs<%x*;Om+Cx(x?T0n4% znM`5PFSl^WHWBUHx9<<76#W#cw(L39bBc&I-Lp|rFIn`u>+pBC9z6W|kQY(mvFw~T z_}wNsVI<6C!nyCEsY+3z0N@hk zKECflEY+zm$r}Q|xt%btn*6!npLfIp@~CvsY5&~mZ06;OdRD;E0 zoyh0&vpLTwtB7g(`Oid+YpZYn?hT553D&tdmb2?u`v-QN^pvQ_a)mf`-r9EKUDsTa zB{62Eu9Tk>WR@gLQVeLzH@z~A$Tz_nu=xLd}ePM zR>$`6SoBA}rmmWs@9Fl1^@|yyH+^E}wa0qAb)p{29*4tszF^$@wMfv%E}Dy!2zDRL zef!_zGFDjJt)c4+?k}Zr`hCSYCqvJcO{dem{=UvBz2%$}5g;-|I!kZO<-VVPq4{T6 zaObB})xyPFe8`DR^FsUBMHHg}RtgyVNR2{8iBSLm2XFoB?)I)mL0a;=$T^K3nb`iw zUfZh3WNaQD=Yi^1Zol`s`c>5zp-*rucX02CHy?dp(7ZVZkIMqvg&VJu|M44p&{XSQdn{m`;P{(p;to;O7B{($+zCu9HhmT5>8 z*;cB$@DLx0R0o0~O;f8QK2=pE#iweTC@=v@Rb)fg6-9A@F+ueCw5otlRTbUvtEvjb z1qQ0BX@*Z#)#=$RGNHY-sk%C<$ckeZR7C+2WJ%I>LpOYqB*mwu1tvsl!>Xnd=lN`& zAu>cjY^2LbqbH>z_pM#s7EdJ9`c=1mcFp9_V5R__YdQ<5n9a}f z;}(m>auK77qO!S0n0qDe9M2xvaU3NI)c90GS;XoH$gq$p_U}Hv{fRvj zeQ{Csk{x8v1oO4Q@BLqvFa zuX*IC84U`xVM$ul6g&)Jc*1&g>&)LgHk;0HsbUAQKO{yK&BvHXK*1`55Q#Vf7X(yf zO;J=NV1giPKHcXJ27JMQu4$@(k|c@*$VA!j`)jHr0lzPvm{nvU5)P?~>bl&rO+gTV zP!vT~*Hu-QBuP=Es&J^Tu{IbAYPw+)4F>|@a41|8 zjnq_!1Abp(CV3HLRUxT<>-&Fx!-lnQzq9Y&Z+_FXabst*|ElZ1y6N*{hquS_!s3e2 z#dFP-qQpvnl-^VE(&JG_O`|!=7*;832q8F~@ zaoK_b=4T5#9^H4KeQ@n99W86>{ZWH1Bxg4Q5X?@b2KJ2f?;JMMHhK?w9+xpe6?>1{ zTYeP#YPWRvZGo$=(5r)@djTef2#yO!M+;kbrhomGX**P-Rd^dY32^6!_{g9{05CQ= z6PwHhB1TI{D^=R7_(iU17_&61+3BKZ^!0P(3b0;v8fi$ln-wlzf& zaCB_kbsXRs;{pjqDVuPC<%qUolROq{7_*W5F1+Bef|(Y zkwF6hq%!~js=_1@)9Fm#;E*COxkp;9Dn9%V4?Xb6KOqw|hL5~<=<#oD{J~${-}>WU zEQJzYG%;Grf&lZ98dP-3Ocbz?w)XvZ|AAMJHCz?F@^kIg&0$|y2l~Xi6af))Ni%+G zwtx4D@&1@OTSNhw=*dtI4-gcV9Lw%}x>pY$Xq$pWw_+03c4p zOCe2jLG^SdrPG`oBL2~#K&3OxorS1W*1q%#h{TC=jyTsF5+?#6LLwldi`M+Qt|I_B zh1U)o{qbLJ&Sg@9%9cplEv{$uoUBsBaMtY~zfaH%Ft8Qox)dh@@ z9*7tV#yN49XA=3$OfEH@8R!{FPG+r)UHVO;;K@)AkF#JR7Sh(>?vsPNPijFq+!*Y* zwkZ%X{1Kloth0p%J;!p>@mwyIOPop#_MFVb^LE~uGcnJ?JUq@u6XC?P`}ix_r(Vt0 z1lYzam0PdTtHV-VM69k77nGGblaI%pc+x&}ytr*oek|dpO=1WPV7U|sB+N`OoF7o1 zM|WN@F*)GOa>wqt>T{B$n%QJ78AHVOwnhLr6`RQy>~K(*q5%Mi)-?iAm^lD$I&1#s z^$(D-K>7rdD<~R(QM9Rl(snrA*%gummdsKjkpci&CC*8U>Jovj>D7TK5n1srKv>bV zLNfw|d^R?j1;DDhARs!a87G@|^0|xO(@n;6A`0&x*wIq8RFN+K2iL-0vfGuU>i_@% M07*qoM6N<$f<1&?jsO4v diff --git a/go.mod b/go.mod index 0bca31e3..6eb2927b 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,14 @@ module blocky go 1.14 require ( + github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 + github.com/go-chi/chi v4.1.0+incompatible + github.com/go-chi/cors v1.0.1 + github.com/go-openapi/spec v0.19.7 // indirect github.com/go-openapi/strfmt v0.19.4 // indirect + github.com/go-openapi/swag v0.19.8 // indirect github.com/jedib0t/go-pretty v4.3.0+incompatible + github.com/mailru/easyjson v0.7.1 // indirect github.com/mattn/go-colorable v0.1.4 // indirect github.com/mattn/go-runewidth v0.0.8 // indirect github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect @@ -14,8 +20,13 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/prometheus/client_golang v1.4.1 github.com/sirupsen/logrus v1.4.2 + github.com/spf13/cobra v0.0.7 github.com/stretchr/testify v1.4.0 + github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba + github.com/swaggo/swag v1.6.5 github.com/x-cray/logrus-prefixed-formatter v0.5.2 - golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 - gopkg.in/yaml.v2 v2.2.5 + golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect + golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd + golang.org/x/tools v0.0.0-20200403190813-44a64ad78b9b // indirect + gopkg.in/yaml.v2 v2.2.8 ) diff --git a/go.sum b/go.sum index 0d1fe094..38b34283 100644 --- a/go.sum +++ b/go.sum @@ -1,38 +1,101 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= +github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w= +github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi v4.1.0+incompatible h1:ETj3cggsVIY2Xao5ExCu6YhEh5MD6JTfcBzS37R260w= +github.com/go-chi/chi v4.1.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/cors v1.0.1 h1:56TT/uWGoLWZpnMI/AwAmCneikXr5eLsiIq27wrKecw= +github.com/go-chi/cors v1.0.1/go.mod h1:K2Yje0VW/SJzxiyMYu6iPQYa7hMjQX2i/F491VChg1I= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= 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-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/jsonpointer v0.17.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/jsonreference v0.17.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/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.19.4 h1:ixzUSnHTd6hCemgtAJgluaTSGYpLNpJY4mA2DIkdOAo= +github.com/go-openapi/spec v0.19.4/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/spec v0.19.7 h1:0xWSeMd35y5avQAThZR2PkEuqSosoS5t6gDH4L8n11M= +github.com/go-openapi/spec v0.19.7/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g= github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= +github.com/go-openapi/swag v0.17.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.8 h1:vfK6jLhs7OI4tAXkvkooviaE1JEPcw3mutyegLHHjmk= +github.com/go-openapi/swag v0.19.8/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -41,23 +104,47 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jedib0t/go-pretty v4.3.0+incompatible h1:CGs8AVhEKg/n9YbUenWmNStRW2PHJzaeDodcfvRAbIo= github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/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 h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8= +github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-runewidth v0.0.8 h1:3tS41NlGYSmhhe/8fhGRzc+z3AYCw1Fe1WAyLuujKs0= @@ -68,6 +155,8 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1f github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -75,6 +164,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -82,11 +172,14 @@ github.com/onsi/gomega v1.8.1 h1:C5Dqfs/LeauYDX0jJXIe2SWmwCbGzx9yF8C8xy3Lh34= github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1 h1:FFSuS004yOQEtDdTq+TAOLP5xUq63KqAFYyOi8zA+Y8= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= @@ -94,16 +187,40 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.7 h1:FfTH+vuMXOas8jmfb5/M7dzEYx7LpcLb7a0LPe34uOU= +github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -113,23 +230,66 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14 h1:PyYN9JH5jY9j6av01SpfRMb+1DWg/i3MbGOKPxJ2wjM= +github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:gxQT6pBGRuIGunNf/+tSOB5OHvguWi8Tbt82WOkf35E= +github.com/swaggo/gin-swagger v1.2.0/go.mod h1:qlH2+W7zXGZkczuL+r2nEBR2JTT+/lX05Nn6vPhc7OI= +github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba h1:lUPlXKqgbqT2SVg2Y+eT9mu5wbqMnG+i/+Q9nK7C0Rs= +github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba/go.mod h1:O1lAbCgAAX/KZ80LM/OXwtWFI/5TvZlwxSg8Cq08PV0= +github.com/swaggo/swag v1.5.1/go.mod h1:1Bl9F/ZBpVWh22nY0zmYyASPO1lI/zIwRDrpZU+tv8Y= +github.com/swaggo/swag v1.6.3/go.mod h1:wcc83tB4Mb2aNiL/HP4MFeQdpHUrca+Rp/DRNgWAUio= +github.com/swaggo/swag v1.6.5 h1:2C+t+xyK6p1sujqncYO/VnMvPZcBJjNdKKyxbOdAW8o= +github.com/swaggo/swag v1.6.5/go.mod h1:Y7ZLSS0d0DdxhWGVhQdu+Bu1QhaF5k0RD7FKdiAykeY= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +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/codec v0.0.0-20181022190402-e5e69e061d4f/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392 h1:ACG4HJsFiNMf47Y4PeRoebLNy/2lXT9EtprMuTFWt1M= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 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= @@ -137,36 +297,64 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEha golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/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-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe h1:6fAMxZRR6sl1Uq8U61gxU+kPTs2tR8uOySCbBP7BN/M= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18 h1:xFbv3LvlvQAmbNJFCBKRv1Ccvnh9FVsW0FX2kTWWowE= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200403190813-44a64ad78b9b h1:AFZdJUT7jJYXQEC29hYH/WZkoV7+KhwxQGmdZ19yYoY= +golang.org/x/tools v0.0.0-20200403190813-44a64ad78b9b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= 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= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -174,3 +362,6 @@ gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/lists/list_cache_test.go b/lists/list_cache_test.go index 6333fa2d..2706be7d 100644 --- a/lists/list_cache_test.go +++ b/lists/list_cache_test.go @@ -8,6 +8,7 @@ import ( "os" "testing" + "github.com/go-chi/chi" "github.com/prometheus/client_golang/prometheus/testutil" "github.com/stretchr/testify/assert" ) @@ -81,7 +82,7 @@ func Test_Match_Download_No_Group(t *testing.T) { } func Test_Match_Download_WithMetrics(t *testing.T) { - metrics.Start(config.PrometheusConfig{Enable: true, Path: "/metrics"}) + metrics.Start(chi.NewRouter(), config.PrometheusConfig{Enable: true, Path: "/metrics"}) server1 := helpertest.TestServer("blocked1.com\nblocked1a.com") defer server1.Close() diff --git a/main.go b/main.go index 660818a7..ebb0ef95 100644 --- a/main.go +++ b/main.go @@ -1,127 +1,11 @@ package main import ( - "blocky/config" - "blocky/server" - "context" - "flag" - "fmt" - "net" - "net/http" + "blocky/cmd" "os" - "os/signal" - "syscall" - "time" - - prefixed "github.com/x-cray/logrus-prefixed-formatter" - - "github.com/sirupsen/logrus" - log "github.com/sirupsen/logrus" ) -//nolint:gochecknoglobals -var version = "undefined" - -//nolint:gochecknoglobals -var buildTime = "undefined" - func main() { - configPath := flag.String("config", "./config.yml", "Path to config file.") - flag.Parse() - - cfg := config.NewConfig(*configPath) - configureLog(&cfg) - - printBanner() - - configureHTTPClient(&cfg) - - signals := make(chan os.Signal) - done := make(chan bool) - - signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM) - - server, err := server.NewServer(&cfg) - if err != nil { - log.Fatal("cant start server ", err) - } - - server.Start() - - go func() { - <-signals - log.Infof("Terminating...") - server.Stop() - done <- true - }() - - <-done -} - -func configureHTTPClient(cfg *config.Config) { - if cfg.BootstrapDNS != (config.Upstream{}) { - if cfg.BootstrapDNS.Net == "tcp" || cfg.BootstrapDNS.Net == "udp" { - dns := net.JoinHostPort(cfg.BootstrapDNS.Host, fmt.Sprint(cfg.BootstrapDNS.Port)) - log.Debugf("using %s as bootstrap dns server", dns) - - r := &net.Resolver{ - PreferGo: true, - Dial: func(ctx context.Context, network, address string) (net.Conn, error) { - d := net.Dialer{ - Timeout: time.Millisecond * time.Duration(2000), - } - return d.DialContext(ctx, cfg.BootstrapDNS.Net, dns) - }} - - http.DefaultTransport = &http.Transport{ - Dial: (&net.Dialer{ - Timeout: 5 * time.Second, - Resolver: r, - }).Dial, - TLSHandshakeTimeout: 5 * time.Second, - } - } else { - log.Fatal("bootstrap dns net should be udp or tcs") - } - } -} - -func configureLog(cfg *config.Config) { - if level, err := log.ParseLevel(cfg.LogLevel); err != nil { - log.Fatalf("invalid log level %s %v", cfg.LogLevel, err) - } else { - log.SetLevel(level) - } - - logFormatter := &prefixed.TextFormatter{ - TimestampFormat: "2006-01-02 15:04:05", - FullTimestamp: true, - ForceFormatting: true, - ForceColors: true, - QuoteEmptyFields: true} - - logFormatter.SetColorScheme(&prefixed.ColorScheme{ - PrefixStyle: "blue+b", - TimestampStyle: "white+h", - }) - - logrus.SetFormatter(logFormatter) -} - -func printBanner() { - log.Info("_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/") - log.Info("_/ _/") - log.Info("_/ _/") - log.Info("_/ _/ _/ _/ _/") - log.Info("_/ _/_/_/ _/ _/_/ _/_/_/ _/ _/ _/ _/ _/") - log.Info("_/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/ _/") - log.Info("_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/") - log.Info("_/ _/_/_/ _/ _/_/ _/_/_/ _/ _/ _/_/_/ _/") - log.Info("_/ _/ _/") - log.Info("_/ _/_/ _/") - log.Info("_/ _/") - log.Info("_/ _/") - log.Infof("_/ Version: %-18s Build time: %-18s _/", version, buildTime) - log.Info("_/ _/") - log.Info("_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/") + cmd.Execute() + os.Exit(0) } diff --git a/metrics/metrics.go b/metrics/metrics.go index a09365ae..91bb4d7d 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -2,8 +2,8 @@ package metrics import ( "blocky/config" - "net/http" + "github.com/go-chi/chi" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" ) @@ -18,13 +18,13 @@ func RegisterMetric(c prometheus.Collector) { _ = reg.Register(c) } -func Start(cfg config.PrometheusConfig) { +func Start(router *chi.Mux, cfg config.PrometheusConfig) { enabled = cfg.Enable if cfg.Enable { reg.MustRegister(prometheus.NewProcessCollector(prometheus.ProcessCollectorOpts{})) reg.MustRegister(prometheus.NewGoCollector()) - http.Handle(cfg.Path, promhttp.InstrumentMetricHandler(reg, + router.Handle(cfg.Path, promhttp.InstrumentMetricHandler(reg, promhttp.HandlerFor(reg, promhttp.HandlerOpts{}))) } } diff --git a/resolver/blocking_resolver.go b/resolver/blocking_resolver.go index 0959f6db..fa4e13cc 100644 --- a/resolver/blocking_resolver.go +++ b/resolver/blocking_resolver.go @@ -1,17 +1,24 @@ package resolver import ( + "blocky/api" "blocky/config" "blocky/lists" + "blocky/metrics" "blocky/util" + "encoding/json" "fmt" "net" + "net/http" "reflect" "sort" "strings" + "time" + "github.com/go-chi/chi" "github.com/miekg/dns" - "github.com/sirupsen/logrus" + "github.com/prometheus/client_golang/prometheus" + log "github.com/sirupsen/logrus" ) const ( @@ -45,11 +52,48 @@ func resolveBlockType(cfg config.BlockingConfig) BlockType { return NxDomain } - logrus.Fatalf("unknown blockType, please use one of: ZeroIP, NxDomain") + log.Fatalf("unknown blockType, please use one of: ZeroIP, NxDomain") return ZeroIP } +type status struct { + enabled bool + enabledGauge prometheus.Gauge + enableTimer *time.Timer + disableEnd time.Time +} + +func (s *status) enableBlocking() { + s.enableTimer.Stop() + s.enabled = true + + if metrics.IsEnabled() { + s.enabledGauge.Set(1) + } +} + +func (s *status) disableBlocking(duration time.Duration) { + s.enableTimer.Stop() + s.enabled = false + + if metrics.IsEnabled() { + s.enabledGauge.Set(0) + } + + s.disableEnd = time.Now().Add(duration) + + if duration == 0 { + log.Info("disable blocking") + } else { + log.Infof("disable blocking for %s", duration) + s.enableTimer = time.AfterFunc(duration, func() { + s.enableBlocking() + log.Info("blocking enabled again") + }) + } +} + // checks request's question (domain name) against black and white lists type BlockingResolver struct { NextResolver @@ -58,21 +102,110 @@ type BlockingResolver struct { clientGroupsBlock map[string][]string blockType BlockType whitelistOnlyGroups []string + status status } -func NewBlockingResolver(cfg config.BlockingConfig) ChainedResolver { +func NewBlockingResolver(router *chi.Mux, cfg config.BlockingConfig) ChainedResolver { bt := resolveBlockType(cfg) blacklistMatcher := lists.NewListCache(lists.BLACKLIST, cfg.BlackLists, cfg.RefreshPeriod) whitelistMatcher := lists.NewListCache(lists.WHITELIST, cfg.WhiteLists, cfg.RefreshPeriod) whitelistOnlyGroups := determineWhitelistOnlyGroups(&cfg) - return &BlockingResolver{ + var enabledGauge prometheus.Gauge + + if metrics.IsEnabled() { + enabledGauge = prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "blocky_blocking_enabled", + Help: "Blockings status", + }) + enabledGauge.Set(1) + + metrics.RegisterMetric(enabledGauge) + } + + res := &BlockingResolver{ blockType: bt, clientGroupsBlock: cfg.ClientGroupsBlock, blacklistMatcher: blacklistMatcher, whitelistMatcher: whitelistMatcher, whitelistOnlyGroups: whitelistOnlyGroups, + status: status{ + enabledGauge: enabledGauge, + enabled: true, + enableTimer: time.NewTimer(0), + }, } + + // register API endpoints + router.Get(api.BlockingEnablePath, res.apiBlockingEnable) + router.Get(api.BlockingDisablePath, res.apiBlockingDisable) + router.Get(api.BlockingStatusPath, res.apiBlockingStatus) + + return res +} + +// apiBlockingEnable is the http endpoint to enable the blocking status +// @Summary Enable blocking +// @Description enable the blocking status +// @Tags blocking +// @Success 200 "Blocking is enabled" +// @Router /blocking/enable [get] +func (r *BlockingResolver) apiBlockingEnable(_ http.ResponseWriter, _ *http.Request) { + log.Info("enabling blocking...") + r.status.enableBlocking() +} + +// apiBlockingStatus is the http endpoint to get current blocking status +// @Summary Blocking status +// @Description get current blocking status +// @Tags blocking +// @Produce json +// @Success 200 {object} api.BlockingStatus "Returns current blocking status" +// @Router /blocking/status [get] +func (r *BlockingResolver) apiBlockingStatus(rw http.ResponseWriter, _ *http.Request) { + var autoEnableDuration time.Duration + if !r.status.enabled && r.status.disableEnd.After(time.Now()) { + autoEnableDuration = time.Until(r.status.disableEnd) + } + + response, _ := json.Marshal(api.BlockingStatus{ + Enabled: r.status.enabled, + AutoEnableInSec: uint(autoEnableDuration.Seconds()), + }) + _, err := rw.Write(response) + + if err != nil { + log.Fatal("unable to write response ", err) + } +} + +// apiBlockingDisable is the http endpoint to disable the blocking status +// @Summary Disable blocking +// @Description disable the blocking status +// @Tags blocking +// @Param duration query string false "duration of blocking (Example: 300s, 5m, 1h, 5m30s)" Format(duration) +// @Success 200 "Blocking is disabled" +// @Failure 400 "Wrong duration format" +// @Router /blocking/disable [get] +func (r *BlockingResolver) apiBlockingDisable(rw http.ResponseWriter, req *http.Request) { + var ( + duration time.Duration + err error + ) + + // parse duration from query parameter + durationParam := req.URL.Query().Get("duration") + if len(durationParam) > 0 { + duration, err = time.ParseDuration(durationParam) + if err != nil { + log.Errorf("wrong duration format '%s'", durationParam) + rw.WriteHeader(http.StatusBadRequest) + + return + } + } + + r.status.disableBlocking(duration) } // returns groups, which have only whitelist entries @@ -91,7 +224,7 @@ func determineWhitelistOnlyGroups(cfg *config.BlockingConfig) (result []string) } // sets answer and/or return code for DNS response, if request should be blocked -func (r *BlockingResolver) handleBlocked(logger *logrus.Entry, +func (r *BlockingResolver) handleBlocked(logger *log.Entry, request *Request, question dns.Question, reason string) (*Response, error) { response := new(dns.Msg) response.SetReply(request.Req) @@ -142,9 +275,9 @@ func (r *BlockingResolver) Configuration() (result []string) { func (r *BlockingResolver) Resolve(request *Request) (*Response, error) { logger := withPrefix(request.Log, "blacklist_resolver") groupsToCheck := r.groupsToCheckForClient(request) - whitelistOnlyAlowed := reflect.DeepEqual(groupsToCheck, r.whitelistOnlyGroups) + whitelistOnlyAllowed := reflect.DeepEqual(groupsToCheck, r.whitelistOnlyGroups) - if len(groupsToCheck) > 0 { + if r.status.enabled && len(groupsToCheck) > 0 { logger.WithField("groupsToCheck", strings.Join(groupsToCheck, "; ")).Debug("checking groups for request") for _, question := range request.Req.Question { @@ -156,7 +289,7 @@ func (r *BlockingResolver) Resolve(request *Request) (*Response, error) { return r.next.Resolve(request) } - if whitelistOnlyAlowed { + if whitelistOnlyAllowed { return r.handleBlocked(logger, request, question, "BLOCKED (WHITELIST ONLY85.100.115.92)") } @@ -168,7 +301,7 @@ func (r *BlockingResolver) Resolve(request *Request) (*Response, error) { respFromNext, err := r.next.Resolve(request) - if err == nil && len(groupsToCheck) > 0 && respFromNext.Res != nil { + if err == nil && r.status.enabled && len(groupsToCheck) > 0 && respFromNext.Res != nil { for _, rr := range respFromNext.Res.Answer { entryToCheck, tName := extractEntryToCheckFromResponse(rr) if len(entryToCheck) > 0 { diff --git a/resolver/blocking_resolver_test.go b/resolver/blocking_resolver_test.go index 24812877..6ce092b6 100644 --- a/resolver/blocking_resolver_test.go +++ b/resolver/blocking_resolver_test.go @@ -1,12 +1,18 @@ package resolver import ( + "blocky/api" "blocky/config" "blocky/helpertest" "blocky/util" + "encoding/json" "net" + "net/http" + "net/http/httptest" "testing" + "time" + "github.com/go-chi/chi" "github.com/miekg/dns" "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" @@ -17,7 +23,7 @@ func Test_Resolve_ClientName_IpZero(t *testing.T) { file := helpertest.TempFile("blocked1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "client1": {"gr1"}, @@ -54,7 +60,7 @@ func Test_Resolve_ClientIp_A_IpZero(t *testing.T) { file := helpertest.TempFile("blocked1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "192.168.178.55": {"gr1"}, @@ -81,7 +87,7 @@ func Test_Resolve_ClientWith2Names_A_IpZero(t *testing.T) { file2 := helpertest.TempFile("blocked2.com") defer file2.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{ "gr1": {file1.Name()}, "gr2": {file2.Name()}, @@ -121,7 +127,7 @@ func Test_Resolve_Default_A_IpZero(t *testing.T) { file := helpertest.TempFile("blocked1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "default": {"gr1"}, @@ -140,11 +146,191 @@ func Test_Resolve_Default_A_IpZero(t *testing.T) { assert.Equal(t, "blocked1.com. 21600 IN A 0.0.0.0", resp.Res.Answer[0].String()) } +func Test_Disable_Blocking(t *testing.T) { + file := helpertest.TempFile("blocked1.com") + defer file.Close() + + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ + BlackLists: map[string][]string{"gr1": {file.Name()}}, + ClientGroupsBlock: map[string][]string{ + "default": {"gr1"}, + }, + }).(*BlockingResolver) + + m := &resolverMock{} + m.On("Resolve", mock.Anything).Return(new(Response), nil) + sut.Next(m) + + req := util.NewMsgWithQuestion("blocked1.com.", dns.TypeA) + resp, err := sut.Resolve(&Request{ + Req: req, + ClientNames: []string{"unknown"}, + ClientIP: net.ParseIP("192.168.178.1"), + Log: logrus.NewEntry(logrus.New()), + }) + assert.NoError(t, err) + assert.Equal(t, dns.RcodeSuccess, resp.Res.Rcode) + assert.Equal(t, "blocked1.com. 21600 IN A 0.0.0.0", resp.Res.Answer[0].String()) + m.AssertNumberOfCalls(t, "Resolve", 0) + + r, _ := http.NewRequest("GET", "/api/blocking/disable", nil) + + rr := httptest.NewRecorder() + handler := http.HandlerFunc(sut.apiBlockingDisable) + + handler.ServeHTTP(rr, r) + + assert.Equal(t, http.StatusOK, rr.Code) + + // now is blocking disabled, query the url again + req = util.NewMsgWithQuestion("blocked1.com.", dns.TypeA) + _, err = sut.Resolve(&Request{ + Req: req, + ClientNames: []string{"unknown"}, + ClientIP: net.ParseIP("192.168.178.1"), + Log: logrus.NewEntry(logrus.New()), + }) + assert.NoError(t, err) + m.AssertExpectations(t) + m.AssertNumberOfCalls(t, "Resolve", 1) +} + +func Test_Disable_BlockingWithWrongParam(t *testing.T) { + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{}).(*BlockingResolver) + + r, _ := http.NewRequest("GET", "/api/blocking/disable?duration=xyz", nil) + + rr := httptest.NewRecorder() + handler := http.HandlerFunc(sut.apiBlockingDisable) + + handler.ServeHTTP(rr, r) + + assert.Equal(t, http.StatusBadRequest, rr.Code) +} + +func Test_Status_Blocking(t *testing.T) { + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{}).(*BlockingResolver) + + // enable blocking + r, _ := http.NewRequest("GET", "/api/blocking/enable", nil) + + rr := httptest.NewRecorder() + handler := http.HandlerFunc(sut.apiBlockingEnable) + + handler.ServeHTTP(rr, r) + assert.Equal(t, http.StatusOK, rr.Code) + + // query status + r, _ = http.NewRequest("GET", "/api/blocking/status", nil) + + rr = httptest.NewRecorder() + handler = sut.apiBlockingStatus + + handler.ServeHTTP(rr, r) + assert.Equal(t, http.StatusOK, rr.Code) + + var result api.BlockingStatus + err := json.NewDecoder(rr.Body).Decode(&result) + assert.NoError(t, err) + + assert.True(t, result.Enabled) + + // now disable blocking + + r, _ = http.NewRequest("GET", "/api/blocking/disable", nil) + + rr = httptest.NewRecorder() + handler = sut.apiBlockingDisable + + handler.ServeHTTP(rr, r) + assert.Equal(t, http.StatusOK, rr.Code) + + // now query status again + + r, _ = http.NewRequest("GET", "/api/blocking/status", nil) + + rr = httptest.NewRecorder() + handler = sut.apiBlockingStatus + + handler.ServeHTTP(rr, r) + assert.Equal(t, http.StatusOK, rr.Code) + + err = json.NewDecoder(rr.Body).Decode(&result) + assert.NoError(t, err) + + assert.False(t, result.Enabled) +} + +//nolint:funlen +func Test_Disable_BlockingWithDuration(t *testing.T) { + file := helpertest.TempFile("blocked1.com") + defer file.Close() + + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ + BlackLists: map[string][]string{"gr1": {file.Name()}}, + ClientGroupsBlock: map[string][]string{ + "default": {"gr1"}, + }, + }).(*BlockingResolver) + + m := &resolverMock{} + m.On("Resolve", mock.Anything).Return(new(Response), nil) + sut.Next(m) + + req := util.NewMsgWithQuestion("blocked1.com.", dns.TypeA) + resp, err := sut.Resolve(&Request{ + Req: req, + ClientNames: []string{"unknown"}, + ClientIP: net.ParseIP("192.168.178.1"), + Log: logrus.NewEntry(logrus.New()), + }) + assert.NoError(t, err) + assert.Equal(t, dns.RcodeSuccess, resp.Res.Rcode) + assert.Equal(t, "blocked1.com. 21600 IN A 0.0.0.0", resp.Res.Answer[0].String()) + m.AssertNumberOfCalls(t, "Resolve", 0) + + // disable for 0.5 sec + r, _ := http.NewRequest("GET", "/api/blocking/disable?duration=500ms", nil) + + rr := httptest.NewRecorder() + handler := http.HandlerFunc(sut.apiBlockingDisable) + + handler.ServeHTTP(rr, r) + + assert.Equal(t, http.StatusOK, rr.Code) + + // now is blocking disabled, query the url again + req = util.NewMsgWithQuestion("blocked1.com.", dns.TypeA) + _, err = sut.Resolve(&Request{ + Req: req, + ClientNames: []string{"unknown"}, + ClientIP: net.ParseIP("192.168.178.1"), + Log: logrus.NewEntry(logrus.New()), + }) + assert.NoError(t, err) + m.AssertExpectations(t) + m.AssertNumberOfCalls(t, "Resolve", 1) + + // wait 1 sec + time.Sleep(time.Second) + + req = util.NewMsgWithQuestion("blocked1.com.", dns.TypeA) + resp, err = sut.Resolve(&Request{ + Req: req, + ClientNames: []string{"unknown"}, + ClientIP: net.ParseIP("192.168.178.1"), + Log: logrus.NewEntry(logrus.New()), + }) + assert.NoError(t, err) + assert.Equal(t, dns.RcodeSuccess, resp.Res.Rcode) + assert.Equal(t, "blocked1.com. 21600 IN A 0.0.0.0", resp.Res.Answer[0].String()) +} + func Test_Resolve_Default_Block_With_Whitelist(t *testing.T) { file := helpertest.TempFile("blocked1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, WhiteLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ @@ -171,7 +357,7 @@ func Test_Resolve_Whitelist_Only(t *testing.T) { file := helpertest.TempFile("whitelisted.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ WhiteLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "default": {"gr1"}, @@ -229,7 +415,7 @@ func Test_Resolve_Default_A_NxRecord(t *testing.T) { file := helpertest.TempFile("BLOCKED1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "default": {"gr1"}, @@ -252,7 +438,7 @@ func Test_Resolve_Default_BlockIP_A(t *testing.T) { file := helpertest.TempFile("123.145.123.145") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "default": {"gr1"}, @@ -281,7 +467,7 @@ func Test_Resolve_Default_BlockIP_AAAA(t *testing.T) { file := helpertest.TempFile("2001:db8:85a3:08d3::370:7344") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "default": {"gr1"}, @@ -311,7 +497,7 @@ func Test_Resolve_Default_BlockIP_A_With_Whitelist(t *testing.T) { file := helpertest.TempFile("123.145.123.145") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, WhiteLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ @@ -340,7 +526,7 @@ func Test_Resolve_Default_Block_CNAME(t *testing.T) { file := helpertest.TempFile("baddomain.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "default": {"gr1"}, @@ -379,7 +565,7 @@ func Test_Resolve_NoBlock(t *testing.T) { file := helpertest.TempFile("blocked1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ "client1": {"gr1"}, @@ -405,7 +591,7 @@ func Test_Configuration_BlockingResolver(t *testing.T) { file := helpertest.TempFile("blocked1.com") defer file.Close() - sut := NewBlockingResolver(config.BlockingConfig{ + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlackLists: map[string][]string{"gr1": {file.Name()}}, WhiteLists: map[string][]string{"gr1": {file.Name()}}, ClientGroupsBlock: map[string][]string{ @@ -424,7 +610,7 @@ func Test_Resolve_WrongBlockType(t *testing.T) { logrus.StandardLogger().ExitFunc = func(int) { fatal = true } - _ = NewBlockingResolver(config.BlockingConfig{ + _ = NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{ BlockType: "wrong", }) @@ -432,7 +618,7 @@ func Test_Resolve_WrongBlockType(t *testing.T) { } func Test_Resolve_NoLists(t *testing.T) { - sut := NewBlockingResolver(config.BlockingConfig{}) + sut := NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{}) m := &resolverMock{} m.On("Resolve", mock.Anything).Return(new(Response), nil) sut.Next(m) diff --git a/resolver/metrics_resolver.go b/resolver/metrics_resolver.go index ba995e6c..a901028a 100644 --- a/resolver/metrics_resolver.go +++ b/resolver/metrics_resolver.go @@ -38,7 +38,7 @@ func (m *MetricsResolver) Resolve(request *Request) (*Response, error) { "reason": response.Reason, "response_code": dns.RcodeToString[response.Res.Rcode], "response_type": response.rType.String()}).Inc() - reqDurationMs := float64(time.Since(request.RequestTs).Milliseconds()) + reqDurationMs := float64(time.Since(request.RequestTS).Milliseconds()) m.durationHistogram.WithLabelValues(response.rType.String()).Observe(reqDurationMs) } } diff --git a/resolver/mocks.go b/resolver/mocks.go index be5f53fc..3a509fff 100644 --- a/resolver/mocks.go +++ b/resolver/mocks.go @@ -2,7 +2,6 @@ package resolver import ( "blocky/config" - "fmt" "io/ioutil" "net" "net/http" @@ -38,8 +37,6 @@ func (r *resolverMock) Resolve(req *Request) (*Response, error) { func TestDOHUpstream(fn func(request *dns.Msg) (response *dns.Msg), reqFn ...func(w http.ResponseWriter)) config.Upstream { server := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - fmt.Printf("here") - body, err := ioutil.ReadAll(r.Body) if err != nil { log.Fatal("can't read request: ", err) diff --git a/resolver/resolver.go b/resolver/resolver.go index 02e51661..b73d0f75 100644 --- a/resolver/resolver.go +++ b/resolver/resolver.go @@ -15,7 +15,7 @@ type Request struct { ClientNames []string Req *dns.Msg Log *logrus.Entry - RequestTs time.Time + RequestTS time.Time } type ResponseType int diff --git a/resolver/resolver_test.go b/resolver/resolver_test.go index 16414c14..34a97c63 100644 --- a/resolver/resolver_test.go +++ b/resolver/resolver_test.go @@ -4,11 +4,13 @@ import ( "blocky/config" "testing" + "github.com/go-chi/chi" "github.com/stretchr/testify/assert" ) func Test_Chain(t *testing.T) { - ch := Chain(NewBlockingResolver(config.BlockingConfig{}), NewClientNamesResolver(config.ClientLookupConfig{})) + ch := Chain(NewBlockingResolver(chi.NewRouter(), + config.BlockingConfig{}), NewClientNamesResolver(config.ClientLookupConfig{})) c, ok := ch.(ChainedResolver) assert.True(t, ok) @@ -16,6 +18,6 @@ func Test_Chain(t *testing.T) { assert.NotNil(t, next) } func Test_Name(t *testing.T) { - name := Name(NewBlockingResolver(config.BlockingConfig{})) + name := Name(NewBlockingResolver(chi.NewRouter(), config.BlockingConfig{})) assert.Equal(t, "BlockingResolver", name) } diff --git a/resolver/upstream_resolver_test.go b/resolver/upstream_resolver_test.go index 18254b45..d7267b5e 100644 --- a/resolver/upstream_resolver_test.go +++ b/resolver/upstream_resolver_test.go @@ -4,7 +4,6 @@ import ( "blocky/config" "blocky/util" "crypto/tls" - "fmt" "net/http" "strings" "testing" @@ -186,7 +185,6 @@ func Test_Resolve_UpstreamTimeout(t *testing.T) { counter++ // timeout on first x attempts if counter <= attemptsWithTimeout { - fmt.Print("timeout") time.Sleep(110 * time.Millisecond) } response, err := util.NewMsgWithAnswer("example.com 123 IN A 123.124.122.122") diff --git a/server/server.go b/server/server.go index cfbb0e51..d8881f85 100644 --- a/server/server.go +++ b/server/server.go @@ -2,25 +2,30 @@ package server import ( "blocky/config" + "blocky/docs" "blocky/metrics" "blocky/resolver" + "blocky/web" + "html/template" "net/http" + "syscall" - // nolint - _ "net/http/pprof" "os" "os/signal" "runtime" "runtime/debug" - "syscall" "time" "blocky/util" "fmt" "net" + "github.com/go-chi/chi" + "github.com/go-chi/chi/middleware" + "github.com/go-chi/cors" "github.com/miekg/dns" "github.com/sirupsen/logrus" + httpSwagger "github.com/swaggo/http-swagger" ) type Server struct { @@ -29,6 +34,7 @@ type Server struct { httpListener net.Listener queryResolver resolver.Resolver cfg *config.Config + httpMux *chi.Mux } func logger() *logrus.Entry { @@ -57,15 +63,15 @@ func NewServer(cfg *config.Config) (*Server, error) { var httpListener net.Listener + router := createRouter(cfg) + if cfg.HTTPPort > 0 { var err error - httpListener, err = net.Listen("tcp", fmt.Sprintf(":%d", cfg.HTTPPort)) - - if err != nil { + if httpListener, err = net.Listen("tcp", fmt.Sprintf(":%d", cfg.HTTPPort)); err != nil { logger().Fatalf("start http listener on port %d failed: %v", cfg.HTTPPort, err) } - metrics.Start(cfg.Prometheus) + metrics.Start(router, cfg.Prometheus) } queryResolver := resolver.Chain( @@ -75,7 +81,7 @@ func NewServer(cfg *config.Config) (*Server, error) { resolver.NewMetricsResolver(cfg.Prometheus), resolver.NewConditionalUpstreamResolver(cfg.Conditional), resolver.NewCustomDNSResolver(cfg.CustomDNS), - resolver.NewBlockingResolver(cfg.Blocking), + resolver.NewBlockingResolver(router, cfg.Blocking), resolver.NewCachingResolver(cfg.Caching), resolver.NewParallelBestResolver(cfg.Upstream), ) @@ -86,18 +92,82 @@ func NewServer(cfg *config.Config) (*Server, error) { queryResolver: queryResolver, cfg: cfg, httpListener: httpListener, + httpMux: router, } server.printConfiguration() - udpHandler.HandleFunc(".", server.OnRequest) - udpHandler.HandleFunc("healthcheck.blocky", server.OnHealthCheck) - tcpHandler.HandleFunc(".", server.OnRequest) - tcpHandler.HandleFunc("healthcheck.blocky", server.OnHealthCheck) + server.registerDNSHandlers(udpHandler) + server.registerDNSHandlers(tcpHandler) return &server, nil } +func (s *Server) registerDNSHandlers(handler *dns.ServeMux) { + handler.HandleFunc(".", s.OnRequest) + handler.HandleFunc("healthcheck.blocky", s.OnHealthCheck) +} + +func createRouter(cfg *config.Config) *chi.Mux { + router := chi.NewRouter() + + cors := cors.New(cors.Options{ + AllowedOrigins: []string{"*"}, + AllowedMethods: []string{"GET", "POST"}, + AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token"}, + ExposedHeaders: []string{"Link"}, + AllowCredentials: true, + MaxAge: 300, + }) + router.Use(cors.Handler) + + router.Mount("/debug", middleware.Profiler()) + + router.Get("/swagger/*", func(writer http.ResponseWriter, request *http.Request) { + // set swagger host with host from request + docs.SwaggerInfo.Host = request.Host + swaggerHandler := httpSwagger.Handler( + httpSwagger.URL(fmt.Sprintf("http://%s/swagger/doc.json", request.Host)), + ) + swaggerHandler.ServeHTTP(writer, request) + }) + + router.Get("/", func(writer http.ResponseWriter, request *http.Request) { + t := template.New("index") + _, _ = t.Parse(web.IndexTmpl) + + type HandlerLink struct { + URL string + Title string + } + var links = []HandlerLink{ + { + URL: fmt.Sprintf("http://%s/swagger/", request.Host), + Title: "Swagger Rest API Documentation", + }, + { + URL: fmt.Sprintf("http://%s/debug/", request.Host), + Title: "Go Profiler", + }, + } + + if cfg.Prometheus.Enable { + links = append(links, HandlerLink{ + URL: fmt.Sprintf("http://%s%s", request.Host, cfg.Prometheus.Path), + Title: "Prometheus endpoint", + }) + } + + err := t.Execute(writer, links) + if err != nil { + logrus.Error("can't write index template: ", err) + writer.WriteHeader(http.StatusInternalServerError) + } + }) + + return router +} + func (s *Server) printConfiguration() { logger().Info("current configuration:") @@ -161,7 +231,7 @@ func (s *Server) Start() { if s.httpListener != nil { logger().Infof("http server is up and running on port %d", s.cfg.HTTPPort) - if err := http.Serve(s.httpListener, nil); err != nil { + if err := http.Serve(s.httpListener, s.httpMux); err != nil { logger().Fatalf("start http listener failed: %v", err) } } @@ -197,7 +267,7 @@ func (s *Server) OnRequest(w dns.ResponseWriter, request *dns.Msg) { r := &resolver.Request{ ClientIP: clientIP, Req: request, - RequestTs: time.Now(), + RequestTS: time.Now(), Log: logrus.WithFields(logrus.Fields{ "question": util.QuestionToString(request.Question), "client_ip": clientIP, diff --git a/server/server_test.go b/server/server_test.go index 225b5714..dcabd3e1 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -348,7 +348,7 @@ func Test_Stop(t *testing.T) { func BenchmarkServerExternalResolver(b *testing.B) { upstreamExternal := resolver.TestUDPUpstream(func(request *dns.Msg) (response *dns.Msg) { - msg, _ := util.NewMsgWithAnswer(fmt.Sprintf("example.com IN A 123.124.122.122")) + msg, _ := util.NewMsgWithAnswer("example.com IN A 123.124.122.122") return msg }) diff --git a/web/index.go b/web/index.go new file mode 100644 index 00000000..c7ab90cc --- /dev/null +++ b/web/index.go @@ -0,0 +1,16 @@ +package web + +const IndexTmpl = ` + + + blocky + + +

blocky

+ + + `