Refactor with OpenPitrix
Signed-off-by: Zhengyi Lai <zheng1@yunify.com> (+2 squashed commits)
This commit is contained in:
3
Makefile
3
Makefile
@@ -69,6 +69,9 @@ deploy: manifests
|
||||
generate:
|
||||
go generate ./pkg/... ./cmd/...
|
||||
|
||||
mockgen:
|
||||
mockgen -package=openpitrix -source=pkg/simple/client/openpitrix/openpitrix.go -destination=pkg/simple/client/openpitrix/mock.go
|
||||
|
||||
deepcopy:
|
||||
GO111MODULE=on go install -mod=vendor k8s.io/code-generator/cmd/deepcopy-gen
|
||||
${GOPATH}/bin/deepcopy-gen -i kubesphere.io/kubesphere/pkg/apis/... -h ./hack/boilerplate.go.txt -O zz_generated.deepcopy
|
||||
|
||||
57
go.mod
57
go.mod
@@ -95,7 +95,7 @@ require (
|
||||
k8s.io/klog v1.0.0
|
||||
k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a
|
||||
k8s.io/kubectl v0.17.3
|
||||
openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797
|
||||
sigs.k8s.io/controller-runtime v0.5.0
|
||||
sigs.k8s.io/controller-tools v0.2.4
|
||||
sigs.k8s.io/kubefed v0.2.0-alpha.1
|
||||
@@ -114,13 +114,20 @@ replace (
|
||||
github.com/Azure/go-autorest/tracing => github.com/Azure/go-autorest/tracing v0.5.0
|
||||
github.com/BurntSushi/toml => github.com/BurntSushi/toml v0.3.1
|
||||
github.com/MakeNowJust/heredoc => github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd
|
||||
github.com/Masterminds/goutils => github.com/Masterminds/goutils v1.1.0
|
||||
github.com/Masterminds/semver => github.com/Masterminds/semver v1.5.0
|
||||
github.com/Masterminds/semver/v3 => github.com/Masterminds/semver/v3 v3.0.1
|
||||
github.com/Masterminds/sprig/v3 => github.com/Masterminds/sprig/v3 v3.0.0
|
||||
github.com/Masterminds/vcs => github.com/Masterminds/vcs v1.13.0
|
||||
github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.4.12
|
||||
github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.8.6
|
||||
github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
||||
github.com/Nvveen/Gotty => github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5
|
||||
github.com/OneOfOne/xxhash => github.com/OneOfOne/xxhash v1.2.2
|
||||
github.com/PuerkitoBio/goquery => github.com/PuerkitoBio/goquery v1.5.0
|
||||
github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.1
|
||||
github.com/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
|
||||
github.com/Shopify/logrus-bugsnag => github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d
|
||||
github.com/StackExchange/wmi => github.com/StackExchange/wmi v0.0.0-20170410192909-ea383cf3ba6e
|
||||
github.com/alcortesm/tgz => github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7
|
||||
github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc
|
||||
@@ -136,11 +143,17 @@ replace (
|
||||
github.com/bitly/go-simplejson => github.com/bitly/go-simplejson v0.5.0
|
||||
github.com/blang/semver => github.com/blang/semver v3.5.0+incompatible
|
||||
github.com/bmizerany/assert => github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
|
||||
github.com/bshuster-repo/logrus-logstash-hook => github.com/bshuster-repo/logrus-logstash-hook v0.4.1
|
||||
github.com/bugsnag/bugsnag-go => github.com/bugsnag/bugsnag-go v1.5.0
|
||||
github.com/bugsnag/panicwrap => github.com/bugsnag/panicwrap v1.2.0
|
||||
github.com/cespare/xxhash => github.com/cespare/xxhash v1.1.0
|
||||
github.com/chai2010/gettext-go => github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5
|
||||
github.com/chai2010/jsonmap => github.com/chai2010/jsonmap v1.0.0
|
||||
github.com/client9/misspell => github.com/client9/misspell v0.3.4
|
||||
github.com/cockroachdb/datadriven => github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa
|
||||
github.com/container-storage-interface/spec => github.com/container-storage-interface/spec v1.2.0
|
||||
github.com/containerd/containerd => github.com/containerd/containerd v1.3.0
|
||||
github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20181203112020-004b46473808
|
||||
github.com/coreos/bbolt => github.com/coreos/bbolt v1.3.3
|
||||
github.com/coreos/etcd => github.com/coreos/etcd v3.3.17+incompatible
|
||||
github.com/coreos/go-oidc => github.com/coreos/go-oidc v2.1.0+incompatible
|
||||
@@ -149,15 +162,22 @@ replace (
|
||||
github.com/coreos/pkg => github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f
|
||||
github.com/cpuguy83/go-md2man => github.com/cpuguy83/go-md2man v1.0.10
|
||||
github.com/creack/pty => github.com/creack/pty v1.1.7
|
||||
github.com/cyphar/filepath-securejoin => github.com/cyphar/filepath-securejoin v0.2.2
|
||||
github.com/davecgh/go-spew => github.com/davecgh/go-spew v1.1.1
|
||||
github.com/daviddengcn/go-colortext => github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd
|
||||
github.com/deckarep/golang-set => github.com/deckarep/golang-set v1.7.1
|
||||
github.com/deislabs/oras => github.com/deislabs/oras v0.7.0
|
||||
github.com/denisenkom/go-mssqldb => github.com/denisenkom/go-mssqldb v0.0.0-20190204142019-df6d76eb9289
|
||||
github.com/dgrijalva/jwt-go => github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||
github.com/disintegration/imaging => github.com/disintegration/imaging v1.6.1
|
||||
github.com/docker/cli => github.com/docker/cli v0.0.0-20190506213505-d88565df0c2d
|
||||
github.com/docker/distribution => github.com/docker/distribution v2.7.1+incompatible
|
||||
github.com/docker/docker => github.com/docker/engine v1.4.2-0.20190822205725-ed20165a37b4
|
||||
github.com/docker/docker-credential-helpers => github.com/docker/docker-credential-helpers v0.6.1
|
||||
github.com/docker/go-connections => github.com/docker/go-connections v0.3.0
|
||||
github.com/docker/go-metrics => github.com/docker/go-metrics v0.0.0-20181218153428-b84716841b82
|
||||
github.com/docker/go-units => github.com/docker/go-units v0.3.3
|
||||
github.com/docker/libtrust => github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7
|
||||
github.com/docker/spdystream => github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c
|
||||
github.com/docopt/docopt-go => github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
|
||||
github.com/dustin/go-humanize => github.com/dustin/go-humanize v1.0.0
|
||||
@@ -177,7 +197,10 @@ replace (
|
||||
github.com/fatih/structs => github.com/fatih/structs v1.1.0
|
||||
github.com/flynn/go-shlex => github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568
|
||||
github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify v1.4.7
|
||||
github.com/garyburd/redigo => github.com/garyburd/redigo v1.6.0
|
||||
github.com/ghodss/yaml => github.com/ghodss/yaml v1.0.0
|
||||
github.com/gin-contrib/sse => github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3
|
||||
github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.4.0
|
||||
github.com/gliderlabs/ssh => github.com/gliderlabs/ssh v0.1.1
|
||||
github.com/globalsign/mgo => github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8
|
||||
github.com/go-kit/kit => github.com/go-kit/kit v0.8.0
|
||||
@@ -204,6 +227,7 @@ replace (
|
||||
github.com/gobuffalo/flect => github.com/gobuffalo/flect v0.1.5
|
||||
github.com/gobwas/glob => github.com/gobwas/glob v0.2.3
|
||||
github.com/gocraft/dbr => github.com/gocraft/dbr v0.0.0-20180507214907-a0fd650918f6
|
||||
github.com/gofrs/flock => github.com/gofrs/flock v0.7.1
|
||||
github.com/gofrs/uuid => github.com/gofrs/uuid v3.2.0+incompatible
|
||||
github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.0
|
||||
github.com/golang/example => github.com/golang/example v0.0.0-20170904185048-46695d81d1fa
|
||||
@@ -226,8 +250,10 @@ replace (
|
||||
github.com/googleapis/gax-go/v2 => github.com/googleapis/gax-go/v2 v2.0.4
|
||||
github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.3.1
|
||||
github.com/gophercloud/gophercloud => github.com/gophercloud/gophercloud v0.3.0
|
||||
github.com/gorilla/handlers => github.com/gorilla/handlers v1.4.0
|
||||
github.com/gorilla/mux => github.com/gorilla/mux v1.7.1
|
||||
github.com/gorilla/websocket => github.com/gorilla/websocket v1.4.0
|
||||
github.com/gosuri/uitable => github.com/gosuri/uitable v0.0.1
|
||||
github.com/gregjones/httpcache => github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7
|
||||
github.com/grpc-ecosystem/go-grpc-middleware => github.com/grpc-ecosystem/go-grpc-middleware v1.0.0
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus => github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
|
||||
@@ -236,6 +262,7 @@ replace (
|
||||
github.com/hashicorp/golang-lru => github.com/hashicorp/golang-lru v0.5.3
|
||||
github.com/hashicorp/hcl => github.com/hashicorp/hcl v1.0.0
|
||||
github.com/hpcloud/tail => github.com/hpcloud/tail v1.0.0
|
||||
github.com/huandu/xstrings => github.com/huandu/xstrings v1.2.0
|
||||
github.com/imdario/mergo => github.com/imdario/mergo v0.3.7
|
||||
github.com/inconshreveable/mousetrap => github.com/inconshreveable/mousetrap v1.0.0
|
||||
github.com/jbenet/go-context => github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
|
||||
@@ -275,11 +302,15 @@ replace (
|
||||
github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.1.2
|
||||
github.com/mattn/go-isatty => github.com/mattn/go-isatty v0.0.8
|
||||
github.com/mattn/go-runewidth => github.com/mattn/go-runewidth v0.0.0-20181025052659-b20a3daf6a39
|
||||
github.com/mattn/go-shellwords => github.com/mattn/go-shellwords v1.0.5
|
||||
github.com/mattn/go-sqlite3 => github.com/mattn/go-sqlite3 v1.11.0
|
||||
github.com/matttproud/golang_protobuf_extensions => github.com/matttproud/golang_protobuf_extensions v1.0.1
|
||||
github.com/miekg/dns => github.com/miekg/dns v0.0.0-20181005163659-0d29b283ac0f
|
||||
github.com/mitchellh/copystructure => github.com/mitchellh/copystructure v1.0.0
|
||||
github.com/mitchellh/go-homedir => github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/mitchellh/go-wordwrap => github.com/mitchellh/go-wordwrap v1.0.0
|
||||
github.com/mitchellh/mapstructure => github.com/mitchellh/mapstructure v1.1.2
|
||||
github.com/mitchellh/reflectwalk => github.com/mitchellh/reflectwalk v1.0.0
|
||||
github.com/mna/pigeon => github.com/mna/pigeon v0.0.0-20180808201053-bb0192cfc2ae
|
||||
github.com/modern-go/concurrent => github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
|
||||
github.com/modern-go/reflect2 => github.com/modern-go/reflect2 v1.0.1
|
||||
@@ -293,6 +324,7 @@ replace (
|
||||
github.com/open-policy-agent/opa => github.com/open-policy-agent/opa v0.18.0
|
||||
github.com/opencontainers/go-digest => github.com/opencontainers/go-digest v1.0.0-rc1
|
||||
github.com/opencontainers/image-spec => github.com/opencontainers/image-spec v1.0.1
|
||||
github.com/opencontainers/runc => github.com/opencontainers/runc v0.1.1
|
||||
github.com/openshift/api => github.com/openshift/api v0.0.0-20180801171038-322a19404e37
|
||||
github.com/openshift/generic-admission-server => github.com/openshift/generic-admission-server v1.14.0
|
||||
github.com/opentracing/opentracing-go => github.com/opentracing/opentracing-go v1.1.0
|
||||
@@ -302,6 +334,7 @@ replace (
|
||||
github.com/pelletier/go-toml => github.com/pelletier/go-toml v1.2.0
|
||||
github.com/peterbourgon/diskv => github.com/peterbourgon/diskv v2.0.1+incompatible
|
||||
github.com/peterh/liner => github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d
|
||||
github.com/phayes/freeport => github.com/phayes/freeport v0.0.0-20171002181615-b8543db493a5
|
||||
github.com/philhofer/fwd => github.com/philhofer/fwd v1.0.0
|
||||
github.com/pkg/errors => github.com/pkg/errors v0.8.1
|
||||
github.com/pmezard/go-difflib => github.com/pmezard/go-difflib v1.0.0
|
||||
@@ -319,6 +352,7 @@ replace (
|
||||
github.com/prometheus/prometheus => github.com/prometheus/prometheus v1.8.2
|
||||
github.com/rcrowley/go-metrics => github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a
|
||||
github.com/remyoudompheng/bigfft => github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446
|
||||
github.com/robfig/cron => github.com/robfig/cron v1.2.0
|
||||
github.com/rogpeppe/fastuuid => github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af
|
||||
github.com/rogpeppe/go-charset => github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4
|
||||
github.com/russross/blackfriday => github.com/russross/blackfriday v1.5.2
|
||||
@@ -344,13 +378,21 @@ replace (
|
||||
github.com/tinylib/msgp => github.com/tinylib/msgp v1.1.0
|
||||
github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
|
||||
github.com/ugorji/go => github.com/ugorji/go v1.1.4
|
||||
github.com/ugorji/go/codec => github.com/ugorji/go/codec v0.0.0-20190128213124-ee1426cffec0
|
||||
github.com/urfave/cli => github.com/urfave/cli v1.20.0
|
||||
github.com/xanzy/ssh-agent => github.com/xanzy/ssh-agent v0.2.1
|
||||
github.com/xeipuuv/gojsonpointer => github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
|
||||
github.com/xeipuuv/gojsonreference => github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
|
||||
github.com/xeipuuv/gojsonschema => github.com/xeipuuv/gojsonschema v1.2.0
|
||||
github.com/xenolf/lego => github.com/xenolf/lego v0.3.2-0.20160613233155-a9d8cec0e656
|
||||
github.com/xiang90/probing => github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2
|
||||
github.com/xlab/handysort => github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1
|
||||
github.com/xlab/treeprint => github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6
|
||||
github.com/xordataexchange/crypt => github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77
|
||||
github.com/yashtewari/glob-intersection => github.com/yashtewari/glob-intersection v0.0.0-20180916065949-5c77d914dd0b
|
||||
github.com/yvasiyarov/go-metrics => github.com/yvasiyarov/go-metrics v0.0.0-20150112132944-c25f46c4b940
|
||||
github.com/yvasiyarov/gorelic => github.com/yvasiyarov/gorelic v0.0.6
|
||||
github.com/yvasiyarov/newrelic_platform_go => github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f
|
||||
go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.3
|
||||
go.etcd.io/etcd => go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738
|
||||
go.opencensus.io => go.opencensus.io v0.21.0
|
||||
@@ -359,6 +401,7 @@ replace (
|
||||
go.uber.org/zap => go.uber.org/zap v1.10.0
|
||||
golang.org/x/crypto => golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
|
||||
golang.org/x/exp => golang.org/x/exp v0.0.0-20190121172915-509febef88a4
|
||||
golang.org/x/image => golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81
|
||||
golang.org/x/lint => golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f
|
||||
golang.org/x/net => golang.org/x/net v0.0.0-20190620200207-3b0461eec859
|
||||
golang.org/x/oauth2 => golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a
|
||||
@@ -377,16 +420,21 @@ replace (
|
||||
google.golang.org/grpc => google.golang.org/grpc v1.23.1
|
||||
gopkg.in/airbrake/gobrake.v2 => gopkg.in/airbrake/gobrake.v2 v2.0.9
|
||||
gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 v2.2.6
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 => gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc
|
||||
gopkg.in/asn1-ber.v1 => gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d
|
||||
gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15
|
||||
gopkg.in/cheggaaa/pb.v1 => gopkg.in/cheggaaa/pb.v1 v1.0.25
|
||||
gopkg.in/fsnotify.v1 => gopkg.in/fsnotify.v1 v1.4.7
|
||||
gopkg.in/gemnasium/logrus-airbrake-hook.v2 => gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2
|
||||
gopkg.in/go-playground/assert.v1 => gopkg.in/go-playground/assert.v1 v1.2.1
|
||||
gopkg.in/go-playground/validator.v8 => gopkg.in/go-playground/validator.v8 v8.18.2
|
||||
gopkg.in/go-playground/validator.v9 => gopkg.in/go-playground/validator.v9 v9.29.1
|
||||
gopkg.in/gomail.v2 => gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
||||
gopkg.in/inf.v0 => gopkg.in/inf.v0 v0.9.1
|
||||
gopkg.in/mail.v2 => gopkg.in/mail.v2 v2.3.1
|
||||
gopkg.in/natefinch/lumberjack.v2 => gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
gopkg.in/resty.v1 => gopkg.in/resty.v1 v1.12.0
|
||||
gopkg.in/square/go-jose.v1 => gopkg.in/square/go-jose.v1 v1.1.2
|
||||
gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.3.1
|
||||
gopkg.in/src-d/go-billy.v4 => gopkg.in/src-d/go-billy.v4 v4.3.0
|
||||
gopkg.in/src-d/go-git-fixtures.v3 => gopkg.in/src-d/go-git-fixtures.v3 v3.1.1
|
||||
@@ -398,6 +446,7 @@ replace (
|
||||
gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8
|
||||
gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966
|
||||
gotest.tools => gotest.tools v2.2.0+incompatible
|
||||
helm.sh/helm/v3 => helm.sh/helm/v3 v3.0.1
|
||||
honnef.co/go/tools => honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc
|
||||
istio.io/api => istio.io/api v0.0.0-20191111210003-35e06ef8d838
|
||||
istio.io/client-go => istio.io/client-go v0.0.0-20191113122552-9bd0ba57c3d2
|
||||
@@ -425,10 +474,12 @@ replace (
|
||||
modernc.org/strutil => modernc.org/strutil v1.0.0
|
||||
modernc.org/xc => modernc.org/xc v1.0.0
|
||||
openpitrix.io/iam => openpitrix.io/iam v0.1.0
|
||||
openpitrix.io/libqueue => openpitrix.io/libqueue v0.4.1
|
||||
openpitrix.io/logger => openpitrix.io/logger v0.1.0
|
||||
openpitrix.io/openpitrix => github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348
|
||||
openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21
|
||||
openpitrix.io/notification => openpitrix.io/notification v0.2.2
|
||||
openpitrix.io/openpitrix => openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797
|
||||
rsc.io/goversion => rsc.io/goversion v1.0.0
|
||||
rsc.io/letsencrypt => rsc.io/letsencrypt v0.0.1
|
||||
sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.4.0
|
||||
sigs.k8s.io/controller-tools => sigs.k8s.io/controller-tools v0.2.4
|
||||
sigs.k8s.io/kubefed => sigs.k8s.io/kubefed v0.2.0-alpha.1
|
||||
|
||||
9
go.sum
9
go.sum
@@ -72,7 +72,6 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr
|
||||
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
||||
github.com/container-storage-interface/spec v1.2.0 h1:bD9KIVgaVKKkQ/UbVUY9kCaH/CJbhNxe0eeB4JeJV2s=
|
||||
github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
|
||||
github.com/containerd/containerd v1.3.0-beta.2.0.20190823190603-4a2f61c4f2b4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||
github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||
github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||
github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY=
|
||||
@@ -148,9 +147,7 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
|
||||
github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||
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/sse v0.0.0-20190125020943-a7658810eb74/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
|
||||
github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
|
||||
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/gliderlabs/ssh v0.1.1 h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw=
|
||||
github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
|
||||
@@ -448,9 +445,7 @@ github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70
|
||||
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
|
||||
github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
|
||||
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||
github.com/xenolf/lego v0.0.0-20160613233155-a9d8cec0e656/go.mod h1:fwiGnfsIjG7OHPfOvgK7Y/Qo6+2Ox0iozjNTkZICKbY=
|
||||
github.com/xenolf/lego v0.3.2-0.20160613233155-a9d8cec0e656/go.mod h1:fwiGnfsIjG7OHPfOvgK7Y/Qo6+2Ox0iozjNTkZICKbY=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
@@ -596,8 +591,8 @@ openpitrix.io/iam v0.1.0/go.mod h1:EcZE8CPBg+1fEKCDEhpsIZ8isWWO7javpu84mSqoVn4=
|
||||
openpitrix.io/libqueue v0.4.1/go.mod h1:qUuS2viIR86Fm1rLfLRFMMAyltUeGxNt8zoCNkmf/Gk=
|
||||
openpitrix.io/logger v0.1.0/go.mod h1:SV8Btt2cTSmeL9H/1XCkYmQ+WQ2upVY4e0wlr07RP28=
|
||||
openpitrix.io/notification v0.2.2/go.mod h1:2YRxpnrFk2Z3fXpRXWzbDY9j6Sztrd860Vm8qh5hZzY=
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 h1:MUCblqyJK8dX7WYUAiyN7vzpchn+6GYS7pSYVbJHmJ4=
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o=
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 h1:zWzbsWTu2wKovmSXqFgsQTDN7Ckx9TBiD9SQ9qDWQpg=
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o=
|
||||
rsc.io/goversion v1.0.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo=
|
||||
rsc.io/letsencrypt v0.0.1/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY=
|
||||
sigs.k8s.io/controller-runtime v0.4.0 h1:wATM6/m+3w8lj8FXNaO6Fs/rq/vqoOjO1Q116Z9NPsg=
|
||||
|
||||
@@ -18,8 +18,6 @@ package namespace
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/golang/protobuf/ptypes/wrappers"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
@@ -31,7 +29,6 @@ import (
|
||||
"kubesphere.io/kubesphere/pkg/constants"
|
||||
"kubesphere.io/kubesphere/pkg/simple/client/openpitrix"
|
||||
"kubesphere.io/kubesphere/pkg/utils/sliceutil"
|
||||
"openpitrix.io/openpitrix/pkg/pb"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/controller"
|
||||
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
|
||||
@@ -130,11 +127,6 @@ func (r *ReconcileNamespace) Reconcile(request reconcile.Request) (reconcile.Res
|
||||
return reconcile.Result{}, err
|
||||
}
|
||||
|
||||
// delete runtime
|
||||
if err = r.deleteRuntime(instance); err != nil {
|
||||
return reconcile.Result{}, err
|
||||
}
|
||||
|
||||
// remove our finalizer from the list and update it.
|
||||
instance.ObjectMeta.Finalizers = sliceutil.RemoveString(instance.ObjectMeta.Finalizers, func(item string) bool {
|
||||
return item == finalizer
|
||||
@@ -153,13 +145,6 @@ func (r *ReconcileNamespace) Reconcile(request reconcile.Request) (reconcile.Res
|
||||
return reconcile.Result{}, err
|
||||
}
|
||||
|
||||
// skip if openpitrix is not enabled
|
||||
if r.openpitrixClient != nil {
|
||||
if err := r.checkAndCreateRuntime(instance); err != nil {
|
||||
return reconcile.Result{}, err
|
||||
}
|
||||
}
|
||||
|
||||
return reconcile.Result{}, nil
|
||||
}
|
||||
|
||||
@@ -175,88 +160,6 @@ func (r *ReconcileNamespace) isControlledByWorkspace(namespace *corev1.Namespace
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// Create openpitrix runtime
|
||||
func (r *ReconcileNamespace) checkAndCreateRuntime(namespace *corev1.Namespace) error {
|
||||
|
||||
if runtimeId := namespace.Annotations[constants.OpenPitrixRuntimeAnnotationKey]; runtimeId != "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
adminKubeConfigName := fmt.Sprintf("kubeconfig-%s", constants.AdminUserName)
|
||||
|
||||
runtimeCredentials, err := r.openpitrixClient.DescribeRuntimeCredentials(openpitrix.SystemContext(), &pb.DescribeRuntimeCredentialsRequest{SearchWord: &wrappers.StringValue{Value: adminKubeConfigName}, Limit: 1})
|
||||
|
||||
if err != nil {
|
||||
klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err))
|
||||
return err
|
||||
}
|
||||
|
||||
var kubesphereRuntimeCredentialId string
|
||||
|
||||
// runtime credential exist
|
||||
if len(runtimeCredentials.GetRuntimeCredentialSet()) > 0 {
|
||||
kubesphereRuntimeCredentialId = runtimeCredentials.GetRuntimeCredentialSet()[0].GetRuntimeCredentialId().GetValue()
|
||||
} else {
|
||||
adminKubeConfig := corev1.ConfigMap{}
|
||||
err := r.Get(context.TODO(), types.NamespacedName{Namespace: constants.KubeSphereControlNamespace, Name: adminKubeConfigName}, &adminKubeConfig)
|
||||
|
||||
if err != nil {
|
||||
klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err))
|
||||
return err
|
||||
}
|
||||
|
||||
resp, err := r.openpitrixClient.CreateRuntimeCredential(openpitrix.SystemContext(), &pb.CreateRuntimeCredentialRequest{
|
||||
Name: &wrappers.StringValue{Value: adminKubeConfigName},
|
||||
Provider: &wrappers.StringValue{Value: "kubernetes"},
|
||||
Description: &wrappers.StringValue{Value: "kubeconfig"},
|
||||
RuntimeUrl: &wrappers.StringValue{Value: "kubesphere"},
|
||||
RuntimeCredentialContent: &wrappers.StringValue{Value: adminKubeConfig.Data["config"]},
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err))
|
||||
return err
|
||||
}
|
||||
|
||||
kubesphereRuntimeCredentialId = resp.GetRuntimeCredentialId().GetValue()
|
||||
}
|
||||
|
||||
// TODO runtime id is invalid when recreate runtime
|
||||
runtimeId, err := r.openpitrixClient.CreateRuntime(openpitrix.SystemContext(), &pb.CreateRuntimeRequest{
|
||||
Name: &wrappers.StringValue{Value: namespace.Name},
|
||||
RuntimeCredentialId: &wrappers.StringValue{Value: kubesphereRuntimeCredentialId},
|
||||
Provider: &wrappers.StringValue{Value: openpitrix.KubernetesProvider},
|
||||
Zone: &wrappers.StringValue{Value: namespace.Name},
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err))
|
||||
return err
|
||||
}
|
||||
|
||||
klog.V(4).Infof("runtime created successfully, namespace: %s, runtime id: %s", namespace.Name, runtimeId)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete openpitrix runtime
|
||||
func (r *ReconcileNamespace) deleteRuntime(namespace *corev1.Namespace) error {
|
||||
|
||||
if runtimeId := namespace.Annotations[constants.OpenPitrixRuntimeAnnotationKey]; runtimeId != "" {
|
||||
_, err := r.openpitrixClient.DeleteRuntimes(openpitrix.SystemContext(), &pb.DeleteRuntimesRequest{RuntimeId: []string{runtimeId}, Force: &wrappers.BoolValue{Value: true}})
|
||||
|
||||
if err == nil || openpitrix.IsNotFound(err) || openpitrix.IsDeleted(err) {
|
||||
return nil
|
||||
} else {
|
||||
klog.Errorf("delete openpitrix runtime: %s, error: %s", runtimeId, err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Create openpitrix runtime
|
||||
func (r *ReconcileNamespace) checkAndBindWorkspace(namespace *corev1.Namespace) error {
|
||||
|
||||
workspaceName := namespace.Labels[constants.WorkspaceLabelKey]
|
||||
|
||||
@@ -44,39 +44,40 @@ func newOpenpitrixHandler(factory informers.InformerFactory, opClient op.Client)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) ListApplications(request *restful.Request, response *restful.Response) {
|
||||
limit, offset := params.ParsePaging(request)
|
||||
runtimeId := request.PathParameter("runtime")
|
||||
namespace := request.PathParameter("namespace")
|
||||
orderBy := params.GetStringValueWithDefault(request, params.OrderByParam, openpitrix.CreateTime)
|
||||
reverse := params.GetBoolValueWithDefault(request, params.ReverseParam, false)
|
||||
conditions, err := params.ParseConditions(request)
|
||||
func (h *openpitrixHandler) ListApplications(req *restful.Request, resp *restful.Response) {
|
||||
limit, offset := params.ParsePaging(req)
|
||||
clusterName := req.PathParameter("cluster")
|
||||
namespace := req.PathParameter("namespace")
|
||||
orderBy := params.GetStringValueWithDefault(req, params.OrderByParam, openpitrix.CreateTime)
|
||||
reverse := params.GetBoolValueWithDefault(req, params.ReverseParam, false)
|
||||
conditions, err := params.ParseConditions(req)
|
||||
|
||||
if err != nil {
|
||||
klog.V(4).Infoln(err)
|
||||
api.HandleBadRequest(response, nil, err)
|
||||
api.HandleBadRequest(resp, nil, err)
|
||||
return
|
||||
}
|
||||
conditions.Match[openpitrix.Zone] = namespace
|
||||
conditions.Match[openpitrix.RuntimeId] = runtimeId
|
||||
// in openpitrix, runtime id is the cluster name
|
||||
conditions.Match[openpitrix.RuntimeId] = clusterName
|
||||
|
||||
result, err := h.openpitrix.ListApplications(conditions, limit, offset, orderBy, reverse)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
api.HandleInternalError(response, nil, err)
|
||||
api.HandleInternalError(resp, nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
response.WriteAsJson(result)
|
||||
resp.WriteAsJson(result)
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterName := req.PathParameter("cluster")
|
||||
namespace := req.PathParameter("namespace")
|
||||
clusterId := req.PathParameter("application")
|
||||
applicationId := req.PathParameter("application")
|
||||
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId)
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
@@ -89,7 +90,7 @@ func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *rest
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterName := req.PathParameter("cluster")
|
||||
namespace := req.PathParameter("namespace")
|
||||
var createClusterRequest openpitrix.CreateClusterRequest
|
||||
err := req.ReadEntity(&createClusterRequest)
|
||||
@@ -101,7 +102,7 @@ func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restfu
|
||||
|
||||
createClusterRequest.Username = req.HeaderParameter(constants.UserNameHeader)
|
||||
|
||||
err = h.openpitrix.CreateApplication(runtimeId, namespace, createClusterRequest)
|
||||
err = h.openpitrix.CreateApplication(clusterName, namespace, createClusterRequest)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
@@ -114,8 +115,8 @@ func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restfu
|
||||
|
||||
func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restful.Response) {
|
||||
var modifyClusterAttributesRequest openpitrix.ModifyClusterAttributesRequest
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterId := req.PathParameter("application")
|
||||
clusterName := req.PathParameter("cluster")
|
||||
applicationId := req.PathParameter("application")
|
||||
namespace := req.PathParameter("namespace")
|
||||
err := req.ReadEntity(&modifyClusterAttributesRequest)
|
||||
if err != nil {
|
||||
@@ -124,7 +125,7 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu
|
||||
return
|
||||
}
|
||||
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId)
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
@@ -132,8 +133,8 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu
|
||||
return
|
||||
}
|
||||
|
||||
if runtimeId != app.Cluster.RuntimeId {
|
||||
err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId)
|
||||
if clusterName != app.Cluster.RuntimeId {
|
||||
err = fmt.Errorf("runtime and cluster not match %s,%s", app.Cluster.RuntimeId, clusterName)
|
||||
klog.V(4).Infoln(err)
|
||||
api.HandleForbidden(resp, nil, err)
|
||||
return
|
||||
@@ -151,10 +152,10 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterId := req.PathParameter("application")
|
||||
clusterName := req.PathParameter("cluster")
|
||||
applicationId := req.PathParameter("application")
|
||||
namespace := req.PathParameter("namespace")
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId)
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
@@ -162,14 +163,14 @@ func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restfu
|
||||
return
|
||||
}
|
||||
|
||||
if runtimeId != app.Cluster.RuntimeId {
|
||||
err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId)
|
||||
if clusterName != app.Cluster.RuntimeId {
|
||||
err = fmt.Errorf("runtime and cluster not match %s,%s", app.Cluster.RuntimeId, clusterName)
|
||||
klog.V(4).Infoln(err)
|
||||
api.HandleForbidden(resp, nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
err = h.openpitrix.DeleteApplication(clusterId)
|
||||
err = h.openpitrix.DeleteApplication(applicationId)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
@@ -181,9 +182,9 @@ func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restfu
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterName := req.PathParameter("cluster")
|
||||
namespace := req.PathParameter("namespace")
|
||||
clusterId := req.PathParameter("application")
|
||||
applicationId := req.PathParameter("application")
|
||||
var upgradeClusterRequest openpitrix.UpgradeClusterRequest
|
||||
err := req.ReadEntity(&upgradeClusterRequest)
|
||||
if err != nil {
|
||||
@@ -194,7 +195,7 @@ func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restf
|
||||
|
||||
upgradeClusterRequest.Username = req.HeaderParameter(constants.UserNameHeader)
|
||||
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId)
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
@@ -202,8 +203,8 @@ func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restf
|
||||
return
|
||||
}
|
||||
|
||||
if runtimeId != app.Cluster.RuntimeId {
|
||||
err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId)
|
||||
if clusterName != app.Cluster.RuntimeId {
|
||||
err = fmt.Errorf("runtime and cluster not match %s,%s", app.Cluster.RuntimeId, clusterName)
|
||||
klog.V(4).Infoln(err)
|
||||
api.HandleForbidden(resp, nil, err)
|
||||
return
|
||||
|
||||
@@ -43,7 +43,21 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
webservice := runtime.NewWebService(GroupVersion)
|
||||
handler := newOpenpitrixHandler(factory, op)
|
||||
|
||||
webservice.Route(webservice.GET("/runtimes/{runtime}/applications").
|
||||
webservice.Route(webservice.GET("/applications").
|
||||
To(handler.ListApplications).
|
||||
Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Doc("List all applications").
|
||||
Param(webservice.QueryParameter(params.ConditionsParam, "query conditions, connect multiple conditions with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").
|
||||
Required(false).
|
||||
DataFormat("key=value,key~value").
|
||||
DefaultValue("")).
|
||||
Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1").
|
||||
Required(false).
|
||||
DataFormat("limit=%d,page=%d").
|
||||
DefaultValue("limit=10,page=1")))
|
||||
|
||||
webservice.Route(webservice.GET("/clusters/{cluster}/applications").
|
||||
To(handler.ListApplications).
|
||||
Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
@@ -52,13 +66,13 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
Required(false).
|
||||
DataFormat("key=value,key~value").
|
||||
DefaultValue("")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1").
|
||||
Required(false).
|
||||
DataFormat("limit=%d,page=%d").
|
||||
DefaultValue("limit=10,page=1")))
|
||||
|
||||
webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications").
|
||||
webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications").
|
||||
To(handler.ListApplications).
|
||||
Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
@@ -67,61 +81,61 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
Required(false).
|
||||
DataFormat("key=value,key~value").
|
||||
DefaultValue("")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project").Required(true)).
|
||||
Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1").
|
||||
Required(false).
|
||||
DataFormat("limit=%d,page=%d").
|
||||
DefaultValue("limit=10,page=1")))
|
||||
|
||||
webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
To(handler.DescribeApplication).
|
||||
Returns(http.StatusOK, api.StatusOK, openpitrix2.Application{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Doc("Describe the specified application of the namespace").
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "application ID")))
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project").Required(true)).
|
||||
Param(webservice.PathParameter("application", "the id of the application").Required(true)))
|
||||
|
||||
webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications").
|
||||
webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications").
|
||||
To(handler.CreateApplication).
|
||||
Doc("Deploy a new application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Reads(openpitrix2.CreateClusterRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")))
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project").Required(true)))
|
||||
|
||||
webservice.Route(webservice.PATCH("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.PATCH("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
Consumes(mimePatch...).
|
||||
To(handler.ModifyApplication).
|
||||
Doc("Modify application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Reads(openpitrix2.ModifyClusterAttributesRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "the id of the application cluster")))
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project").Required(true)).
|
||||
Param(webservice.PathParameter("application", "the id of the application").Required(true)))
|
||||
|
||||
webservice.Route(webservice.DELETE("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.DELETE("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
To(handler.DeleteApplication).
|
||||
Doc("Delete the specified application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "the id of the application cluster")))
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project").Required(true)).
|
||||
Param(webservice.PathParameter("application", "the id of the application").Required(true)))
|
||||
|
||||
webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
Consumes(mimePatch...).
|
||||
To(handler.UpgradeApplication).
|
||||
Doc("Upgrade application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Reads(openpitrix2.UpgradeClusterRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "the id of the application cluster")))
|
||||
Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project").Required(true)).
|
||||
Param(webservice.PathParameter("application", "the id of the application").Required(true)))
|
||||
|
||||
webservice.Route(webservice.POST("/apps/{app}/versions").
|
||||
To(handler.CreateAppVersion).
|
||||
|
||||
@@ -35,8 +35,8 @@ import (
|
||||
|
||||
type ApplicationInterface interface {
|
||||
ListApplications(conditions *params.Conditions, limit, offset int, orderBy string, reverse bool) (*models.PageableResponse, error)
|
||||
DescribeApplication(namespace, clusterId, runtimeId string) (*Application, error)
|
||||
CreateApplication(runtimeId, namespace string, request CreateClusterRequest) error
|
||||
DescribeApplication(namespace, applicationId, clusterName string) (*Application, error)
|
||||
CreateApplication(clusterName, namespace string, request CreateClusterRequest) error
|
||||
ModifyApplication(request ModifyClusterAttributesRequest) error
|
||||
DeleteApplication(id string) error
|
||||
UpgradeApplication(request UpgradeClusterRequest) error
|
||||
@@ -143,10 +143,10 @@ func (c *applicationOperator) describeApplication(cluster *pb.Cluster) (*Applica
|
||||
return &app, nil
|
||||
}
|
||||
|
||||
func (c *applicationOperator) DescribeApplication(namespace string, clusterId string, runtimeId string) (*Application, error) {
|
||||
func (c *applicationOperator) DescribeApplication(namespace string, applicationId string, clusterName string) (*Application, error) {
|
||||
describeClusterRequest := &pb.DescribeClustersRequest{
|
||||
ClusterId: []string{clusterId},
|
||||
RuntimeId: []string{runtimeId},
|
||||
ClusterId: []string{applicationId},
|
||||
RuntimeId: []string{clusterName},
|
||||
Zone: []string{namespace},
|
||||
WithDetail: pbutil.ToProtoBool(true),
|
||||
Limit: 1,
|
||||
@@ -358,11 +358,11 @@ func (c *applicationOperator) getIng(namespace string, services []v1.Service) []
|
||||
return ings
|
||||
}
|
||||
|
||||
func (c *applicationOperator) CreateApplication(runtimeId, namespace string, request CreateClusterRequest) error {
|
||||
func (c *applicationOperator) CreateApplication(clusterName, namespace string, request CreateClusterRequest) error {
|
||||
_, err := c.opClient.CreateCluster(openpitrix.ContextWithUsername(request.Username), &pb.CreateClusterRequest{
|
||||
AppId: &wrappers.StringValue{Value: request.AppId},
|
||||
VersionId: &wrappers.StringValue{Value: request.VersionId},
|
||||
RuntimeId: &wrappers.StringValue{Value: request.RuntimeId},
|
||||
RuntimeId: &wrappers.StringValue{Value: clusterName},
|
||||
Conf: &wrappers.StringValue{Value: request.Conf},
|
||||
Zone: &wrappers.StringValue{Value: namespace},
|
||||
})
|
||||
@@ -395,8 +395,8 @@ func (c *applicationOperator) ModifyApplication(request ModifyClusterAttributesR
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *applicationOperator) DeleteApplication(clusterId string) error {
|
||||
_, err := c.opClient.DeleteClusters(openpitrix.SystemContext(), &pb.DeleteClustersRequest{ClusterId: []string{clusterId}, Force: &wrappers.BoolValue{Value: true}})
|
||||
func (c *applicationOperator) DeleteApplication(applicationId string) error {
|
||||
_, err := c.opClient.DeleteClusters(openpitrix.SystemContext(), &pb.DeleteClustersRequest{ClusterId: []string{applicationId}, Force: &wrappers.BoolValue{Value: true}})
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Copyright 2019 The KubeSphere Authors.
|
||||
Copyright 2020 The KubeSphere Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -20,6 +20,7 @@ package openpitrix
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/golang/protobuf/ptypes/wrappers"
|
||||
"k8s.io/klog"
|
||||
"openpitrix.io/openpitrix/pkg/manager"
|
||||
"openpitrix.io/openpitrix/pkg/pb"
|
||||
@@ -48,6 +49,12 @@ type Client interface {
|
||||
pb.CategoryManagerClient
|
||||
pb.AttachmentManagerClient
|
||||
pb.RepoIndexerClient
|
||||
// upsert the openpitrix runtime when cluster is updated or created
|
||||
UpsertRuntime(cluster string, kubeConfig string) error
|
||||
// clean up the openpitrix runtime when cluster is deleted
|
||||
CleanupRuntime(cluster string) error
|
||||
// migrate the openpitrix runtime when upgrade ks2.x to ks3.x
|
||||
MigrateRuntime(runtimeId string, cluster string) error
|
||||
}
|
||||
|
||||
type client struct {
|
||||
@@ -60,6 +67,47 @@ type client struct {
|
||||
pb.RepoIndexerClient
|
||||
}
|
||||
|
||||
func (c *client) UpsertRuntime(cluster string, kubeConfig string) error {
|
||||
ctx := SystemContext()
|
||||
req := &pb.CreateRuntimeCredentialRequest{
|
||||
Name: &wrappers.StringValue{Value: fmt.Sprintf("kubeconfig-%s", cluster)},
|
||||
Provider: &wrappers.StringValue{Value: "kubernetes"},
|
||||
Description: &wrappers.StringValue{Value: "kubeconfig"},
|
||||
RuntimeUrl: &wrappers.StringValue{Value: "kubesphere"},
|
||||
RuntimeCredentialContent: &wrappers.StringValue{Value: kubeConfig},
|
||||
RuntimeCredentialId: &wrappers.StringValue{Value: cluster},
|
||||
}
|
||||
_, err := c.CreateRuntimeCredential(ctx, req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = c.CreateRuntime(ctx, &pb.CreateRuntimeRequest{
|
||||
Name: &wrappers.StringValue{Value: cluster},
|
||||
RuntimeCredentialId: &wrappers.StringValue{Value: cluster},
|
||||
Provider: &wrappers.StringValue{Value: KubernetesProvider},
|
||||
Zone: &wrappers.StringValue{Value: cluster},
|
||||
})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *client) CleanupRuntime(cluster string) error {
|
||||
ctx := SystemContext()
|
||||
_, err := c.DeleteClusterInRuntime(ctx, &pb.DeleteClusterInRuntimeRequest{
|
||||
RuntimeId: []string{cluster},
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *client) MigrateRuntime(runtimeId string, cluster string) error {
|
||||
ctx := SystemContext()
|
||||
_, err := c.MigrateClusterInRuntime(ctx, &pb.MigrateClusterInRuntimeRequest{
|
||||
FromRuntimeId: runtimeId,
|
||||
ToRuntimeId: cluster,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func parseToHostPort(endpoint string) (string, int, error) {
|
||||
args := strings.Split(endpoint, ":")
|
||||
if len(args) != 2 {
|
||||
|
||||
4
vendor/modules.txt
vendored
4
vendor/modules.txt
vendored
@@ -136,9 +136,9 @@ github.com/elastic/go-elasticsearch/v7/estransport
|
||||
github.com/elastic/go-elasticsearch/v7/internal/version
|
||||
# github.com/emicklei/go-restful v2.11.1+incompatible => github.com/emicklei/go-restful v2.9.5+incompatible
|
||||
github.com/emicklei/go-restful
|
||||
github.com/emicklei/go-restful/log
|
||||
# github.com/emicklei/go-restful-openapi v1.0.0 => github.com/emicklei/go-restful-openapi v1.0.0
|
||||
github.com/emicklei/go-restful-openapi
|
||||
github.com/emicklei/go-restful/log
|
||||
# github.com/emirpasic/gods v1.12.0 => github.com/emirpasic/gods v1.12.0
|
||||
github.com/emirpasic/gods/containers
|
||||
github.com/emirpasic/gods/lists
|
||||
@@ -1359,7 +1359,7 @@ k8s.io/utils/net
|
||||
k8s.io/utils/path
|
||||
k8s.io/utils/pointer
|
||||
k8s.io/utils/trace
|
||||
# openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21
|
||||
# openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 => openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797
|
||||
openpitrix.io/openpitrix/pkg/config
|
||||
openpitrix.io/openpitrix/pkg/constants
|
||||
openpitrix.io/openpitrix/pkg/db
|
||||
|
||||
994
vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go
generated
vendored
994
vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
266
vendor/openpitrix.io/openpitrix/pkg/pb/runtime.pb.go
generated
vendored
266
vendor/openpitrix.io/openpitrix/pkg/pb/runtime.pb.go
generated
vendored
@@ -366,7 +366,9 @@ type CreateRuntimeRequest struct {
|
||||
// required, runtime credential id
|
||||
RuntimeCredentialId *wrappers.StringValue `protobuf:"bytes,4,opt,name=runtime_credential_id,json=runtimeCredentialId,proto3" json:"runtime_credential_id,omitempty"`
|
||||
// required, runtime zone eg.[pek3a|pek3b|...]
|
||||
Zone *wrappers.StringValue `protobuf:"bytes,5,opt,name=zone,proto3" json:"zone,omitempty"`
|
||||
Zone *wrappers.StringValue `protobuf:"bytes,5,opt,name=zone,proto3" json:"zone,omitempty"`
|
||||
// for kubesphere only, if provider this value means upsert this record
|
||||
RuntimeId *wrappers.StringValue `protobuf:"bytes,10,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -432,6 +434,13 @@ func (m *CreateRuntimeRequest) GetZone() *wrappers.StringValue {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *CreateRuntimeRequest) GetRuntimeId() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.RuntimeId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type CreateRuntimeResponse struct {
|
||||
// id of runtime created
|
||||
RuntimeId *wrappers.StringValue `protobuf:"bytes,1,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
|
||||
@@ -915,7 +924,9 @@ type CreateRuntimeCredentialRequest struct {
|
||||
// runtime credential name
|
||||
Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// runtime credential description
|
||||
Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
|
||||
Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
|
||||
// for kubesphere only, if provider this value means upsert this record
|
||||
RuntimeCredentialId *wrappers.StringValue `protobuf:"bytes,10,opt,name=runtime_credential_id,json=runtimeCredentialId,proto3" json:"runtime_credential_id,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -981,6 +992,13 @@ func (m *CreateRuntimeCredentialRequest) GetDescription() *wrappers.StringValue
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *CreateRuntimeCredentialRequest) GetRuntimeCredentialId() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.RuntimeCredentialId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type CreateRuntimeCredentialResponse struct {
|
||||
// id of runtime credential created
|
||||
RuntimeCredentialId *wrappers.StringValue `protobuf:"bytes,1,opt,name=runtime_credential_id,json=runtimeCredentialId,proto3" json:"runtime_credential_id,omitempty"`
|
||||
@@ -1697,128 +1715,128 @@ func init() {
|
||||
func init() { proto.RegisterFile("runtime.proto", fileDescriptor_86e2dd377c869464) }
|
||||
|
||||
var fileDescriptor_86e2dd377c869464 = []byte{
|
||||
// 1923 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcd, 0x6f, 0x1c, 0x49,
|
||||
0x15, 0x57, 0xb7, 0x3d, 0x76, 0xfc, 0xc6, 0xe3, 0xc4, 0xb5, 0x8e, 0xdd, 0xe9, 0xf8, 0xa3, 0xdd,
|
||||
0x59, 0xd8, 0xe0, 0x8c, 0xed, 0x30, 0x44, 0xec, 0xb2, 0xab, 0x20, 0x26, 0xce, 0x2a, 0x20, 0x12,
|
||||
0x11, 0x4d, 0xbc, 0x59, 0x29, 0x97, 0x51, 0x7b, 0xa6, 0x66, 0xdc, 0x72, 0xbb, 0x6b, 0xb6, 0xba,
|
||||
0xc6, 0x83, 0x39, 0xa0, 0x15, 0x70, 0x81, 0xcd, 0x85, 0x41, 0x08, 0xc4, 0x81, 0x23, 0xe2, 0x84,
|
||||
0xb8, 0x20, 0x0e, 0x20, 0x81, 0x90, 0x58, 0x89, 0x33, 0xe2, 0x3f, 0x40, 0xe2, 0xc0, 0x1f, 0xc0,
|
||||
0x11, 0xd4, 0x55, 0xd5, 0x9e, 0xfe, 0x9e, 0x76, 0x3c, 0x09, 0x82, 0xdd, 0x93, 0x3d, 0x55, 0xef,
|
||||
0x55, 0xbd, 0xaf, 0xdf, 0xaf, 0xde, 0x6b, 0xa8, 0xd0, 0xbe, 0xcb, 0xec, 0x63, 0xbc, 0xd3, 0xa3,
|
||||
0x84, 0x11, 0x04, 0xa4, 0x87, 0xdd, 0x9e, 0xcd, 0xa8, 0xfd, 0x4d, 0x7d, 0xbd, 0x4b, 0x48, 0xd7,
|
||||
0xc1, 0xbb, 0x7c, 0xe7, 0xa0, 0xdf, 0xd9, 0x1d, 0x50, 0xab, 0xd7, 0xc3, 0xd4, 0x13, 0xb2, 0xfa,
|
||||
0x46, 0x7c, 0xdf, 0x3f, 0xc7, 0x63, 0xd6, 0x71, 0x4f, 0x0a, 0xac, 0x4a, 0x01, 0xab, 0x67, 0xef,
|
||||
0x5a, 0xae, 0x4b, 0x98, 0xc5, 0x6c, 0xe2, 0x06, 0xea, 0x55, 0xfe, 0xa7, 0xb5, 0xdd, 0xc5, 0xee,
|
||||
0xb6, 0x37, 0xb0, 0xba, 0x5d, 0x4c, 0x77, 0x49, 0x8f, 0x4b, 0x24, 0xa5, 0xcd, 0x7f, 0x97, 0x60,
|
||||
0xb1, 0x21, 0x4c, 0xdd, 0xa3, 0xb8, 0x8d, 0x5d, 0x66, 0x5b, 0x0e, 0x7a, 0x0c, 0x57, 0xa5, 0xfd,
|
||||
0xcd, 0xd6, 0xd9, 0x6a, 0xd3, 0x6e, 0x6b, 0x8a, 0xa1, 0xdc, 0x2c, 0xd7, 0x56, 0x77, 0x84, 0x05,
|
||||
0x3b, 0x81, 0x89, 0x3b, 0x4f, 0x18, 0xb5, 0xdd, 0xee, 0x53, 0xcb, 0xe9, 0xe3, 0xc6, 0x6b, 0x34,
|
||||
0x7e, 0xde, 0xd7, 0xda, 0xe8, 0x36, 0x4c, 0xbb, 0xd6, 0x31, 0xd6, 0xd4, 0x02, 0x07, 0x70, 0x49,
|
||||
0xf4, 0x65, 0x28, 0xb7, 0xb1, 0xd7, 0xa2, 0x36, 0xb7, 0x5d, 0x9b, 0x2a, 0xa0, 0x18, 0x56, 0x40,
|
||||
0x77, 0xa1, 0x1c, 0xf8, 0xd0, 0xa7, 0x8e, 0x36, 0x5d, 0x40, 0x1f, 0xa4, 0xc2, 0x7b, 0xd4, 0x41,
|
||||
0xcf, 0x40, 0x4f, 0x09, 0x41, 0x8b, 0xb8, 0x0c, 0xbb, 0x4c, 0x2b, 0x15, 0x38, 0x4d, 0x4b, 0xc4,
|
||||
0x61, 0x4f, 0x68, 0xa3, 0x77, 0x00, 0xc8, 0xc0, 0xc5, 0xb4, 0xd9, 0xb3, 0xd8, 0xa1, 0x36, 0x53,
|
||||
0xe0, 0xac, 0x39, 0x2e, 0xff, 0xd8, 0x62, 0x87, 0xe8, 0x2d, 0xb8, 0xd4, 0xa3, 0xe4, 0xc4, 0x6e,
|
||||
0x63, 0xaa, 0xcd, 0x16, 0x50, 0x3d, 0x93, 0x46, 0x77, 0x60, 0xc6, 0x63, 0x16, 0xeb, 0x7b, 0xda,
|
||||
0xa5, 0x02, 0x7a, 0x52, 0x16, 0xbd, 0x03, 0xe5, 0x16, 0xc5, 0x16, 0xc3, 0x4d, 0xdf, 0x19, 0x6d,
|
||||
0x8e, 0xab, 0xea, 0x09, 0xd5, 0xfd, 0xa0, 0x48, 0x1b, 0x20, 0xc4, 0xfd, 0x05, 0x5f, 0x59, 0x1c,
|
||||
0x23, 0x94, 0x61, 0xbc, 0xb2, 0x10, 0xe7, 0xca, 0xb7, 0xa1, 0xd4, 0xc6, 0x07, 0xfd, 0xae, 0x56,
|
||||
0xce, 0x50, 0xbb, 0x47, 0x88, 0x23, 0x8c, 0x15, 0x82, 0xa8, 0x06, 0x25, 0x1e, 0x28, 0x6d, 0xbe,
|
||||
0x80, 0x83, 0x42, 0xd4, 0xfc, 0x4b, 0x09, 0x66, 0x25, 0x02, 0xfc, 0xc4, 0x04, 0x49, 0x2f, 0x58,
|
||||
0xec, 0x73, 0x52, 0xfe, 0xbf, 0x52, 0xe2, 0xe1, 0x52, 0x98, 0x3e, 0x57, 0x29, 0x64, 0x02, 0xbc,
|
||||
0x74, 0x01, 0x80, 0x7f, 0x8b, 0xb8, 0xb8, 0x50, 0x35, 0x73, 0xc9, 0x18, 0x0a, 0x66, 0xcf, 0x87,
|
||||
0x82, 0x4f, 0x6b, 0x39, 0xad, 0x96, 0x9f, 0x2b, 0x50, 0x91, 0xb5, 0x7c, 0x1f, 0x33, 0xcb, 0x76,
|
||||
0xd0, 0x36, 0xcc, 0xca, 0x6c, 0xc9, 0x72, 0x7e, 0x6d, 0x67, 0xf4, 0x14, 0xed, 0x48, 0xd9, 0x46,
|
||||
0x20, 0x83, 0x1e, 0x02, 0x4a, 0xd6, 0x85, 0xac, 0xe8, 0xb5, 0x14, 0xcd, 0x51, 0x09, 0x34, 0x16,
|
||||
0x13, 0x55, 0x61, 0x7e, 0xac, 0xc2, 0xd2, 0x1e, 0x0f, 0x60, 0x70, 0x11, 0xfe, 0xa0, 0x8f, 0x3d,
|
||||
0x76, 0x06, 0x15, 0xe5, 0x45, 0xa1, 0xa2, 0x5e, 0x04, 0x2a, 0x53, 0x93, 0x81, 0xca, 0xf4, 0x45,
|
||||
0xa1, 0x52, 0x2a, 0x0a, 0x15, 0x73, 0x1f, 0xae, 0xc6, 0xe2, 0xe8, 0xf5, 0x88, 0xeb, 0x5d, 0x8c,
|
||||
0xb0, 0xcc, 0xdf, 0x4d, 0xc1, 0xca, 0x7d, 0x1e, 0xa3, 0x83, 0xe0, 0x60, 0x2f, 0xc8, 0xd0, 0x5d,
|
||||
0x28, 0x7b, 0xd8, 0xa2, 0xad, 0xc3, 0xe6, 0x80, 0xd0, 0x62, 0x27, 0x83, 0x50, 0x78, 0x9f, 0xd0,
|
||||
0x36, 0x7a, 0x13, 0x2e, 0x79, 0x84, 0xb2, 0xe6, 0x11, 0x3e, 0x2d, 0x94, 0xab, 0x59, 0x5f, 0xfa,
|
||||
0xeb, 0xf8, 0x14, 0xdd, 0x81, 0x59, 0x8a, 0x4f, 0x30, 0xf5, 0xb0, 0x4c, 0x53, 0x1e, 0x52, 0x02,
|
||||
0x51, 0xb4, 0x04, 0x25, 0xc7, 0x3e, 0xb6, 0x19, 0xcf, 0x49, 0xa5, 0x21, 0x7e, 0xa0, 0x65, 0x98,
|
||||
0x21, 0x9d, 0x8e, 0x87, 0xc5, 0x73, 0x5d, 0x69, 0xc8, 0x5f, 0xe8, 0x0d, 0xb8, 0xdc, 0xb6, 0xbd,
|
||||
0x9e, 0x63, 0x9d, 0x36, 0x5b, 0xc4, 0xe9, 0x1f, 0xbb, 0x9e, 0x36, 0x63, 0x4c, 0xdd, 0x9c, 0x6b,
|
||||
0x2c, 0xc8, 0xe5, 0x3d, 0xb1, 0x8a, 0xd6, 0x22, 0xd1, 0x2d, 0x73, 0x99, 0x10, 0xe1, 0x2f, 0x9f,
|
||||
0x71, 0xd0, 0x3c, 0xdf, 0x0a, 0x58, 0x46, 0x0f, 0xd5, 0x5a, 0x85, 0xef, 0x8c, 0xaa, 0x69, 0x29,
|
||||
0x40, 0xf5, 0x02, 0xdf, 0x10, 0x3f, 0x50, 0x2d, 0xab, 0xc6, 0x2e, 0x73, 0xa9, 0xb4, 0x2a, 0x32,
|
||||
0x3f, 0x00, 0x2d, 0x99, 0x3c, 0x59, 0x16, 0x1b, 0x50, 0x66, 0x84, 0xf1, 0x7e, 0xa5, 0xef, 0x32,
|
||||
0x9e, 0xbd, 0x4a, 0x03, 0xf8, 0xd2, 0x9e, 0xbf, 0x82, 0xee, 0x8c, 0x9a, 0x23, 0x3f, 0x3e, 0xaa,
|
||||
0x31, 0x95, 0x45, 0x0d, 0x41, 0x04, 0x9e, 0x60, 0x66, 0xfe, 0x40, 0x81, 0xf5, 0xd8, 0x9d, 0x82,
|
||||
0x66, 0xce, 0x71, 0xf3, 0x83, 0x11, 0xc3, 0xb4, 0xb9, 0x6e, 0xc8, 0x80, 0x6b, 0x29, 0x06, 0x88,
|
||||
0x0b, 0x1a, 0x57, 0x68, 0xf8, 0xa7, 0x6f, 0xcc, 0x4f, 0x54, 0x58, 0x7a, 0x44, 0xda, 0x76, 0xe7,
|
||||
0x34, 0x46, 0x2e, 0xff, 0x63, 0x8f, 0xf8, 0xc4, 0xf9, 0xc5, 0x67, 0x8b, 0x58, 0x60, 0x26, 0xc1,
|
||||
0x16, 0x1f, 0x29, 0x70, 0xf5, 0x3e, 0x76, 0x30, 0x4b, 0x70, 0xc5, 0x5a, 0xec, 0xd8, 0x18, 0x4c,
|
||||
0x6e, 0x43, 0xa9, 0x43, 0x68, 0x2b, 0x88, 0x69, 0xee, 0xd3, 0xc7, 0x05, 0xd1, 0x26, 0xcc, 0x77,
|
||||
0xa9, 0xd5, 0xc2, 0xcd, 0x1e, 0xa6, 0x36, 0x69, 0xf3, 0x98, 0x56, 0x1a, 0x65, 0xbe, 0xf6, 0x98,
|
||||
0x2f, 0x99, 0x6f, 0xc2, 0x72, 0xdc, 0x18, 0xe9, 0x64, 0xbe, 0x35, 0xe6, 0x3f, 0x54, 0x58, 0x8f,
|
||||
0x70, 0x69, 0xe8, 0x09, 0x1b, 0x71, 0x5f, 0x78, 0x72, 0x50, 0x26, 0x3a, 0x39, 0xa8, 0x17, 0x9a,
|
||||
0x1c, 0x5e, 0xfc, 0x19, 0x0b, 0x0a, 0x7b, 0xfa, 0x45, 0x0b, 0xbb, 0x74, 0xce, 0xc2, 0x36, 0x3d,
|
||||
0xd8, 0xc8, 0x0c, 0xb4, 0xcc, 0xd5, 0xc4, 0xe7, 0x4c, 0xf3, 0x5f, 0x0a, 0x18, 0x4f, 0x2d, 0xc7,
|
||||
0x6e, 0x7f, 0xd2, 0x12, 0x6c, 0x7e, 0x03, 0x36, 0x73, 0x1c, 0x97, 0x01, 0xdf, 0x02, 0x95, 0x1c,
|
||||
0x49, 0x87, 0xf3, 0x80, 0xa8, 0x92, 0x23, 0xf3, 0x17, 0x53, 0xb0, 0x19, 0x63, 0xfb, 0xd1, 0x89,
|
||||
0x9f, 0x36, 0x0a, 0xe1, 0x46, 0x21, 0xf3, 0xfd, 0x2e, 0x67, 0xbe, 0xdf, 0x93, 0xeb, 0x1e, 0xcc,
|
||||
0x9f, 0x29, 0x60, 0xe6, 0x25, 0xaa, 0xe8, 0xd3, 0xfc, 0x04, 0x96, 0x53, 0xbc, 0x18, 0x3d, 0xcf,
|
||||
0x63, 0x06, 0x80, 0xa5, 0x84, 0x97, 0xfe, 0x33, 0xfd, 0x47, 0x15, 0xd6, 0x23, 0xaf, 0x51, 0x12,
|
||||
0x8e, 0xff, 0x0f, 0x5f, 0x9b, 0xf2, 0x39, 0x61, 0xfa, 0x22, 0x9c, 0xe0, 0x13, 0x69, 0x66, 0x04,
|
||||
0x5f, 0x1a, 0x91, 0xbe, 0x07, 0x1b, 0x91, 0x07, 0x36, 0x05, 0xfa, 0xb5, 0xec, 0x4b, 0x33, 0xbb,
|
||||
0xd6, 0xa7, 0x60, 0x64, 0x1f, 0x2b, 0x9d, 0x79, 0x91, 0x73, 0x07, 0x70, 0x23, 0x06, 0x81, 0xc7,
|
||||
0x12, 0x34, 0xcf, 0x88, 0x3b, 0x6a, 0x55, 0x26, 0x1f, 0xa7, 0xe7, 0x0a, 0xbc, 0x9e, 0x7f, 0xf3,
|
||||
0xcb, 0x4a, 0x11, 0x42, 0x72, 0x8e, 0x54, 0x79, 0x58, 0xc4, 0xa4, 0xb8, 0x06, 0xd7, 0x1f, 0x60,
|
||||
0x26, 0x0d, 0x79, 0xc2, 0x2c, 0x66, 0x7b, 0xcc, 0x6e, 0x05, 0xfe, 0x9b, 0x7f, 0x9b, 0x82, 0xd5,
|
||||
0xf4, 0x7d, 0x69, 0xa5, 0x07, 0x57, 0x1d, 0xcb, 0x63, 0x4d, 0x36, 0x20, 0xcd, 0x01, 0xc6, 0x47,
|
||||
0x4d, 0xf1, 0x01, 0x44, 0xc4, 0xbe, 0x5c, 0xfb, 0x4a, 0x98, 0x02, 0xf2, 0x0e, 0xda, 0x79, 0x68,
|
||||
0x79, 0x6c, 0x7f, 0x40, 0xde, 0xc7, 0xf8, 0x48, 0x74, 0x01, 0xed, 0x77, 0x5d, 0x46, 0x4f, 0x1b,
|
||||
0xc8, 0x49, 0x6c, 0x20, 0x1b, 0x16, 0x19, 0xe9, 0x35, 0x19, 0x76, 0x9b, 0x01, 0xd5, 0x79, 0x92,
|
||||
0x73, 0xee, 0x16, 0xbe, 0x70, 0x9f, 0xf4, 0xf6, 0xb1, 0x1b, 0xc4, 0xde, 0x13, 0xb7, 0x5d, 0x66,
|
||||
0xd1, 0x55, 0x74, 0xe3, 0xec, 0xcb, 0xbc, 0xa4, 0x41, 0xd1, 0x5b, 0xce, 0x07, 0xf1, 0xe5, 0x44,
|
||||
0xf8, 0x19, 0x58, 0x08, 0xec, 0x90, 0x52, 0xe2, 0xb9, 0xa8, 0x04, 0xab, 0x5c, 0x4c, 0x7f, 0x17,
|
||||
0x56, 0x32, 0xbc, 0x44, 0x57, 0x60, 0xca, 0x7f, 0xd1, 0xfc, 0xd4, 0xce, 0x35, 0xfc, 0x7f, 0x7d,
|
||||
0xea, 0x3e, 0xf1, 0x53, 0xc9, 0x39, 0xa9, 0xd2, 0x10, 0x3f, 0xde, 0x56, 0xdf, 0x52, 0xf4, 0x7b,
|
||||
0xb0, 0x94, 0x66, 0xfb, 0x79, 0xce, 0xa8, 0xfd, 0x56, 0x83, 0x05, 0x19, 0x9a, 0x47, 0x96, 0x6b,
|
||||
0x75, 0x31, 0x45, 0x1f, 0x2a, 0x50, 0x89, 0xf4, 0x5f, 0xc8, 0x08, 0xc7, 0x32, 0xed, 0xbb, 0x8c,
|
||||
0xbe, 0x99, 0x23, 0x21, 0xc2, 0x6c, 0x6e, 0x0d, 0xeb, 0x57, 0xd0, 0x82, 0xd8, 0x33, 0x64, 0xd4,
|
||||
0xbe, 0xf3, 0xd7, 0xbf, 0xff, 0x48, 0x5d, 0x34, 0xe7, 0x77, 0x4f, 0x3e, 0xbf, 0x2b, 0x97, 0xbc,
|
||||
0xb7, 0x95, 0x2d, 0xf4, 0x43, 0x05, 0x90, 0x90, 0xbc, 0x8f, 0x0f, 0xfa, 0xdd, 0x89, 0xda, 0xf1,
|
||||
0xc5, 0x61, 0x7d, 0x19, 0xc9, 0xaf, 0x4b, 0x06, 0xff, 0x62, 0x16, 0xb1, 0x66, 0xc5, 0x44, 0xbe,
|
||||
0x35, 0x7c, 0xa3, 0x19, 0xb6, 0xc9, 0xf6, 0x07, 0x87, 0xb4, 0x11, 0x16, 0xdd, 0x08, 0x5f, 0x9a,
|
||||
0xf1, 0x5d, 0x44, 0xdf, 0xca, 0x11, 0x8a, 0xcf, 0xc2, 0xff, 0x54, 0xe0, 0x4a, 0xfc, 0x9c, 0x62,
|
||||
0xb7, 0xbc, 0x9e, 0x2f, 0x24, 0x43, 0xf0, 0x91, 0x32, 0xac, 0x33, 0x44, 0x1f, 0x60, 0x16, 0xb8,
|
||||
0xee, 0x55, 0x8d, 0x96, 0xe5, 0x1a, 0x1d, 0xdb, 0x61, 0x98, 0x1a, 0x03, 0x9b, 0x1d, 0x1a, 0xec,
|
||||
0x10, 0x7b, 0xd8, 0xe8, 0xd8, 0xd8, 0x69, 0x7b, 0x37, 0x47, 0x83, 0x51, 0xd5, 0x08, 0x6a, 0xb9,
|
||||
0x6a, 0xf8, 0xc4, 0x51, 0x35, 0x44, 0xfb, 0x51, 0x35, 0x78, 0x4f, 0xf1, 0xb9, 0xaa, 0xd1, 0xc6,
|
||||
0x1d, 0xab, 0xef, 0x30, 0x83, 0x62, 0xd6, 0xa7, 0xae, 0x61, 0x39, 0xce, 0xd9, 0x2d, 0x3c, 0xc2,
|
||||
0x0b, 0x28, 0x92, 0x6f, 0xf4, 0x5d, 0xd5, 0x9f, 0x0f, 0x85, 0xa9, 0xe1, 0x74, 0x4f, 0xd4, 0xe5,
|
||||
0x9f, 0x2b, 0xc3, 0xfa, 0x87, 0x0a, 0xfa, 0xb6, 0xef, 0x73, 0x24, 0xe9, 0x2f, 0xd9, 0xf3, 0xe8,
|
||||
0x5d, 0xdc, 0xff, 0x25, 0x94, 0x52, 0x61, 0x1c, 0x75, 0x91, 0xc7, 0x3a, 0x5a, 0xed, 0x69, 0x1f,
|
||||
0x2c, 0xa2, 0xd5, 0x9e, 0x3a, 0xb9, 0x4b, 0xd4, 0x89, 0xbd, 0x28, 0xea, 0x6a, 0x09, 0xd4, 0x7d,
|
||||
0x4f, 0x81, 0x85, 0xe8, 0x6c, 0x8c, 0x36, 0xa3, 0xc1, 0x4d, 0x19, 0xe2, 0x75, 0x33, 0x4f, 0x44,
|
||||
0x5a, 0x71, 0x6b, 0x58, 0x5f, 0x44, 0x97, 0xc5, 0x66, 0x34, 0x18, 0x8b, 0x5b, 0x09, 0x33, 0x7e,
|
||||
0xa3, 0xc0, 0x4a, 0xc6, 0xfc, 0x87, 0xb6, 0x32, 0xf1, 0x9d, 0xe8, 0x0e, 0xf5, 0x5b, 0x85, 0x64,
|
||||
0xa5, 0x85, 0xf5, 0x61, 0xfd, 0x3a, 0xba, 0xd6, 0x8a, 0xb0, 0x93, 0x31, 0x7a, 0x6e, 0xb9, 0xad,
|
||||
0x6b, 0xa6, 0x16, 0xb6, 0x75, 0x77, 0xb4, 0xcd, 0xed, 0xfe, 0x58, 0x81, 0xd5, 0x24, 0x69, 0xbd,
|
||||
0x0a, 0xe3, 0x1f, 0x0d, 0xeb, 0x9b, 0x68, 0x23, 0x8d, 0xd2, 0xe2, 0x2e, 0xdc, 0x30, 0xd7, 0x93,
|
||||
0xb5, 0x17, 0x77, 0xe4, 0x57, 0x2a, 0xe8, 0xd9, 0x63, 0x01, 0xda, 0xce, 0x01, 0x5c, 0xb2, 0xd9,
|
||||
0xd3, 0x77, 0x8a, 0x8a, 0x4b, 0x67, 0x7e, 0xad, 0x0c, 0xeb, 0xcf, 0x15, 0xf4, 0x7d, 0x25, 0x44,
|
||||
0x4f, 0x21, 0x37, 0xbc, 0xea, 0x78, 0xac, 0x46, 0xda, 0xa4, 0x11, 0x4c, 0x47, 0xf0, 0x1d, 0x4f,
|
||||
0x55, 0xe1, 0x1b, 0x79, 0xe4, 0x74, 0x94, 0x99, 0x7c, 0xf4, 0x67, 0xd5, 0xef, 0x79, 0x93, 0x0c,
|
||||
0xf6, 0x0a, 0xa3, 0xf6, 0x27, 0x65, 0x58, 0xff, 0xa9, 0x82, 0x7e, 0xac, 0x24, 0x08, 0xee, 0x15,
|
||||
0xc6, 0x2e, 0xf3, 0x5e, 0x1e, 0x41, 0x03, 0x8d, 0xa9, 0x3d, 0x8e, 0xfc, 0x8c, 0x81, 0x25, 0x0a,
|
||||
0x9e, 0xfc, 0xb9, 0x30, 0x0a, 0x9e, 0x31, 0x13, 0x90, 0x44, 0x7e, 0x94, 0x21, 0x13, 0xc8, 0xaf,
|
||||
0xe5, 0x22, 0xff, 0x0f, 0x0a, 0x68, 0x59, 0xc3, 0x09, 0xba, 0x95, 0xc9, 0x8f, 0x29, 0x69, 0xaf,
|
||||
0x16, 0x13, 0x96, 0xa6, 0x7f, 0x75, 0x58, 0x37, 0x91, 0x71, 0xcf, 0x62, 0xad, 0x43, 0xa3, 0x1d,
|
||||
0x21, 0xd7, 0x44, 0xf0, 0xd7, 0xb6, 0xc6, 0x71, 0xd7, 0xb5, 0xcc, 0x8f, 0x40, 0x28, 0x62, 0xd5,
|
||||
0xb8, 0x8f, 0x64, 0xfa, 0x76, 0x41, 0x69, 0xe9, 0xc4, 0xc3, 0x61, 0x7d, 0x0d, 0x5d, 0x0f, 0xe4,
|
||||
0xb2, 0x32, 0xf0, 0x59, 0x73, 0x33, 0xd3, 0xfe, 0x13, 0xa9, 0xeb, 0x3b, 0xf2, 0x7b, 0x05, 0x56,
|
||||
0xf3, 0xa6, 0x2a, 0xb4, 0x9b, 0x03, 0xac, 0xb4, 0xc9, 0x4f, 0xbf, 0x5d, 0x5c, 0x41, 0x7a, 0xf4,
|
||||
0xa5, 0x61, 0x7d, 0x15, 0xe9, 0x61, 0xfa, 0x0a, 0xd0, 0xc3, 0xfb, 0x86, 0x48, 0x17, 0x70, 0xe6,
|
||||
0x10, 0xdf, 0x41, 0xbf, 0x54, 0x60, 0x29, 0x6d, 0x58, 0x41, 0x6f, 0x8c, 0x1f, 0x67, 0x84, 0xb9,
|
||||
0x37, 0x8b, 0xce, 0x3d, 0xe6, 0x5d, 0x5e, 0xf8, 0x5d, 0xcc, 0x38, 0xc8, 0xc5, 0xa6, 0x41, 0x3a,
|
||||
0x91, 0x2e, 0xe1, 0x1a, 0x5a, 0x89, 0x58, 0x39, 0x92, 0xbc, 0x37, 0xfd, 0x4c, 0xed, 0x1d, 0x1c,
|
||||
0xcc, 0xf0, 0xa9, 0xf3, 0x0b, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x46, 0xea, 0x24, 0x51, 0xb7,
|
||||
0x24, 0x00, 0x00,
|
||||
// 1934 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0x1c, 0x49,
|
||||
0x15, 0x57, 0xcf, 0x78, 0xec, 0xf8, 0x8d, 0xc7, 0x89, 0x6b, 0x1d, 0xbb, 0xd3, 0xf1, 0x47, 0xbb,
|
||||
0xb3, 0xb0, 0xc1, 0x19, 0xdb, 0x61, 0x88, 0xd8, 0x65, 0x57, 0x41, 0x4c, 0x9c, 0x55, 0x40, 0x24,
|
||||
0x22, 0x1a, 0x7b, 0xb3, 0x52, 0x2e, 0xa3, 0xf6, 0x4c, 0xcd, 0xb8, 0xe5, 0x76, 0xd7, 0x6c, 0x75,
|
||||
0x8d, 0x07, 0x73, 0x40, 0x2b, 0x96, 0x0b, 0x6c, 0x2e, 0x0c, 0x42, 0x20, 0x0e, 0x1c, 0x11, 0x27,
|
||||
0xc4, 0x05, 0x21, 0x04, 0x12, 0x08, 0x09, 0x24, 0xce, 0x88, 0xff, 0x80, 0x1b, 0x7f, 0x00, 0x47,
|
||||
0x50, 0x57, 0x55, 0x7b, 0xfa, 0x7b, 0xda, 0xf6, 0x24, 0x08, 0x76, 0x4f, 0xf1, 0x74, 0xbd, 0x57,
|
||||
0xf5, 0xbe, 0x7e, 0xbf, 0x7a, 0xaf, 0x02, 0x15, 0xda, 0x77, 0x98, 0x75, 0x8c, 0xb7, 0x7b, 0x94,
|
||||
0x30, 0x82, 0x80, 0xf4, 0xb0, 0xd3, 0xb3, 0x18, 0xb5, 0xbe, 0xa9, 0xad, 0x75, 0x09, 0xe9, 0xda,
|
||||
0x78, 0x87, 0xaf, 0x1c, 0xf4, 0x3b, 0x3b, 0x03, 0x6a, 0xf6, 0x7a, 0x98, 0xba, 0x42, 0x56, 0x5b,
|
||||
0x8f, 0xae, 0x7b, 0xfb, 0xb8, 0xcc, 0x3c, 0xee, 0x49, 0x81, 0x15, 0x29, 0x60, 0xf6, 0xac, 0x1d,
|
||||
0xd3, 0x71, 0x08, 0x33, 0x99, 0x45, 0x1c, 0x5f, 0xbd, 0xca, 0xff, 0x69, 0x6d, 0x75, 0xb1, 0xb3,
|
||||
0xe5, 0x0e, 0xcc, 0x6e, 0x17, 0xd3, 0x1d, 0xd2, 0xe3, 0x12, 0x71, 0x69, 0xe3, 0xdf, 0x25, 0x58,
|
||||
0x68, 0x08, 0x53, 0x77, 0x29, 0x6e, 0x63, 0x87, 0x59, 0xa6, 0x8d, 0x9e, 0xc2, 0x75, 0x69, 0x7f,
|
||||
0xb3, 0x75, 0xf6, 0xb5, 0x69, 0xb5, 0x55, 0x45, 0x57, 0x6e, 0x97, 0x6b, 0x2b, 0xdb, 0xc2, 0x82,
|
||||
0x6d, 0xdf, 0xc4, 0xed, 0x3d, 0x46, 0x2d, 0xa7, 0xfb, 0xcc, 0xb4, 0xfb, 0xb8, 0xf1, 0x1a, 0x8d,
|
||||
0xee, 0xf7, 0xb5, 0x36, 0xba, 0x0b, 0x53, 0x8e, 0x79, 0x8c, 0xd5, 0x42, 0x8e, 0x0d, 0xb8, 0x24,
|
||||
0xfa, 0x32, 0x94, 0xdb, 0xd8, 0x6d, 0x51, 0x8b, 0xdb, 0xae, 0x16, 0x73, 0x28, 0x06, 0x15, 0xd0,
|
||||
0x7d, 0x28, 0xfb, 0x3e, 0xf4, 0xa9, 0xad, 0x4e, 0xe5, 0xd0, 0x07, 0xa9, 0xf0, 0x1e, 0xb5, 0xd1,
|
||||
0x73, 0xd0, 0x12, 0x42, 0xd0, 0x22, 0x0e, 0xc3, 0x0e, 0x53, 0x4b, 0x39, 0x76, 0x53, 0x63, 0x71,
|
||||
0xd8, 0x15, 0xda, 0xe8, 0x1d, 0x00, 0x32, 0x70, 0x30, 0x6d, 0xf6, 0x4c, 0x76, 0xa8, 0x4e, 0xe7,
|
||||
0xd8, 0x6b, 0x96, 0xcb, 0x3f, 0x35, 0xd9, 0x21, 0x7a, 0x0b, 0xae, 0xf4, 0x28, 0x39, 0xb1, 0xda,
|
||||
0x98, 0xaa, 0x33, 0x39, 0x54, 0xcf, 0xa4, 0xd1, 0x3d, 0x98, 0x76, 0x99, 0xc9, 0xfa, 0xae, 0x7a,
|
||||
0x25, 0x87, 0x9e, 0x94, 0x45, 0xef, 0x40, 0xb9, 0x45, 0xb1, 0xc9, 0x70, 0xd3, 0x73, 0x46, 0x9d,
|
||||
0xe5, 0xaa, 0x5a, 0x4c, 0x75, 0xdf, 0x2f, 0xd2, 0x06, 0x08, 0x71, 0xef, 0x83, 0xa7, 0x2c, 0xb6,
|
||||
0x11, 0xca, 0x30, 0x5e, 0x59, 0x88, 0x73, 0xe5, 0xbb, 0x50, 0x6a, 0xe3, 0x83, 0x7e, 0x57, 0x2d,
|
||||
0xa7, 0xa8, 0x3d, 0x20, 0xc4, 0x16, 0xc6, 0x0a, 0x41, 0x54, 0x83, 0x12, 0x0f, 0x94, 0x3a, 0x97,
|
||||
0xc3, 0x41, 0x21, 0x6a, 0xfc, 0xb5, 0x04, 0x33, 0x12, 0x01, 0x5e, 0x62, 0xfc, 0xa4, 0xe7, 0x2c,
|
||||
0xf6, 0x59, 0x29, 0xff, 0x5f, 0x29, 0xf1, 0x60, 0x29, 0x4c, 0x9d, 0xab, 0x14, 0x52, 0x01, 0x5e,
|
||||
0xba, 0x04, 0xc0, 0xbf, 0x45, 0x1c, 0x9c, 0xab, 0x9a, 0xb9, 0x64, 0x04, 0x05, 0x33, 0xe7, 0x43,
|
||||
0xc1, 0xa7, 0xb5, 0x9c, 0x54, 0xcb, 0x2f, 0x14, 0xa8, 0xc8, 0x5a, 0x7e, 0x88, 0x99, 0x69, 0xd9,
|
||||
0x68, 0x0b, 0x66, 0x64, 0xb6, 0x64, 0x39, 0xbf, 0xb6, 0x3d, 0xba, 0x8a, 0xb6, 0xa5, 0x6c, 0xc3,
|
||||
0x97, 0x41, 0x8f, 0x01, 0xc5, 0xeb, 0x42, 0x56, 0xf4, 0x6a, 0x82, 0xe6, 0xa8, 0x04, 0x1a, 0x0b,
|
||||
0xb1, 0xaa, 0x30, 0x3e, 0x2a, 0xc2, 0xe2, 0x2e, 0x0f, 0xa0, 0x7f, 0x10, 0xfe, 0xa0, 0x8f, 0x5d,
|
||||
0x76, 0x06, 0x15, 0xe5, 0xa2, 0x50, 0x29, 0x5c, 0x06, 0x2a, 0xc5, 0xc9, 0x40, 0x65, 0xea, 0xb2,
|
||||
0x50, 0x29, 0x9d, 0x07, 0x2a, 0x01, 0x5e, 0x82, 0x73, 0xf1, 0x92, 0xb1, 0x0f, 0xd7, 0x23, 0x49,
|
||||
0x70, 0x7b, 0xc4, 0x71, 0x2f, 0xc7, 0x76, 0xc6, 0xef, 0x8a, 0xb0, 0xfc, 0x90, 0x07, 0xf8, 0xc0,
|
||||
0xdf, 0xd8, 0xf5, 0xd3, 0x7b, 0x1f, 0xca, 0x2e, 0x36, 0x69, 0xeb, 0xb0, 0x39, 0x20, 0x34, 0xdf,
|
||||
0xce, 0x20, 0x14, 0xde, 0x27, 0xb4, 0x8d, 0xde, 0x84, 0x2b, 0x2e, 0xa1, 0xac, 0x79, 0x84, 0x4f,
|
||||
0x73, 0x25, 0x7a, 0xc6, 0x93, 0xfe, 0x3a, 0x3e, 0x45, 0xf7, 0x60, 0x86, 0xe2, 0x13, 0x4c, 0x5d,
|
||||
0x2c, 0x73, 0x9c, 0x05, 0x33, 0x5f, 0x14, 0x2d, 0x42, 0xc9, 0xb6, 0x8e, 0x2d, 0xc6, 0x13, 0x5a,
|
||||
0x69, 0x88, 0x1f, 0x68, 0x09, 0xa6, 0x49, 0xa7, 0xe3, 0x62, 0x71, 0xd7, 0x57, 0x1a, 0xf2, 0x17,
|
||||
0x7a, 0x03, 0xae, 0xb6, 0x2d, 0xb7, 0x67, 0x9b, 0xa7, 0xcd, 0x16, 0xb1, 0xfb, 0xc7, 0x8e, 0xab,
|
||||
0x4e, 0xeb, 0xc5, 0xdb, 0xb3, 0x8d, 0x79, 0xf9, 0x79, 0x57, 0x7c, 0x45, 0xab, 0xa1, 0xe8, 0x96,
|
||||
0xb9, 0x4c, 0xe0, 0xb6, 0x58, 0x3a, 0x23, 0xb0, 0x39, 0xbe, 0xe4, 0x53, 0x94, 0x16, 0x28, 0xd4,
|
||||
0x0a, 0x5f, 0x19, 0x95, 0xe2, 0xa2, 0x4f, 0x09, 0xf3, 0x7c, 0x41, 0xfc, 0x40, 0xb5, 0xb4, 0x02,
|
||||
0xbd, 0xca, 0xa5, 0x92, 0x4a, 0xd0, 0xf8, 0x00, 0xd4, 0x78, 0xf2, 0x64, 0x59, 0xac, 0x43, 0x99,
|
||||
0x11, 0xc6, 0x9b, 0x9d, 0xbe, 0xc3, 0x78, 0xf6, 0x2a, 0x0d, 0xe0, 0x9f, 0x76, 0xbd, 0x2f, 0xe8,
|
||||
0xde, 0xa8, 0xb3, 0xf2, 0xe2, 0x53, 0xd0, 0x8b, 0x69, 0xbc, 0xe2, 0x47, 0x60, 0x0f, 0x33, 0xe3,
|
||||
0xfb, 0x0a, 0xac, 0x45, 0xce, 0x14, 0x1c, 0x75, 0x8e, 0x93, 0x1f, 0x8d, 0xe8, 0xa9, 0xcd, 0x75,
|
||||
0x03, 0x06, 0xdc, 0x48, 0x30, 0x40, 0x1c, 0xd0, 0xb8, 0x46, 0x83, 0x3f, 0x3d, 0x63, 0x7e, 0x5c,
|
||||
0x80, 0xc5, 0x27, 0xa4, 0x6d, 0x75, 0x4e, 0x23, 0xcc, 0xf4, 0x3f, 0xd6, 0x01, 0x4c, 0x9c, 0x9c,
|
||||
0x3c, 0xb6, 0x88, 0x04, 0x66, 0x12, 0x6c, 0xf1, 0xb1, 0x02, 0xd7, 0x1f, 0x62, 0x1b, 0xb3, 0x18,
|
||||
0x57, 0xac, 0x46, 0xb6, 0x8d, 0xc0, 0xe4, 0x2e, 0x94, 0x3a, 0x84, 0xb6, 0xfc, 0x98, 0x66, 0xde,
|
||||
0x9b, 0x5c, 0x10, 0x6d, 0xc0, 0x5c, 0x97, 0x9a, 0x2d, 0xdc, 0xec, 0x61, 0x6a, 0x91, 0x36, 0x8f,
|
||||
0x69, 0xa5, 0x51, 0xe6, 0xdf, 0x9e, 0xf2, 0x4f, 0xc6, 0x9b, 0xb0, 0x14, 0x35, 0x46, 0x3a, 0x99,
|
||||
0x6d, 0x8d, 0xf1, 0xdb, 0x22, 0xac, 0x85, 0xb8, 0x34, 0x70, 0xff, 0x8d, 0xb8, 0x2f, 0x38, 0x76,
|
||||
0x28, 0x13, 0x1d, 0x3b, 0x0a, 0x97, 0x1a, 0x3b, 0x2e, 0x7e, 0x07, 0xfa, 0x85, 0x3d, 0x75, 0xd1,
|
||||
0xc2, 0x2e, 0x4d, 0xac, 0xb0, 0xe1, 0xa2, 0x85, 0xed, 0xc2, 0x7a, 0x6a, 0xea, 0x64, 0xf6, 0x27,
|
||||
0x3e, 0xf6, 0x1a, 0xff, 0x52, 0x40, 0x7f, 0x66, 0xda, 0x56, 0xfb, 0x93, 0x56, 0x32, 0xc6, 0x37,
|
||||
0x60, 0x23, 0xc3, 0x71, 0x19, 0xf0, 0x4d, 0x28, 0x90, 0x23, 0xe9, 0x70, 0x16, 0xb4, 0x0b, 0xe4,
|
||||
0xc8, 0xf8, 0x79, 0x11, 0x36, 0x22, 0xf7, 0xc7, 0x68, 0xc7, 0x4f, 0x5b, 0x8f, 0x60, 0xeb, 0x91,
|
||||
0xda, 0x11, 0x94, 0x53, 0x3b, 0x82, 0xc9, 0xf5, 0x23, 0xc6, 0x4f, 0x15, 0x30, 0xb2, 0x12, 0x95,
|
||||
0xf7, 0xb2, 0xdf, 0x83, 0xa5, 0x04, 0x2f, 0x46, 0x17, 0xfe, 0x98, 0x79, 0x64, 0x31, 0xe6, 0xa5,
|
||||
0x77, 0xf1, 0xff, 0xb1, 0x00, 0x6b, 0xa1, 0xfb, 0x2d, 0x0e, 0xc7, 0xff, 0x87, 0xc7, 0xaf, 0x6c,
|
||||
0x4e, 0x98, 0xba, 0x0c, 0x27, 0x78, 0x44, 0x9a, 0x1a, 0xc1, 0x97, 0x46, 0xa4, 0xef, 0xc1, 0x7a,
|
||||
0xe8, 0xca, 0x4e, 0x80, 0x7e, 0x2d, 0xfd, 0xd0, 0xd4, 0x3e, 0xf8, 0x19, 0xe8, 0xe9, 0xdb, 0x4a,
|
||||
0x67, 0x2e, 0xb2, 0xef, 0x00, 0x6e, 0x45, 0x20, 0xf0, 0x54, 0x82, 0xe6, 0x39, 0x71, 0x46, 0xcd,
|
||||
0xcf, 0xe4, 0xe3, 0xf4, 0x42, 0x81, 0xd7, 0xb3, 0x4f, 0x7e, 0x59, 0x29, 0x42, 0x48, 0x8e, 0xb5,
|
||||
0x05, 0x1e, 0x16, 0xfe, 0xb7, 0xb1, 0x0a, 0x37, 0x1f, 0x61, 0x26, 0x0d, 0xd9, 0x63, 0x26, 0xb3,
|
||||
0x5c, 0x66, 0xb5, 0x7c, 0xff, 0x8d, 0xbf, 0x17, 0x61, 0x25, 0x79, 0x5d, 0x5a, 0xe9, 0xc2, 0x75,
|
||||
0xdb, 0x74, 0x59, 0x93, 0x0d, 0x48, 0x73, 0x80, 0xf1, 0x51, 0x53, 0xbc, 0xc7, 0x88, 0xd8, 0x97,
|
||||
0x6b, 0x5f, 0x09, 0x52, 0x40, 0xd6, 0x46, 0xdb, 0x8f, 0x4d, 0x97, 0xed, 0x0f, 0xc8, 0xfb, 0x18,
|
||||
0x1f, 0x89, 0x2e, 0xa0, 0xfd, 0xae, 0xc3, 0xe8, 0x69, 0x03, 0xd9, 0xb1, 0x05, 0x64, 0xc1, 0x02,
|
||||
0x23, 0xbd, 0x26, 0xc3, 0x4e, 0xd3, 0xa7, 0x3a, 0x57, 0x72, 0xce, 0xfd, 0xdc, 0x07, 0xee, 0x93,
|
||||
0xde, 0x3e, 0x76, 0xfc, 0xd8, 0xbb, 0xe2, 0xb4, 0xab, 0x2c, 0xfc, 0x15, 0xdd, 0x3a, 0xfb, 0x8f,
|
||||
0x02, 0x49, 0x83, 0xa2, 0x5b, 0x9d, 0xf3, 0xe3, 0xcb, 0x89, 0xf0, 0x33, 0x30, 0xef, 0xdb, 0x21,
|
||||
0xa5, 0xc4, 0x75, 0x51, 0xf1, 0xbf, 0x72, 0x31, 0xed, 0x5d, 0x58, 0x4e, 0xf1, 0x12, 0x5d, 0x83,
|
||||
0xa2, 0x77, 0xa3, 0x79, 0xa9, 0x9d, 0x6d, 0x78, 0x7f, 0x7a, 0xd4, 0x7d, 0xe2, 0xa5, 0x92, 0x73,
|
||||
0x52, 0xa5, 0x21, 0x7e, 0xbc, 0x5d, 0x78, 0x4b, 0xd1, 0x1e, 0xc0, 0x62, 0x92, 0xed, 0xe7, 0xd9,
|
||||
0xa3, 0xf6, 0x1b, 0x15, 0xe6, 0x65, 0x68, 0x9e, 0x98, 0x8e, 0xd9, 0xc5, 0x14, 0x7d, 0xa8, 0x40,
|
||||
0x25, 0xd4, 0x7f, 0x21, 0x3d, 0x18, 0xcb, 0xa4, 0x67, 0x22, 0x6d, 0x23, 0x43, 0x42, 0x84, 0xd9,
|
||||
0xd8, 0x1c, 0xd6, 0xaf, 0xa1, 0x79, 0xb1, 0xa6, 0xcb, 0xa8, 0x7d, 0xe7, 0x6f, 0xff, 0xf8, 0x61,
|
||||
0x61, 0xc1, 0x98, 0xdb, 0x39, 0xf9, 0xfc, 0x8e, 0xfc, 0xe4, 0xbe, 0xad, 0x6c, 0xa2, 0x1f, 0x28,
|
||||
0x80, 0x84, 0xe4, 0x43, 0x7c, 0xd0, 0xef, 0x4e, 0xd4, 0x8e, 0x2f, 0x0e, 0xeb, 0x4b, 0x48, 0x3e,
|
||||
0x76, 0xe9, 0xfc, 0x01, 0x2f, 0x64, 0xcd, 0xb2, 0x81, 0x3c, 0x6b, 0xf8, 0x42, 0x33, 0x68, 0x93,
|
||||
0xe5, 0x8d, 0x22, 0x49, 0x43, 0x31, 0xba, 0x15, 0x3c, 0x34, 0xe5, 0xa5, 0x45, 0xdb, 0xcc, 0x10,
|
||||
0x8a, 0x4e, 0xd7, 0xff, 0x54, 0xe0, 0x5a, 0x74, 0x9f, 0x7c, 0xa7, 0xbc, 0x9e, 0x2d, 0x24, 0x43,
|
||||
0xf0, 0xb1, 0x32, 0xac, 0x33, 0x44, 0x1f, 0x61, 0xe6, 0xbb, 0xee, 0x56, 0xf5, 0x96, 0xe9, 0xe8,
|
||||
0x1d, 0xcb, 0x66, 0x98, 0xea, 0x03, 0x8b, 0x1d, 0xea, 0xec, 0x10, 0xbb, 0x58, 0xef, 0x58, 0xd8,
|
||||
0x6e, 0xbb, 0xb7, 0x47, 0xa3, 0x56, 0x55, 0xf7, 0x6b, 0xb9, 0xaa, 0x7b, 0xc4, 0x51, 0xd5, 0x45,
|
||||
0xfb, 0x51, 0xd5, 0x79, 0x4f, 0xf1, 0xb9, 0xaa, 0xde, 0xc6, 0x1d, 0xb3, 0x6f, 0x33, 0x9d, 0x62,
|
||||
0xd6, 0xa7, 0x8e, 0x6e, 0xda, 0xf6, 0xd9, 0x29, 0x3c, 0xc2, 0xf3, 0x28, 0x94, 0x6f, 0xf4, 0x51,
|
||||
0xc1, 0x9b, 0x38, 0x85, 0xa9, 0xc1, 0x74, 0x4f, 0xd4, 0xe5, 0x9f, 0x29, 0xc3, 0xfa, 0x87, 0x0a,
|
||||
0xfa, 0xb6, 0xe7, 0x73, 0x28, 0xe9, 0x2f, 0xd9, 0xf3, 0xf0, 0x59, 0xdc, 0xff, 0x45, 0x94, 0x50,
|
||||
0x61, 0x1c, 0x75, 0xa1, 0xcb, 0x3a, 0x5c, 0xed, 0x49, 0x4f, 0x20, 0xe1, 0x6a, 0x4f, 0x7c, 0x0b,
|
||||
0x90, 0xa8, 0x13, 0x6b, 0x61, 0xd4, 0xd5, 0x62, 0xa8, 0xfb, 0xae, 0x02, 0xf3, 0xe1, 0x69, 0x1b,
|
||||
0x6d, 0x84, 0x83, 0x9b, 0xf0, 0x2c, 0xa0, 0x19, 0x59, 0x22, 0xd2, 0x8a, 0x3b, 0xc3, 0xfa, 0x02,
|
||||
0xba, 0x2a, 0x16, 0xc3, 0xc1, 0x58, 0xd8, 0x8c, 0x99, 0xf1, 0x6b, 0x05, 0x96, 0x53, 0xe6, 0x3f,
|
||||
0xb4, 0x99, 0x8a, 0xef, 0x58, 0x77, 0xa8, 0xdd, 0xc9, 0x25, 0x2b, 0x2d, 0xac, 0x0f, 0xeb, 0x37,
|
||||
0xd1, 0x8d, 0x56, 0x88, 0x9d, 0xf4, 0xd1, 0x75, 0xcb, 0x6d, 0x5d, 0x35, 0xd4, 0xa0, 0xad, 0x3b,
|
||||
0xa3, 0x65, 0x6e, 0xf7, 0x5f, 0x14, 0x58, 0x89, 0x93, 0xd6, 0xab, 0x30, 0xfe, 0xc9, 0xb0, 0xbe,
|
||||
0x81, 0xd6, 0x93, 0x28, 0x2d, 0xea, 0xc2, 0x2d, 0x63, 0x2d, 0x5e, 0x7b, 0x51, 0x47, 0x7e, 0x59,
|
||||
0x00, 0x2d, 0x7d, 0x2c, 0x40, 0x5b, 0x19, 0x80, 0x8b, 0x37, 0x7b, 0xda, 0x76, 0x5e, 0x71, 0xe9,
|
||||
0xcc, 0xaf, 0x94, 0x61, 0xfd, 0x85, 0x82, 0xbe, 0xa7, 0x04, 0xe8, 0x29, 0xe0, 0x86, 0x5b, 0x1d,
|
||||
0x8f, 0xd5, 0x50, 0x9b, 0x34, 0x82, 0xe9, 0x08, 0xbe, 0xe3, 0xa9, 0x2a, 0x78, 0x22, 0x8f, 0x9c,
|
||||
0x86, 0x52, 0x93, 0x8f, 0xfe, 0x5c, 0xf0, 0x7a, 0xde, 0x38, 0x83, 0xbd, 0xc2, 0xa8, 0xfd, 0x49,
|
||||
0x19, 0xd6, 0x7f, 0xa2, 0xa0, 0x1f, 0x29, 0x31, 0x82, 0x7b, 0x85, 0xb1, 0x4b, 0x3d, 0x97, 0x47,
|
||||
0x50, 0x47, 0x63, 0x6a, 0x8f, 0x23, 0x3f, 0x65, 0x60, 0x09, 0x83, 0x27, 0x7b, 0x2e, 0x0c, 0x83,
|
||||
0x67, 0xcc, 0x04, 0x24, 0x91, 0x1f, 0x66, 0xc8, 0x18, 0xf2, 0x6b, 0x99, 0xc8, 0xff, 0x83, 0x02,
|
||||
0x6a, 0xda, 0x70, 0x82, 0xee, 0xa4, 0xf2, 0x63, 0x42, 0xda, 0xab, 0xf9, 0x84, 0xa5, 0xe9, 0x5f,
|
||||
0x1d, 0xd6, 0x0d, 0xa4, 0x3f, 0x30, 0x59, 0xeb, 0x50, 0x6f, 0x87, 0xc8, 0x35, 0x16, 0xfc, 0xd5,
|
||||
0xcd, 0x71, 0xdc, 0x75, 0x23, 0xf5, 0x11, 0x08, 0x85, 0xac, 0x1a, 0xf7, 0x48, 0xa6, 0x6d, 0xe5,
|
||||
0x94, 0x96, 0x4e, 0x3c, 0x1e, 0xd6, 0x57, 0xd1, 0x4d, 0x5f, 0x2e, 0x2d, 0x03, 0x9f, 0x35, 0x36,
|
||||
0x52, 0xed, 0x3f, 0x91, 0xba, 0x9e, 0x23, 0xbf, 0x57, 0x60, 0x25, 0x6b, 0xaa, 0x42, 0x3b, 0x19,
|
||||
0xc0, 0x4a, 0x9a, 0xfc, 0xb4, 0xbb, 0xf9, 0x15, 0xa4, 0x47, 0x5f, 0x1a, 0xd6, 0x57, 0x90, 0x16,
|
||||
0xa4, 0x2f, 0x1f, 0x3d, 0xbc, 0x6f, 0x08, 0x75, 0x01, 0x67, 0x0e, 0xf1, 0x15, 0xf4, 0x0b, 0x05,
|
||||
0x16, 0x93, 0x86, 0x15, 0xf4, 0xc6, 0xf8, 0x71, 0x46, 0x98, 0x7b, 0x3b, 0xef, 0xdc, 0x63, 0xdc,
|
||||
0xe7, 0x85, 0xdf, 0xc5, 0x8c, 0x83, 0x5c, 0x2c, 0xea, 0xa4, 0x13, 0xea, 0x12, 0x6e, 0xa0, 0xe5,
|
||||
0x90, 0x95, 0x23, 0xc9, 0x07, 0x53, 0xcf, 0x0b, 0xbd, 0x83, 0x83, 0x69, 0x3e, 0x75, 0x7e, 0xe1,
|
||||
0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x13, 0x03, 0x48, 0xff, 0x46, 0x25, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
||||
Reference in New Issue
Block a user